Are We Wayland Yet: Nvidia Edition
Talk from June 1, 2024 at the Goulash Programming Night 22 in Karlsruhe. https://cfp.gulas.ch/gpn22/talk/FFJ8QT/ The poor support of Wayland among Nvidia drivers has rightly reached meme status. But especially in recent years, a lot has happened to improve this status, both on the part of Nvidia and in the Wayland community. And thanks to great progress in the Nouveau project, users are no longer solely dependent on Nvidia, and a completely open graphics stack seems to be within reach again. Therefore, in 2024, I ask myself the question again: Can Wayland finally be used with Nvidia GPUs without any problems? Since 2021, there have been some milestones that have improved Wayland's support on Nvidia GPUs bit by bit. This ranges from the partial opening of the official Nvidia drivers to Nvidia's approach to the wishes of the Wayland community to the recent progress of the Nouveau project not only to support current Nvidia GPUs, but also to provide open drivers for Vulkan and OpenGL that are fully standards-compliant. So it seems like this could be the year of the Nvidia Linux desktop. In this talk, we want to take a look at what is now possible, both in terms of gaming and the everyday use of the desktop. What are the differences between the different desktop environments? How much manual configuration is still necessary to achieve the best Wayland experience? And is it worth switching to Nouveau? Some notable advances in recent years include: - July 2021: Xwayland, the compatibility interface to run X11 applications within a Wayland environment, gets hardware acceleration for Nvidia GPUs. Since games (and Wine/Proton) primarily only run on X11, Wayland is becoming interesting for gamers with Nvidia GPUs for the first time. - October 2021: Nvidia releases the first driver version with support for Generic Buffer Management (GBM), an open interface for allocating render target buffers that is used in all Wayland compositors. Previously, Nvidia had tried to establish its own solution EGLStreams as a "better" alternative. - May 2022: Nvidia releases the "GPU Open-Source Kernel Modules", which move the "sensitive" parts of the Nvidia kernel driver into a closed RISC-V processor on the hardware side (called GPU System Processor, GSP for short) and allow Nvidia to publish only the communication interface for it as open source. The userland parts of the driver (CUDA, OpenGL, Vulkan, DLSS) remain closed source. - August 2023: The Nouveau Project's open Vulkan driver NVK is added to the Linux graphics stack Mesa. Thanks to the Vulkan-based OpenGL driver Zink, Nouveau supports both Vulkan and current OpenGL versions. - October 2023: Nvidia adds support for Gamma Lookup Tables (Gamma LUT). - November 2023: The open Linux kernel driver Nouveau adds support for the GSP, which allows it to change the clock speed on newer Nvidia GPUs for the first time in almost 10 years, thus enabling high-performance use. - November 2023: NVK achieves full compliance for Vulkan 1.0. - February 2024: NVK achieves full compliance for Vulkan 1.3.
LicenseCreative Commons Attribution