Panfrost for Bifrost GPUs - Big improvements

glmark2-es2 (glmark2 2014.03) with mesa-arm-git-21.0.0-(e7802-1) is 44 compared to 37 with mesa-git-21.0.0 earlier.
[jfl@GTKPro ~]$ glmark2-es2

glmark2 2014.03

=======================================================
OpenGL Information
GL_VENDOR: Panfrost
GL_RENDERER: Mali G52 (Panfrost)
GL_VERSION: OpenGL ES 2.0 Mesa 21.0.0-devel (git-01e3f43007)

[build] use-vbo=false: FPS: 48 FrameTime: 20.833 ms
[build] use-vbo=true: FPS: 50 FrameTime: 20.000 ms
[texture] texture-filter=nearest: FPS: 56 FrameTime: 17.857 ms
[texture] texture-filter=linear: FPS: 50 FrameTime: 20.000 ms
[texture] texture-filter=mipmap: FPS: 50 FrameTime: 20.000 ms
[shading] shading=gouraud: FPS: 42 FrameTime: 23.810 ms
[shading] shading=blinn-phong-inf: FPS: 48 FrameTime: 20.833 ms
[shading] shading=phong: FPS: 38 FrameTime: 26.316 ms
[shading] shading=cel: FPS: 40 FrameTime: 25.000 ms
[bump] bump-render=high-poly: FPS: 37 FrameTime: 27.027 ms
[bump] bump-render=normals: FPS: 46 FrameTime: 21.739 ms
[bump] bump-render=height: FPS: 49 FrameTime: 20.408 ms
libpng warning: iCCP: known incorrect sRGB profile
[effect2d] kernel=0,1,0;1,-4,1;0,1,0;: FPS: 52 FrameTime: 19.231 ms
libpng warning: iCCP: known incorrect sRGB profile
[effect2d] kernel=1,1,1,1,1;1,1,1,1,1;1,1,1,1,1;: FPS: 41 FrameTime: 24.390 ms
[pulsar] light=false:quads=5:texture=false: FPS: 54 FrameTime: 18.519 ms
libpng warning: iCCP: known incorrect sRGB profile
[desktop] blur-radius=5:effect=blur:passes=1:separable=true:windows=4: FPS: 27 FrameTime: 37.037 ms
libpng warning: iCCP: known incorrect sRGB profile
[desktop] effect=shadow:windows=4: FPS: 52 FrameTime: 19.231 ms
[buffer] columns=200:interleave=false:update-dispersion=0.9:update-fraction=0.5:update-method=map: FPS: 43 FrameTime: 23.256 ms
[buffer] columns=200:interleave=false:update-dispersion=0.9:update-fraction=0.5:update-method=subdata: FPS: 42 FrameTime: 23.810 ms
[buffer] columns=200:interleave=true:update-dispersion=0.9:update-fraction=0.5:update-method=map: FPS: 47 FrameTime: 21.277 ms
[ideas] speed=duration: FPS: 48 FrameTime: 20.833 ms
[jellyfish] : FPS: 47 FrameTime: 21.277 ms
[terrain] : FPS: 10 FrameTime: 100.000 ms
[shadow] : FPS: 36 FrameTime: 27.778 ms
[refract] : FPS: 16 FrameTime: 62.500 ms
[conditionals] fragment-steps=0:vertex-steps=0: FPS: 50 FrameTime: 20.000 ms
[conditionals] fragment-steps=5:vertex-steps=0: FPS: 48 FrameTime: 20.833 ms
[conditionals] fragment-steps=0:vertex-steps=5: FPS: 48 FrameTime: 20.833 ms
[function] fragment-complexity=low:fragment-steps=5: FPS: 53 FrameTime: 18.868 ms
[function] fragment-complexity=medium:fragment-steps=5: FPS: 50 FrameTime: 20.000 ms
[loop] fragment-loop=false:fragment-steps=5:vertex-steps=5: FPS: 45 FrameTime: 22.222 ms
[loop] fragment-steps=5:fragment-uniform=false:vertex-steps=5: FPS: 54 FrameTime: 18.519 ms
[loop] fragment-steps=5:fragment-uniform=true:vertex-steps=5: FPS: 45 FrameTime: 22.222 ms

                              glmark2 Score: 44 

=======================================================
[jfl@GTKPro ~]$

glmark2-es2 (glmark2 2020.04). Score 44 is the same as glmark2 2014.03, just without warning message.

[jfl@GTKPro ~]$ glmark2-es2

glmark2 2020.04

=======================================================
OpenGL Information
GL_VENDOR: Panfrost
GL_RENDERER: Mali G52 (Panfrost)
GL_VERSION: OpenGL ES 2.0 Mesa 21.0.0-devel (git-01e3f43007)

