These two patches are intended to accompany upcoming support in the proprietary NVIDIA driver for hardware accelerated GL and Vulkan rendering with Xwayland. They shouldn't interfere with the current swrast-based GL support, so once the driver-side changes are out the door things should just start working. I wanted to send these our for consideration first, though, in case anyone has any substantial concerns with the general approach. See the commit messages for further details on the implementation.
Performance should be roughly on-par with native X11 based on the benchmarking I've done. There's still an annoying extra copy required for presentation of windowed applications, but the impact doesn't appear to be significant, and full-screen applications won't have that issue (provided the compositor supports the required zwp_linux_dmabuf_v1 interface).
Any and all feedback is appreciated.