OpenGL performance reduced on Raspbian Stretch

Bug #1713746 reported by Tommi
10
This bug affects 2 people
Affects Status Importance Assigned to Milestone
Raspbian
New
Undecided
Unassigned

Bug Description

Originally reported here:
https://www.raspberrypi.org/forums/viewtopic.php?f=66&t=191791

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_query_renderer):
    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.

Tags: opengl stretch
Revision history for this message
Jernej Jakob (jjakob) wrote :

Can confirm the bug in Stretch. glxgears reports 45fps because it is using llvmpipe instead of VC4.
When enabling the GL driver via raspi-config, raspi-config should remove/disable /usr/share/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!).
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.

Revision history for this message
Jernej Jakob (jjakob) wrote :
Pander (pander)
tags: removed: raspbian
To post a comment you must log in.
This report contains Public information  
Everyone can see this information.

Other bug subscribers

Remote bug watches

Bug watches keep track of this bug in other bug trackers.