Konsorcjum Khronos, zajmujące się opracowywaniem standardów graficznych, uznało pełną zgodność otwartego sterownika NVK ze specyfikacją Vulkan 1.4 na systemach z GPU NVIDIA opartych na mikroarchitekturach Maxwell (GTX 700/800/900), Pascal (GTX 1000) i Volta (TITAN V). Sterownik pomyślnie przeszedł wszystkie testy z zestawu CTS (Khronos Conformance Test Suite) i został włączony do listy certyfikowanych sterowników. Uzyskanie certyfikatu umożliwia oficjalne ogłoszenie zgodności z standardami graficznymi oraz korzystanie z powiązanych znaków towarowych Khronos.
Od wersji Mesa 25.1 sterownik Vulkan NVK będzie domyślnie wykorzystywany dla GPU NVIDIA Maxwell, Pascal i Volta. W Mesa 25.2 wsparcie dla OpenGL dla wymienionych GPU będzie domyślnie przełączone z sterownika Nouveau na Zink w połączeniu ze sterownikiem Vulkan NVK. Zink dostarcza implementację OpenGL 4.6 na Vulkanie, co pozwala na uzyskanie sprzętowo przyspieszonego OpenGL na urządzeniach obsługujących API Vulkan. Wydajność Zink jest zbliżona do wydajności natywnych implementacji OpenGL.
Wcześniej zgodność z Vulkan 1.4 w NVK była zapewniana tylko dla nowych GPU NVIDIA opartych na mikroarchitekturach Turing (seria GeForce GTX 16xx, RTX 20xx i Quadro RTX), Ampere (seria GeForce RTX 30xx i RTX A2000/4000/5000/6000) oraz Ada (seria GeForce RTX 4xxx, RTX 4000 SFF, RTX 4xxx/5000/6000 Ada). Prace nad dodaniem wsparcia dla GPU opartych na mikroarchitekturach Kepler i Fermi są w toku, ale ich wsparcie będzie ograniczone maksymalnie do Vulkan 1.2 z powodu ograniczeń sprzętowych.
Sterownik NVK został stworzony od podstaw przez zespół, w skład którego wchodzą Karol Herbst (Karol Herbst, programista Nouveau z Red Hat), David Airlie (David Airlie, konserwator podsystemu DRM z Red Hat) oraz Jason/Faith Ekstrand (Jason/Faith Ekstrand, aktywny programista 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 używano podstawowych komponentów sterownika OpenGL Nouveau, jednak z powodu różnic w nazwach w plikach nagłówkowych NVIDIA i nazwach w Nouveau, uzyskanych na podstawie inżynierii odwrotnej, bezpośrednie pożyczanie kodu było utrudnione i w większości przypadków konieczne było przemyślenie wielu rzeczy i realizacja ich od zera.
Prace były prowadzone z myślą o stworzeniu nowego wzorcowego sterownika Vulkan dla Mesa, którego kod będzie można wykorzystać przy tworzeniu innych sterowników. W tym celu podczas pracy nad sterownikiem NVK starano się uwzględnić całe dotychczasowe doświadczenie w projektowaniu sterowników Vulkan, utrzymywać bazę kodu w optymalnym stanie i minimalizować przenoszenie kodu z innych sterowników Vulkan, koncentrując się na tym, jak powinno być zorganizowane, aby zapewnić optymalną i wysoką jakość działania, a nie na ślepym kopiowaniu rozwiązań z innych sterowników.
Źródło: opennet.ru