[build] use-vbo=false: FPS: 52 FrameTime: 19.231 ms
[build] use-vbo=true: FPS: 47 FrameTime: 21.277 ms
[texture] texture-filter=nearest: FPS: 59 FrameTime: 16.949 ms
[texture] texture-filter=linear: FPS: 50 FrameTime: 20.000 ms
[texture] texture-filter=mipmap: FPS: 50 FrameTime: 20.000 ms
[shading] shading=gouraud: FPS: 49 FrameTime: 20.408 ms
[shading] shading=blinn-phong-inf: FPS: 52 FrameTime: 19.231 ms
[shading] shading=phong: FPS: 48 FrameTime: 20.833 ms
[shading] shading=cel: FPS: 42 FrameTime: 23.810 ms
[bump] bump-render=high-poly: FPS: 33 FrameTime: 30.303 ms
[bump] bump-render=normals: FPS: 50 FrameTime: 20.000 ms
[bump] bump-render=height: FPS: 49 FrameTime: 20.408 ms
[effect2d] kernel=0,1,0;1,-4,1;0,1,0;: FPS: 51 FrameTime: 19.608 ms
[effect2d] kernel=1,1,1,1,1;1,1,1,1,1;1,1,1,1,1;: FPS: 44 FrameTime: 22.727 ms
[pulsar] light=false:quads=5:texture=false: FPS: 51 FrameTime: 19.608 ms
[desktop] blur-radius=5:effect=blur:passes=1:separable=true:windows=4: FPS: 24 FrameTime: 41.667 ms
[desktop] effect=shadow:windows=4: FPS: 54 FrameTime: 18.519 ms
[buffer] columns=200:interleave=false:update-dispersion=0.9:update-fraction=0.5:update-method=map: FPS: 35 FrameTime: 28.571 ms
[buffer] columns=200:interleave=false:update-dispersion=0.9:update-fraction=0.5:update-method=subdata: FPS: 37 FrameTime: 27.027 ms
[buffer] columns=200:interleave=true:update-dispersion=0.9:update-fraction=0.5:update-method=map: FPS: 46 FrameTime: 21.739 ms
[ideas] speed=duration: FPS: 47 FrameTime: 21.277 ms
[jellyfish] : FPS: 48 FrameTime: 20.833 ms
[terrain] : FPS: 11 FrameTime: 90.909 ms
[shadow] : FPS: 36 FrameTime: 27.778 ms
[refract] : FPS: 17 FrameTime: 58.824 ms
[conditionals] fragment-steps=0:vertex-steps=0: FPS: 49 FrameTime: 20.408 ms
[conditionals] fragment-steps=5:vertex-steps=0: FPS: 54 FrameTime: 18.519 ms
[conditionals] fragment-steps=0:vertex-steps=5: FPS: 49 FrameTime: 20.408 ms
[function] fragment-complexity=low:fragment-steps=5: FPS: 45 FrameTime: 22.222 ms
[function] fragment-complexity=medium:fragment-steps=5: FPS: 50 FrameTime: 20.000 ms
[loop] fragment-loop=false:fragment-steps=5:vertex-steps=5: FPS: 48 FrameTime: 20.833 ms
[loop] fragment-steps=5:fragment-uniform=false:vertex-steps=5: FPS: 50 FrameTime: 20.000 ms
[loop] fragment-steps=5:fragment-uniform=true:vertex-steps=5: FPS: 49 FrameTime: 20.408 ms

                              glmark2 Score: 44 

=======================================================
[jfl@GTKPro ~]$

Hi,

Does anyone know what is the difference between mesa-arm-git and mesa-panfrost-git build in “archlinuxdroid” repo?

mesa-panfrost-git belongs to the first tests of jgmdev who setup archlinuxdroid repo. He wrote you should better use mesa-arm-git instead because this contains the most recent updates of mesa.

Hm, that is surprising low.

Here are results of jgmdev running glmark2-es2 before it crashed:

glmark2 2020.04
=======================================================
OpenGL Information
GL_VENDOR:     Panfrost
GL_RENDERER:   Mali G52 (Panfrost)
GL_VERSION:    2.1 Mesa 21.0.0-devel (git-f89b29f708)
=======================================================
[build] use-vbo=false: FPS: 312 FrameTime: 3.205 ms
[build] use-vbo=true: FPS: 347 FrameTime: 2.882 ms
[texture] texture-filter=nearest: FPS: 404 FrameTime: 2.475 ms
[texture] texture-filter=linear: FPS: 405 FrameTime: 2.469 ms
[1]    2153 segmentation fault (core dumped)  glmark2

