etnaviv, modesetting, and glxgears
System information
- OS: Yocto dunfell
- GPU: Vivante GC400
- Kernel version: 5.4.90
- Mesa version:
name of display: :0
display: :0 screen: 0
direct rendering: Yes
Extended renderer info (GLX_MESA_query_renderer):
Vendor: etnaviv (0xffffffff)
Device: Vivante GC400 rev 4633 (0xffffffff)
Version: 21.2.5
Accelerated: yes
Video memory: 0MB
Unified memory: yes
Preferred profile: compat (0x2)
Max core profile version: 0.0
Max compat profile version: 1.3
Max GLES1 profile version: 1.1
Max GLES[23] profile version: 2.0
OpenGL vendor string: etnaviv
OpenGL renderer string: Vivante GC400 rev 4633
OpenGL version string: 1.3 Mesa 21.2.5 (git-f4d1121d46)
OpenGL ES profile version string: OpenGL ES 2.0 Mesa 21.2.5 (git-f4d1121d46)
OpenGL ES profile shading language version string: OpenGL ES GLSL ES 1.0.16
- Xserver version (if applicable): 1.20.8
- Desktop manager and compositor: N/A
Describe the issue
Using modesetting + glamor, non-fullscreen GL apps do not render correctly.
The simplest way to demonstrate this bug is to start Xorg directly with no arguments, and then run glxgears. The first frame of glxgears does display and looks correct. However, it does not update correctly. Sometimes you just see the first frame, static, with no animation. Sometimes you see part or all of the frame jitter (possible bouncing between two frames?). glxgears -fullscreen works correctly. This behavior is quite reproducible, I never see correct behavior.
(It seems that the -fullscreen case uses Present page flipping, as opposed to updating just a subset of the framebuffer).