Konsorcjum Khronos zajmujące się rozwojem standardów graficznych uznało pełną zgodność otwartego sterownika NVK dla kart graficznych NVIDIA ze specyfikacją Vulkan 1.0. Sterownik pomyślnie przeszedł wszystkie testy z zestawu CTS (Kronos Conformance Test Suite) i został uwzględniony na liście certyfikowanych sterowników. Certyfikacja dotyczy GPU NVIDIA opartego na mikroarchitekturze Turing (TITAN RTX, GeForce RTX 2060/2070/2080, GeForce GTX 1660, Quadro RTX 3000-8000, Quadro T1000/T2000). Weryfikacja została przeprowadzona w środowisku z jądrem Linux 6.5, X.Org X Server 1.20.14, XWayland 22.1.9 oraz GNOME Shell 44.4. Uzyskanie certyfikatu umożliwia oficjalne ogłoszenie zgodności ze standardami graficznymi oraz korzystanie z prezentowanych znaków towarowych Khronos.
Sterownik NVK został stworzony od podstaw przez zespół, w którego skład wchodzą Karol Herbst (Karol Herbst, deweloper Nouveau z Red Hat), David Airlie (David Airlie, maintainer subsystem DRM z Red Hat) oraz Jason Ekstrand (Jason Ekstrand, aktywny deweloper Mesa z Collabora). Przy tworzeniu sterownika deweloperzy korzystali z oficjalnych plików nagłówkowych oraz otwartych modułów jądra opublikowanych przez firmę NVIDIA. W kodzie NVK miejscami wykorzystywane były podstawowe komponenty OpenGL sterownika Nouveau, ale z powodu różnic w nazewnictwie w plikach nagłówkowych NVIDIA oraz nazw w Nouveau, uzyskanych na podstawie inżynierii odwrotnej, bezpośrednie zaciąganie kodu jest utrudnione i w większości przypadków trzeba było przewartościować wiele rzeczy i implementować je od podstaw.
Rozwój prowadzono z myślą o stworzeniu nowego referencyjnego sterownika Vulkan dla Mesa, którego kod będzie można zaciągnąć przy tworzeniu innych sterowników. W tym celu podczas pracy nad sterownikiem NVK starano się uwzględnić całe dotychczasowe doświadczenie w tworzeniu sterowników Vulkan, utrzymywać bazę kodu w optymalnej formie oraz minimalizować przenoszenie kodu z innych sterowników Vulkan, starając się realizować to, jak powinno być dla optymalnej i jakościowej pracy, a nie ślepo kopiując to, jak zrobiono to w innych sterownikach. Sterownik już wchodzi w skład Mesa, a niezbędne zmiany w API sterownika DRM Nouveau zostały włączone do jądra Linux 6.6.
W ogłoszeniu podano również, że do Mesa dołącza nowy kompilator backendowy dla NVK, napisany w języku Rust. Rozwiązuje on problemy w starym kompilatorze, które przeszkadzały w przetwarzaniu tekstów Kronos, a także eliminuje niektóre podstawowe ograniczenia architektury, których nie można było naprawić bez całkowitej przebudowy starego kompilatora. W planach na przyszłość wspomniano o dodaniu wsparcia dla GPU opartego na mikroarchitekturze Maxwell oraz o pełnej obsłudze API Vulkan 1.3.
Źródło: opennet.ru
