GNOME Bugzilla – Bug 771636
gles2 x session bound to glx winsys
Last modified: 2017-03-24 16:23:43 UTC
in meta-renderer-x11 the vtable bounds non compositor sessions to glx and compositor ones to egl xlib. Before commit 2ceff4ee9b3d9e94f6ad72ac4256786d0c5b62c2 ("Create cogl renderer in MetaRenderer") this was different. That is wayland compositor session was forced to be egl, otherwise it was up to the constraints. That is, gles2 was bound to egl xlib before (Odroid U2 with MALI 400 GPU this with mali 400 x11/egl userspace blob). Now that teh gdm x session is started as gles2 with a glx winsys , gnome-shell breaks at startup with clutter no driver error. Locally I disabled setting the winsys at all in src/backends/x11/meta-renderer-x11.c . PS: Odroid U2 Mali 400 support for gnome shell has other issues, though this one is a regression that should affect all gles2 x11 sessions, so I felt it deserved a report. Mind this is mutter-clutter only issue, plain cogl/clutter are not affected.
Created attachment 336137 [details] [review] x11: Use EGL instead of GLX when drawing using GLES When running as a X11 CM we shouldn't use the GLX winsys when the driver doesn't support it, i.e. OpenGL ES drivers. --- I still avoid going through the cogl winsys contraint path, as I think that it really should be mutter that configures this, not cogl.
Comment on attachment 336137 [details] [review] x11: Use EGL instead of GLX when drawing using GLES In the get_x11_cogl_winsys_vtable switch, did you mean glx when gl or gl3 ? All the cases resolve to egl xlib. I test the patch this evening. Thank you for the fix !
Review of attachment 336137 [details] [review]: Gah, right, it should use GLX when the driver is plain OpenGL
Works for me ! (with above change , that is glx for GL and GL3).
Created attachment 336420 [details] [review] x11: Use EGL instead of GLX when drawing using GLES When running as a X11 CM we shouldn't use the GLX winsys when the driver doesn't support it, i.e. OpenGL ES drivers.
Already confirmed ok (I checked the latest patch has no diff to the patch I applied beforehand). Mind this does not work as is (requires other tweaks to /etc clutter and cogl config files and patches to Xorg. But regression is gone.
*** Bug 774648 has been marked as a duplicate of this bug. ***
Review of attachment 336420 [details] [review]: Looks good IMHO.
Attachment 336420 [details] pushed as ac813d5 - x11: Use EGL instead of GLX when drawing using GLES