On my system, Xwayland uses swrast instead of the expected i965 for GLX. This happens both under weston and a gnome wayland session. 3D-intensive programs run very slowly, and glxinfo reports that it is using swrast. As far as I can tell, both weston and the gnome compositor use i965 for themselves, it is only Xwayland that gets swrast. i965 is also used for a gnome X session. Gentoo Kernel 4.8.6 weston 1.11.0 wayland 1.12.0 xorg-server 1.19.0 mesa git (recent) gnome 3.22
I have spent a while trying to debug this (even though I don't know this code at all). It seems that in GlxExtensionInit(), glxext.c:396 (https://cgit.freedesktop.org/xorg/xserver/tree/glx/glxext.c#n396) we loop through a list of potential GLX providers, looking for one that works. Slightly before that, at line 371, we add swrast to the end of the list, presumably as a fallback in case nothing else works. My debugging shows that, for me, before line 371 __glXProviderStack is null. There are no providers in the list of potential GLX providers. Beyond that, I don't know where to look. Where should something be adding a potential provider to that list?
pq helped me figure out on IRC that the problem here is my xorg-server package was built without glamor. Rebuilding with glamor fixed everything.
Use of freedesktop.org services, including Bugzilla, is subject to our Code of Conduct. How we collect and use information is described in our Privacy Policy.