Sind wir schon Wayland: Nvidia Edition

Vortrag vom 1. Juni 2024 auf der Gulaschprogrammiernacht 22 in Karlsruhe. https://cfp.gulas.ch/gpn22/talk/FFJ8QT/ Die schlechte Unterstützung von Wayland unter Nvidia-Treibern hat zurecht einen Meme-Status erreicht. Aber gerade in den letzten Jahren hat sich einiges getan, um diesen Status zu verbessern, sowohl seitens Nvidias als auch in der Wayland-Community. Und dank großer Fortschritte im Nouveau-Projekt sind Anwender:innen nicht mehr alleine auf Nvidia angewiesen, auch ein vollkommen offener Grafikstack scheint wieder in greifbarer Nähe. Daher stelle ich mir 2024 wieder die Frage: Lässt sich Wayland endlich problemlos mit Nvidia-GPUs nutzen? Seit 2021 gab es einige Meilensteine, die die Unterstützung von Wayland auf Nvidia-GPUs Stück für Stück verbessert haben. Dies geht von der teilweisen Öffnung der offiziellen Nvidia-Treiber über eine Annäherung Nvidias an die Wünsche der Wayland-Community bis zu den kürzlichen Fortschritten des Nouveau-Projekts, aktuelle Nvidia-GPUs nicht nur zu unterstützen, sondern auch offene Treiber für Vulkan und OpenGL zu liefern, die vollkommen standardkonform sind. Es scheint also, als könnte dies das Jahr des Nvidia-Linux-Desktops werden. In diesem Talk wollen wir uns anschauen, was mittlerweile alles möglich ist, sowohl in Bezug auf Gaming als auch die alltägliche Nutzung des Desktops. Welche Unterschiede gibt es dabei zwischen den verschiedenen Desktopumgebungen? Wie viel manuelle Konfiguration ist noch notwendig, um das beste Wayland-Erlebnis zu erreichen? Und lohnt sich der Umstieg auf Nouveau? Einige nennenswerte Fortschritte der letzten Jahre sind: - Juli 2021: Xwayland, die Kompatibilitätsschnittstelle, um X11-Anwendungen innerhalb einer Wayland-Umgebung auszuführen, erhält Hardwarebeschleunigung für Nvidia-GPUs. Da gerade Spiele (und Wine/Proton) vorrangig nur unter X11 laufen, wird Wayland zum ersten Mal für Spieler:innen mit Nvidia-GPUs interessant. - Oktober 2021: Nvidia veröffentlicht die erste Treiberversion mit Unterstützung für Generic Buffer Management (GBM), einer offenen Schnittstelle zum allokieren von Render Target Buffers, die in allen Wayland Compositors zum Einsatz kommt. Zuvor hatte Nvidia versucht, die eigene Lösung EGLStreams als "bessere" Alternative zu etablieren. - Mai 2022: Nvidia veröffentlicht die "GPU Open-Source Kernel Modules", welche die "sensiblen" Teile des Nvidia-Kernel-Treibers in einen geschlossenen RISC-V-Prozessor auf Hardware-Seite (genannt GPU System Processor, kurz GSP) verschieben und es Nvidia ermöglichen, nur die Kommunikationsschnittstelle für diesen als Open Source zu veröffentlichen. Die Userland-Teile des Treibers (CUDA, OpenGL, Vulkan, DLSS) bleiben weiterhin Closed Source. - August 2023: Der offene Vulkan-Treiber NVK des Nouveau-Projekts wird dem Linux-Grafikstack Mesa hinzugefügt. Dank des Vulkan-basierten OpenGL-Treibers Zink unterstützt Nouveau damit sowohl Vulkan als auch aktuelle OpenGL-Versionen. - Oktober 2023: Nvidia fügt Unterstützung für Gamma Lookup Tables (Gamma LUT) hinzu. - November 2023: Der offene Linux-Kernel-Treiber Nouveau fügt Unterstützung für den GSP hinzu, welcher es ihm zum ersten Mal in fast 10 Jahren erlaubt, die Taktrate auch auf neueren Nvidia GPUs zu verändern und damit einen performanten Einsatz möglich macht. - November 2023: NVK erreicht volle Konformität für Vulkan 1.0. - Februar 2024: NVK erreicht volle Konformität für Vulkan 1.3.

LicenseCreative Commons Attribution