Red Hat developer Adam Jackson has opened a new merge request for the Mesa project, with what they’re calling GLX Delay, to bring accelerated GLX for Xwayland with the NVIDIA driver.
Their work in progress code should be reasonably fast, they mentioned the OpenGL rendering part should hold up against Xorg itself or EGL “on the bare metal”. However, it’s thoroughly unfinished with tons not even implemented yet like resizing windows and plenty of other features. Amusingly, they describe the way it’s done as something that “sounds unpleasant”:
“Delay” is a hack to enable direct GLX contexts under Xwayland when using the NVIDIA binary driver. It works by creating an EGL context on the client side, running GL rendering through that, and translating GLX commands to either EGL or X protocol as necessary. The library that performs this translation is a GLVND vendor library, which Xwayland configures as the vendor responsible for the screen.
Why is it going into Mesa when it’s for the NVIDIA proprietary driver? They said pretty simply that Mesa’s GLX code already implements most of what’s needed to allow it. Additionally, Jackson mentioned how it seems like it will “eliminate a large class of reasons why you might need to use Xorg and NVIDIA’s driver” and that it is “better than what you currently get for GLX clients in that scenario, which is llvmpipe”. However, it can be seen that it “entrenches the position of NVIDIA’s libEGL, since we’ve only made it more useable” but “on balance, that this reduces the binary driver footprint, and I think that’s a good direction to go”.
In short: if finished and accepted, you might in future see NVIDIA’s proprietary Linux driver + Wayland working nicer.
For those interested, the code is up here.
Article taken from GamingOnLinux.com.