Das Khronos-Konsortium, das sich mit der Entwicklung von Grafikstandards beschäftigt, hat die volle Kompatibilität des offenen NVK-Treibers für NVIDIA-Grafikkarten mit der Vulkan-Spezifikation 1.0 anerkannt. Der Treiber hat erfolgreich alle Tests aus dem CTS (Kronos Conformance Test Suite) bestanden und wurde in die Liste der zertifizierten Treiber aufgenommen. Die Zertifizierung gilt für NVIDIA-GPUs, die auf der Turing-Mikroarchitektur basieren (TITAN RTX, GeForce RTX 2060/2070/2080, GeForce GTX 1660, Quadro RTX 3000-8000, Quadro T1000/T2000). Die Überprüfung wurde in einer Umgebung mit dem Linux-Kernel 6.5, dem X.Org X Server 1.20.14, XWayland 22.1.9 und GNOME Shell 44.4 durchgeführt. Der Erhalt des Zertifikats ermöglicht es, offiziell über die Kompatibilität mit Grafikstandards zu berichten und die damit verbundenen Markenzeichen von Khronos zu verwenden.
Der NVK-Treiber wurde von Grund auf von einem Team entwickelt, zu dem Karol Herbst (Karol Herbst, Entwickler von Nouveau bei Red Hat), David Airlie (David Airlie, Maintainer des DRM-Subsystems bei Red Hat) und Jason Ekstrand (Jason Ekstrand, aktiver Entwickler von Mesa bei Collabora) gehören. Bei der Erstellung des Treibers verwendeten die Entwickler offizielle Header-Dateien und offene Kernel-Module, die von NVIDIA veröffentlicht wurden. Im NVK-Code wurden teilweise grundlegende Komponenten des OpenGL-Treibers Nouveau verwendet, aber aufgrund der unterschiedlichen Bezeichnungen in den Header-Dateien von NVIDIA und den Bezeichnungen in Nouveau, die auf Reverse Engineering basieren, war eine direkte Übernahme von Code schwierig, und in den meisten Fällen mussten viele Dinge neu überlegt und von Grund auf neu implementiert werden.
Die Entwicklung wurde mit dem Ziel vorangetrieben, einen neuen Referenz-Vulkan-Treiber für Mesa zu schaffen, dessen Code bei der Erstellung anderer Treiber verwendet werden kann. Daher versuchten die Entwickler bei der Arbeit am NVK-Treiber, alle bisherigen Erfahrungen in der Entwicklung von Vulkan-Treibern zu berücksichtigen, die Codebasis optimal zu halten und die Übernahme von Code aus anderen Vulkan-Treibern zu minimieren, indem sie die beste Vorgehensweise für eine optimale und qualitativ hochwertige Leistung anstrebten, anstatt blind zu kopieren, was in anderen Treibern gemacht wurde. Der Treiber ist bereits Bestandteil von Mesa, und die für den Betrieb erforderlichen Änderungen im API des Nouveau-DRM-Treibers wurden in den Linux-Kernel 6.6 aufgenommen.
In den Änderungen der Ankündigung wird auch die Aufnahme eines neuen Backend-Compilers für NVK, geschrieben in Rust, erwähnt. Dieser Compiler löst Probleme des alten Compilers, die das Durchlaufen der Kronos-Texte behindert haben, und beseitigt einige fundamentale Einschränkungen der Architektur, die ohne eine vollständige Überarbeitung des alten Compilers nicht behoben werden konnten. Zu den zukünftigen Plänen wurde die Unterstützung von GPUs auf Basis der Maxwell-Mikroarchitektur sowie die vollständige Unterstützung der API Vulkan 1.3 erwähnt.
Quelle: opennet.ru
