NVK, ein Open-Source-Vulkan-Treiber für NVIDIA-Grafikkarten, wurde vorgestellt

Collabora hat NVK veröffentlicht, einen neuen Open-Source-Treiber für Mesa, der die Vulkan-Grafik-API für NVIDIA-Grafikkarten implementiert. Der Treiber wurde von Grund auf unter Verwendung offizieller Header-Dateien und offener Kernel-Module geschrieben, die von NVIDIA veröffentlicht wurden. Der Treibercode ist Open Source unter der MIT-Lizenz. Der Treiber unterstützt nur GPUs, die auf den seit September 2018 veröffentlichten Turing- und Ampere-Mikroarchitekturen basieren.

Das Projekt wird von einem Team entwickelt, zu dem Karol Herbst, Nouveau-Entwickler bei Red Hat, David Airlie, DRM-Subsystem-Betreuer bei Red Hat, und Jason Ekstrand, aktiver Mesa-Entwickler bei Collabora, gehören. Bei der Entwicklung eines neuen Treibers werden manchmal die Grundkomponenten des Nouveau OpenGL-Treibers verwendet, aber aufgrund der Unterschiede in den Namen in den NVIDIA-Header-Dateien und den Reverse-Engineering-Namen in Nouveau ist das direkte Ausleihen von Code schwierig und in den meisten Fällen sogar schwierig Es war notwendig, viele Dinge zu überdenken und mit Null umzusetzen.

Derzeit wird auch an der Erstellung eines neuen Referenz-Vulkan-Treibers für Mesa gearbeitet, dessen Code bei der Erstellung anderer Treiber ausgeliehen werden kann. Zu diesem Zweck haben wir bei der Arbeit am NVK-Treiber versucht, alle verfügbaren Erfahrungen bei der Entwicklung von Vulkan-Treibern zu berücksichtigen, die Codebasis in einem optimalen Zustand zu halten und die Übertragung von Code von anderen Vulkan-Treibern zu minimieren und so das zu tun, was getan werden sollte für optimale und qualitativ hochwertige Arbeit und nicht blindes Kopieren dessen, was in anderen Treibern gemacht wird.

Der NVK-Treiber befindet sich erst seit wenigen Monaten in der Entwicklung, daher ist seine Funktionalität eingeschränkt. Der Treiber besteht 98 % der Tests erfolgreich, wenn 10 % der Tests über die Vulkan CTS (Compatibility Test Suite) ausgeführt werden. Im Allgemeinen wird die Treiberbereitschaft auf 20–25 % der Funktionalität von ANV- und RADV-Treibern geschätzt. Hinsichtlich der Hardwareunterstützung ist der Treiber derzeit auf Karten beschränkt, die auf den Mikroarchitekturen Turing und Ampere basieren. Derzeit wird an Patches zur Unterstützung von Kepler-, Maxwell- und Pascal-GPUs gearbeitet, diese sind jedoch noch nicht fertig.

Langfristig soll der NVK-Treiber für NVIDIA-Grafikkarten ein ähnliches Qualitäts- und Funktionsniveau wie der RADV-Treiber für AMD-Karten erreichen. Nachdem der NVK-Treiber fertig ist, können die während seiner Entwicklung erstellten gemeinsam genutzten Bibliotheken zur Verbesserung des Nouveau OpenGL-Treibers für NVIDIA-Grafikkarten verwendet werden. Es wird auch über die Möglichkeit nachgedacht, das Zink-Projekt zu nutzen, um einen vollwertigen OpenGL-Treiber für NVIDIA-Grafikkarten zu implementieren, der durch Aufrufübersetzung an die Vulkan-API funktioniert.

Source: opennet.ru

Kommentar hinzufügen