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.
mesa git (recent)
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.