NVK, otwarty sterownik dla kart graficznych NVIDIA, obsługuje Vulkan 1.0

Konsorcjum Khronos opracowujące standardy graficzne uznało pełną kompatybilność otwartego sterownika NVK dla kart graficznych NVIDIA ze specyfikacją Vulkan 1.0. Kierowca pomyślnie przeszedł wszystkie testy z pakietu CTS (Kronos Conformance Test Suite) i znajduje się na liście certyfikowanych kierowców. Zakończono certyfikację dla procesorów graficznych NVIDIA opartych na mikroarchitekturze Turing (TITAN RTX, GeForce RTX 2060/2070/2080, GeForce GTX 1660, Quadro RTX 3000-8000, Quadro T1000/T2000). Test przeprowadzono w środowisku z jądrem Linux 6.5, X.Org X Server 1.20.14, XWayland 22.1.9 i GNOME Shell 44.4. Uzyskanie certyfikatu pozwala oficjalnie zadeklarować zgodność ze standardami graficznymi i posługiwać się powiązanymi znakami towarowymi Khronos.

Sterownik NVK został zbudowany od podstaw przez zespół, w skład którego wchodzili Karol Herbst (programista Nouveau w Red Hat), David Airlie (opiekun DRM w Red Hat) i Jason Ekstrand (aktywny programista Mesa w Collabora). Tworząc sterownik, programiści wykorzystali oficjalne pliki nagłówkowe i otwarte moduły jądra opublikowane przez firmę NVIDIA. Kod NVK wykorzystywał w niektórych miejscach podstawowe komponenty sterownika Nouveau OpenGL, ale ze względu na różnice w nazwach w plikach nagłówkowych NVIDIA i nazwach poddanych inżynierii wstecznej w Nouveau, bezpośrednie zapożyczanie kodu jest trudne i w większości przypadków wiele rzeczy trzeba było przemyśleć i wdrożyć od zera.

Prace rozwojowe przeprowadzono z myślą o stworzeniu nowego referencyjnego sterownika Vulkan dla Mesy, którego kod można będzie pożyczyć przy tworzeniu innych sterowników. Aby to zrobić, pracując nad sterownikiem NVK, starali się wziąć pod uwagę całe dotychczasowe doświadczenie w opracowywaniu sterowników Vulkan, utrzymać bazę kodu w optymalnej formie i zminimalizować transfer kodu z innych sterowników Vulkan, robiąc tak, jak powinno być optymalną i wysokiej jakości pracę, a nie ślepe kopiowanie tego, co dzieje się w innych sterownikach. Sterownik jest już zawarty w Mesie, a niezbędne zmiany w API sterownika Nouveau DRM są zawarte w jądrze Linuksa 6.6.

Wśród zmian w ogłoszeniu Mesa zauważa także przyjęcie nowego kompilatora backendowego dla NVK, napisanego w języku Rust i rozwiązującego problemy w starym kompilatorze, które zakłócały przesyłanie tekstów Kronosa, a także eliminującego niektóre podstawowe ograniczenia architektury, której nie można było poprawić bez całkowitej przeróbki starego kompilatora. Wśród planów na przyszłość w nowym backendzie wymienia się dodanie obsługi GPU w oparciu o mikroarchitekturę Maxwell oraz wdrożenie pełnej obsługi API Vulkan 1.3.

Źródło: opennet.ru

Dodaj komentarz