Does not work perfectly for me. I still have dropped frames (~9 fps) on X96Max+ with Mali G31. Maybe because libvdpau_meson and libcuda are missing. Did not find it in one of the packages.

[themojoman@manjaro-arm64 ~]$ mpv --hwdec=auto --hwdec-codecs=all https://youtube.com/watch?v=BHACKCNDMW8
 (+) Video --vid=1 (*) (h264 1920x1080 30.000fps)
 (+) Audio --aid=1 --alang=eng (*) (opus 2ch 48000Hz)
Cannot load libcuda.so.1
[vaapi] libva: vaGetDriverNameByIndex() failed with unknown libva error, driver_name = (null)
Failed to open VDPAU backend libvdpau_meson.so: cannot open shared object file: No such file or directory
AO: [pulse] 48000Hz stereo 2ch float
Using hardware decoding (v4l2m2m-copy).
VO: [gpu] 1920x1080 nv12
AV: 00:01:40 / 03:00:08 (0%) A-V:  0.000 Dropped: 852 Cache: 140s/54MB
[ffmpeg/demuxer] mov,mp4,m4a,3gp,3g2,mj2: Packet corrupt (stream = 0, dts = 3776000).
[ffmpeg] NULL: Invalid NAL unit size (234662 > 206658).
[ffmpeg] NULL: missing picture in access unit with size 206716
Exiting... (Quit)

Wow is like up to 6 times slow 52 fps vs 312 fps for the first test! May be some other settings might be involved to optimize the performance.

There was an update of mesa-arm-git (Mesa 21.0.0-devel (git-1200f6da0b) and just update it and ran glmark2-es2 (glmark2 20.20.04) and GT King Pro score is slightly lower 41.

Do you have to install any other packages from the repo other than mesa-arm-git for the video hardware acceleration?

Hi Strit,

You are using an Odroid N2, how is your N2 glmark2-es2 score like?

Hi Spikerguy,

Your GT King Pro have a higher speed than mine Rev A. How is your glmark2-es2 like with Panfrost.

TheMojoMan,

Somehow, glmark2-es2-wayland doesn’t start.
[jfl@GTKPro ~]$ glmark2-es2-wayland
Error: main: Could not initialize canvas

Don’t know. Haven’t tried. :slight_smile:

Will try when I get a larger drive, so I can actually install stuff. :stuck_out_tongue:

This does not work when using XFCE. You have to use wayland instead of X11. You might install gnome or sway to test it.

Thanks for the info. Will stick with Xfce for the time being.

Today, I’ve struggled panfrost on odroid-N2 & testing branch.
all os images were built by manjaro-arm-installer.

  • KDE + kernel 5.9.8-2 + mesa = no panfrost
  • KDE + kernel 5.9.8-2 + mesa-git = panfrost, glxgears with 60fps but crash X(screen freeze) frequently
  • xfce + kernel 5.9.8-2 + mesa = no panfrost
  • xfce + kernel 5.9.8-2 + mesa-git = panfrost, glxgears with 40-50fps but crash X frequently

I also tried mesa-arm-git but frequent X crashes(screen freeze) were still existing.
(I didnt check dmsg when crashes occured, sorry)

My conclusion is that panfrost on odroid-N2 is hard to work so far. I’ll keep tracking after the next testing branch release.

1 Like

Thank you very much for testing out so many probabilities.

Highly appreciate your work and yes panfrost is causing freezing but you can switch to waylanf on. Kde and try.

I think it doesnt freeze on wayland.

Cheers

1 Like

wayland is enable with KDE by default but it seems causing freeze.
(the installed version is based on testing branch, of course)

Looking at your glmark2-es2 results with a supposedly lower GPU (and with a much earlier mesa-git-20.3.0) than in GTKPro with G52 and your score is significantly better and the Odroid N2 results by jgmdev are way better. This lead me to suspect that Manjaro image for GT King Pro have not been optimized, missing drivers or enviromental set up?

I know you guys are excited for Panfrost on the Bifrost architectures. But it’s still very early days.

It’s normal for results to be all over the place, when the development moves as quickly as it does.

You don’t see users testing Alpha drivers for Nvidia cards, do you? :stuck_out_tongue:

The fact that it’s actually just around the corner is a amazing to be honest. So I don’t get the “your benchmark score is higher than mine” thing. It means absolutely nothing this early in the development cycle.

1 Like

I hope we all know Panfrost is under development!

I see improvements almost every day and like Strit says this is very exciting. I just want to cry for all the people involved in this BRAVO!!! :clap: :clap: :clap:

I see there was a bunch of commits on the 17th relating to Bifrost, so the mesa-git package that hits Unstable branch on sunday will be exciting I think.

1 Like