OpenGL performance reduced on Raspbian Stretch
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
Raspbian |
New
|
Undecided
|
Unassigned |
Bug Description
Originally reported here:
https:/
Basically, OpenGL performance is reduced by Stretch update when compared to older Jessie release.
Jessie used Mesa 13.0.0 release, Stretch use Mesa 13.0.6 release.
quote from user:
"Running 'glxgears -info' on Raspbian Jessie is reporting around 180 frames-per-second rendering speed but the same on Stretch is reporting only about 45 FPS, or a quarter of the speed! This is on the same hardware (a Raspberry Pi 3 with HDMI output), in both cases with the 'experimental' VC4 GL Driver disabled."
# glxinfo output for Jessie and Stretch
Jessie:
name of display: :0.0
display: :0 screen: 0
direct rendering: Yes
server glx vendor string: SGI
server glx version string: 1.4
client glx vendor string: Mesa Project and SGI
client glx version string: 1.4
GLX version: 1.4
OpenGL vendor string: VMware, Inc.
OpenGL renderer string: Gallium 0.4 on llvmpipe (LLVM 3.9, 128 bits)
OpenGL core profile version string: 3.3 (Core Profile) Mesa 13.0.0
OpenGL core profile shading language version string: 3.30
OpenGL core profile context flags: (none)
OpenGL core profile profile mask: core profile
OpenGL version string: 3.0 Mesa 13.0.0
OpenGL shading language version string: 1.30
OpenGL context flags: (none)
OpenGL ES profile version string: OpenGL ES 3.0 Mesa 13.0.0
OpenGL ES profile shading language version string: OpenGL ES GLSL ES 3.00
Stretch:
name of display: :0.0
display: :0 screen: 0
direct rendering: Yes
server glx vendor string: SGI
server glx version string: 1.4
client glx vendor string: Mesa Project and SGI
client glx version string: 1.4
GLX version: 1.4
Extended renderer info (GLX_MESA_
Vendor: VMware, Inc. (0xffffffff)
Device: llvmpipe (LLVM 3.9, 128 bits) (0xffffffff)
Version: 13.0.6
Accelerated: no
Video memory: 927MB
Unified memory: no
Preferred profile: core (0x1)
Max core profile version: 3.3
Max compat profile version: 3.0
Max GLES1 profile version: 1.1
Max GLES[23] profile version: 3.0
OpenGL vendor string: VMware, Inc.
OpenGL renderer string: Gallium 0.4 on llvmpipe (LLVM 3.9, 128 bits)
OpenGL core profile version string: 3.3 (Core Profile) Mesa 13.0.6
OpenGL core profile shading language version string: 3.30
OpenGL core profile context flags: (none)
OpenGL core profile profile mask: core profile
OpenGL version string: 3.0 Mesa 13.0.6
OpenGL shading language version string: 1.30
OpenGL context flags: (none)
OpenGL ES profile version string: OpenGL ES 3.0 Mesa 13.0.6
OpenGL ES profile shading language version string: OpenGL ES GLSL ES 3.00
Note: llvmpipe is being used on both Jessie and Stretch releases (not VC4)
CPU load:
Jessie: ~180 fps, CPU load ~50% (CPU meter in task bar) ~180% ('top' command), colours correct.
Stretch: ~45 fps, CPU load ~70% (CPU meter) ~260% ('top'), colours incorrect.
Can confirm the bug in Stretch. glxgears reports 45fps because it is using llvmpipe instead of VC4. X11/xorg. xonf.d/ 99-fbturbo. conf (e.g. rename it to disable it), but it does not, which results in Xorg not using the GL driver. A manual workaround is renaming this file manually (don't forget to rename it back when disabling the GL driver or you'll get no video!).
When enabling the GL driver via raspi-config, raspi-config should remove/disable /usr/share/
So this is IMO at least a bug in raspi-config.
Why jessie gives 180fps in glxgears even when using llvmpipe, I have no idea. llvmpipe is software rendered, it's not VC4 which is hardware rendered.