Der Open-Source-Community-gesteuerte NVIDIA-Linux-Treiber-Stack holt weiterhin zu proprietären Closed-Source-Treibern auf und schreitet hinsichtlich der Funktionalität stetig in Richtung „voller Parität“ voran. Die neueste Entwicklung stammt von NVK im Mesa-Treiberstapel – einem Open-Source-NVK-Vulkan-Treiber, der kürzlich die Unterstützung für die DLSS-Funktion (Deep Learning Super Sampling) auf Nvidia-GPUs zusammengeführt hat. 

image.webp

Der Entwicklungszweig 26.2-devel des Mesa-Grafikstapels beinhaltet eine wichtige Änderung: Der Open-Source-NVK-Vulkan-Treiber von NVIDIA bietet jetzt Unterstützung für Deep Learning Super Sampling (DLSS) für moderne Spiele in der Linux/Steam Play-Umgebung.

Diese Funktion geht auf einen Patch zurück, der letztes Jahr von Autumn Ashton eingereicht wurde und die Implementierung der VK_NVX_binary_import-Erweiterung in Mesa anfordert, einer wichtigen Vulkan-Erweiterung, die zur Aktivierung von DLSS auf NVIDIA-GPUs erforderlich ist. Mit dieser Erweiterung können Anwendungen die CuBIN-Binärdateien von NVIDIA importieren und auf der GPU ausführen. Bei diesen CuBIN ELF-Dateien handelt es sich im Wesentlichen um CUDA-Binärdateien, die für NVIDIA-GPUs vorkompiliert wurden. Über VK_NVX_binary_import kann der NVK-Treiber die entsprechende Binärdatei von DLSS laden und ausführen, um DLSS auf dem NVK-Treiber zu aktivieren.

image-1.webp

Aufgrund der reduzierten Aktivität von Autumn Ashton in der Mesa-Entwicklung in den letzten Monaten kam es in diesem Patch zu Zusammenführungskonflikten und anderen Problemen während des Zusammenführungsprozesses. Vor zwei Monaten reichte Entwickler Thomas Andersen eine neue Zusammenführungsanfrage ein, um Konflikte zu beheben und den ursprünglichen Patch zu verbessern, und schob ihn schließlich in den Mesa 26.2-Zweig. Diese neue Zusammenführungsanfrage wurde heute abgeschlossen und ermöglicht es NVK, in Spielen mit aktiviertem DLSS ordnungsgemäß zu funktionieren.

Derzeit ist diese DLSS-Unterstützung noch als experimentell gekennzeichnet und muss explizit über die Umgebungsvariable NVK_EXPERIMENTAL=dlss aktiviert werden. Da DLSS auf CUDA-Binärdateien basiert, erfordert die Implementierung auf der NVK-Seite auch einen passenden Bytecode für die verwendete GPU, da sonst die Funktionalität nicht ordnungsgemäß funktioniert. Im Gegensatz dazu unterstützt der proprietäre Vulkan-Treiber von NVIDIA diese Art von Funktionalität über den PTX-zu-Bytecode-Pfad, und der NVK verfügt derzeit nicht über die Möglichkeit, NVIDIA PTX in die Mesa-NIR-Darstellung zu konvertieren, was eine Einschränkung der aktuellen Implementierung darstellt.

Trotz der bekannten Mängel und der noch zu öffnenden PTX-Konvertierungsverbindung wird dieser Zusammenschluss immer noch als wichtige Entwicklung für das Open-Source-Grafik-Ökosystem von NVK und Linux angesehen. Nach dem Plan des Mesa-Projekts werden diese Änderungen in der stabilen Version Mesa 26.2 erscheinen, die voraussichtlich im August veröffentlicht wird und Linux-Spielern, die NVK verwenden, neue Möglichkeiten bietet, DLSS auf Open-Source-Treibern zu erleben.