Kürzlich hat NVIDIA die Linux-Sphäre überrascht, indem das Unternehmen die Kernel-Module seines proprietären Treibers als Open-Source freigab. Auch bei der Unterstützung für Wayland hat sich NVIDIA letztlich angepasst.
EGL vs. GBM
Der Grafikkartenhersteller hatte jahrelang darauf bestanden, sein hauseigenes EGL-Streams-API zu verwenden, während Wayland und alle Beteiligten sich bereits vorher auf GBM ( Generic Buffer Management) als Puffer-API festlegte. Das führte zu Diskussionen, da niemand außer NVIDIA EGL-Streams einsetzen wollte. Damit der GPU-Treiber und der Wayland-Compositor kompatibel sind, müssen sie aber die gleiche Puffer-API unterstützen. Mit seinem Beharren auf EGL hat NVIDIA über Jahre Wayland-taugliche NVIDIA-Treiber verhindert. Erst ab der Treibergeneration ≥495 im Oktober 2021 unterstützt NVIDIA nun auch GBM.
Das führte unter anderem dazu, dass das kürzlich veröffentlichte Fedora Linux 36 den NVIDIA-Treiber unter Wayland voll unterstützt. Bei Ubuntu 22.04 LTS »Jammy Jellyfish« war dies auch vorgesehen, Canonical zog auf Wunsch von NVIDIA die Unterstützung jedoch kurzfristig zumindest teilweise wieder zurück. Eine Sitzung für reine NVIDIA-Systeme verbleibt bei X11, während Hybrid-Systeme standardmäßig bei Wayland bleiben.
Stand der Unterstützung mit R515
Jetzt hat Aaron Plattner, einer der Hauptentwickler des proprietären NVIDIA-Treibers, einen Statusreport veröffentlicht, der anhand der derzeit getesteten Treibergeneration R515 die noch bestehenden Defizite für eine mit X11 vergleichbare Unterstützung bei Wayland auflistet. Dabei unterscheidet er zwischen Defiziten im NVIDIA-Treiber und solchen bei Wayland und seinen Compositoren.
Aufseiten des Treibers sieht er folgende Hemmnisse:
- [wiki title=”Video_Decode_and_Presentation_API_for_Unix”]VDPAU[/wiki], der Hardware-Beschleunigungsmechanismus, der die Nachbearbeitung, das Compositing, die Anzeige und die Dekodierung von Videos ermöglicht, hat keine integrierte Unterstützung für Wayland. Die entsprechende Bibliothek kann auch nicht mit Xwayland verwendet werden.
- Wayland und Xwayland werden von der Bibliothek NvFBC (NVIDIA FrameBuffer Capture), die für Bildschirmaufnahmen verwendet wird, nicht unterstützt.
- Das NVIDIA-DRM-Modul meldet keine Funktionen mit variabler Bildwiederholrate wie G-Sync, wodurch diese in Wayland-basierten Umgebungen nicht verwendet werden können.
- In Wayland-basierten Umgebungen ist die Ausgabe auf Virtual-Reality-Bildschirmen, wie sie zum Beispiel von der SteamVR-Plattform unterstützt wird, nicht verfügbar, da die DRM-Lease, die die DRM-Ressourcen bereitstellt, die notwendig sind, um ein Stereobild mit unterschiedlichen Puffern für das linke und rechte Auge zu erzeugen, wenn es auf Virtual-Reality-Helmen angezeigt wird, nicht funktioniert.
- Xwayland unterstützt die EGL_EXT_platform_x11 nicht.
- Das NVIDIA-DRM-Modul unterstützt nicht die Eigenschaften GAMMA_LUT, DEGAMMA_LUT, CTM, COLOR_ENCODING und COLOR_RANGE, die für eine vollständige Unterstützung der Farbkorrektur in Composite Managern notwendig sind.
- Bei der Verwendung von Wayland ist die Funktionalität des nvidia-settings-Dienstprogramms eingeschränkt.
- Mit Xwayland in GLX funktioniert das Zeichnen des Ausgabepuffers auf den Bildschirm (Frontbuffer) nicht, wenn doppelt gepuffert wird.
Die Liste der Defizite aufseiten von Wayland ist auch nicht viel kürzer:
- Funktionen wie Stereo Out, SLI, Multi-GPU Mosaic, Frame Lock, Genlock, Swap Groups und erweiterte Anzeigemodi (Warp, Blend, Pixel Shift und YUV420-Emulation) werden vom Wayland-Protokoll oder den Composite-Servern nicht unterstützt. Um solche Funktionen zu implementieren, müssen offensichtlich neue EGL-Erweiterungen erstellt werden.
- Es gibt keine allgemein akzeptierte API, die es Wayland-Composite-Servern erlaubt, den Videospeicher über PCI-Express Runtime D3 (RTD3) herunterzufahren.
- Xwayland fehlt ein Mechanismus, der im NVIDIA-Treiber zur Synchronisierung von Anwendungs-Rendering und Bildschirmausgabe verwendet werden kann. Ohne eine solche Synchronisation ist unter Umständen das Auftreten von visuellen Verzerrungen nicht ausgeschlossen.
- Wayland-Composite-Server unterstützen keine Bildschirm-Multiplexer (mux), die auf Laptops mit zwei GPUs (integriert und diskret) verwendet werden, um eine diskrete GPU direkt mit einem integrierten oder externen Bildschirm zu verbinden. In X11 kann der “Mux”-Bildschirm automatisch umgeschaltet werden, wenn eine Vollbildanwendung über die diskrete GPU ausgibt.
- Indirektes Rendering über GLX funktioniert in Xwayland nicht, da die Implementierung der GLAMOR 2D-Beschleunigungsarchitektur nicht mit der EGL-Implementierung von NVIDIA kompatibel ist.
- [wiki base=”EN” title=”Hardware_overlay”]Hardware Overlays[/wiki] werden in GLX-Anwendungen, die in Xwayland-basierten Umgebungen laufen, nicht unterstützt.
Bleibt für Besitzer von NVIDIA-Karten, die Wayland einsetzen möchten, zu hoffen, dass diese Liste im Laufe der Zeit kürzer wird, da fehlende Funktionen sowohl im Treiber als auch in Upstream-Komponenten implementiert werden.

