Status der Wayland-Unterstützung bei NVIDIA-Treibern

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.

Teilt den Beitrag, falls ihr mögt

Abonnieren
Benachrichtige mich bei
15 Kommentare
Most Voted
Newest Oldest
Inline Feedbacks
View all comments