Dazu schreiben auch andere ganz interessante Dinge:
https://www.golem.de/news/linux-nvidias-grosse-schoene-open-source-schummelei-2205-165301.html
nvidia-settings sollten in wayland auch funktionieren, derzeit kann man nur fein Einstellungen in X11 vornehmen und wenn man die dann unter Wayland und den nvidia-settings aufruft, bekommt man lediglichlich ein paar anzeigen, aber keine Möglichkeiten, das dann sauber ein zu stellen, wenn an zum Beispiel ein TV benutzt und WebOS (https://webostv.developer.lge.com/discover/overview/discover-webos-tv/) dann die Display-Oberfläche übernimmt. Da WebOS Open Source ist, sollte man doch meinen, daß man in KDE/Plasma oder Gnome denn eine Möglichkeit bauen könnte um das dann direct zu connecten über HDMI und die Desktop-Oberfläche inclusive den Sound dann einstellen zu können, aber das ist nicht, weder Plasma/KDE noch Gnome stellt an dieser Stelle was bereit um WebOS über den Desktop dann connecten zu können und eventuell dann auch die Apps, die man dort installieren kann , auch zzu steuern.. dieses WebOS ist recht reichhaltig und gibt sicherlich einiges recht interessantes zu Verfügung und über HDMI kann man da einiges schrauben, nur muss das eben bekannt werden..
Auch die ordendlichen Auflösungen, die unterstützt werden, könnten sicherlich auch über Wayland über WebOS abgerufen werden und dann so die richtige auflösungen verwendet werden können vom User, jeh nach dem wie groß der TV ist.
Ich nehm schon Jahrelang einen TV als Desktop, wahnsinns Auflösung unter UHD, keine Pixel mehr, echtfarben und… hab ich schon gesagt, wahnsinns Bild und kann 4 Virtualboxes neben/übereinander laufen lassen, weil einfach der platz da ist.. mit einem 43″ller (alles andere iss übertrieben auf einem Tisch.. ud billige UHD’s bekommt man schon um die 2-300 Euros) und hab überall nen Computer drann mit Fedora und Debian 11 derzeit..
https://webostv.developer.lge.com/discover/overview/discover-webos-tv/
https://github.com/topics/webos-tv
wäre schön, wenn das unter Wayland und Plasma -MIT Cube- funtionieren würde, apropo, Cube, könnte man da nicht ein Addin zum runterladen zusammenbauen, iss nähmlich beschissen, daß man Cube nicht mehr hat.. sauerrei, dass das rausgeschmissen wurde in Plasma/KDE !
liebe grüße
euer
Annonymchen
Intel Arc ist auch sehr interessant. Intel bietet doch offene Treiber an.
Warum werden meine Kommentare direkt gelöscht???
Die werden nicht gelöscht, aber da du (vermutlich) mit neuem Namen unterwegs bist, muss ich die händisch freischalten.
Man darf auf Intel Arc gespannt sein. Intel Treiber sind ja auch offen.
Tja, nie wieder NVIDIA. Mehr gibts dazu eigentlich nicht zu sagen.
Es entwickelt sich doch langsam in eine gute Richtung.
Schon seit längere Zeit habe ich diese Meldung mehrmals täglich im Log:
Ein Entwickler von NVIDIA schreibt dazu:
Bis jetzt hatte ich auch nie wirklich Probleme. AMD hat auch Jahre gebraucht.
Niemals den Tag vor dem Abend loben, sagt ein Sprichwort. Erst wenn NVIDIA wirklich auch etwas Freies liefert, kann man von einer guten Richtung sprechen.
Laut Phoronix steht der Kernel Code bereits unter Dual License MIT/GPL(nur für Linux). Das ist also schonmal vom Tisch.
Das war wohl im Juli 21 mit “bald” gemeint: https://www.golem.de/news/linux-nvidia-nimmt-wichtige-huerde-fuer-wayland-unterstuetzung-2107-158022.html
Naja, dauert ja auch sicher seine Zeit!
Klar, das bestreite ich auch gar nicht. Aber ich traue NVIDIA erst, wenn es auch in der Praxis so ist. Derzeit ist das nicht der Fall.
Hector Martin auf Twitter: “So NVIDIA “released” their kernel driver as open source. By which they mean, they moved most of it to firmware and made the open source driver call into it. There are almost 900 functions implemented in the 34MB firmware, give or take, from what I can see. Broadcom vibes…”
https://twitter.com/marcan42/status/1524615058688724992
That’s the trick!
Ach was. Darum vertrauen kann man NVIDIA nicht.