Консорциум Khronos, занимаващ се с разработването на графични стандарти, призна пълната съвместимост на открытого драйвера NVK със спецификацията Vulkan 1.4 на системи с GPU NVIDIA, базирани на микроархитектури Maxwell (GTX 700/800/900), Pascal (GTX 1000) и Volta (TITAN V). Драйверът успешно премина всички тестове от набора CTS (Khronos Conformance Test Suite) и е включен в списъка на сертифицираните драйвери. Получаването на сертификат позволява официално обявяване на съвместимостта с графичните стандарти и използването на свързаните с тях търговски марки на Khronos.
Започвайки от Mesa 25.1, Vulkan-драйверът NVK ще бъде активиран по подразбиране за GPU NVIDIA Maxwell, Pascal и Volta. В Mesa 25.2 поддръжката на OpenGL за посочените GPU ще бъде променена по подразбиране от драйвера Nouveau на Zink заедно с Vulkan-драйвера NVK. Zink предлага реализация на OpenGL 4.6 над Vulkan, което позволява получаването на хардуерно ускорен OpenGL на устройства, поддържащи Vulkan API. Производителността на Zink е близка до производителността на родните реализации на OpenGL.
Преди това съвместимостта с Vulkan 1.4 в NVK беше осигурена само за новите GPU NVIDIA, базирани на микроархитектури Turing (серии GeForce GTX 16xx, RTX 20xx и Quadro RTX), Ampere (серии GeForce RTX 30xx и RTX A2000/4000/5000/6000) и Ada (серии GeForce RTX 4xxx, RTX 4000 SFF, RTX 4xxx/5000/6000 Ada). Работи се по добавянето на поддръжка на GPU, базирани на микроархитектурите Kepler и Fermi в NVK, но тяхната поддръжка ще бъде ограничена до максимум Vulkan 1.2 поради хардуерни ограничения.
Драйверът NVK е създаден от нулата от екип, включващ Карол Хербст (Karol Herbst, разработчик на Nouveau от Red Hat), Дейвид Ейрли (David Airlie, поддържащ системата DRM от Red Hat) и Джейсън/Фейт Екстранд (Jason/Faith Ekstrand, активен разработчик на Mesa от Collabora). При създаването на драйвера разработчиците използваха официални заглавия и отворени модули на ядрото, публикувани от NVIDIA. В кода на NVK понякога се използваха основни компоненти от OpenGL-драйвера Nouveau, но поради разликите в имената в заглавията на NVIDIA и имената в Nouveau, извлечени на базата на обратно инжиниринг, прякото заимстване на код беше затруднено и по-голямата част от времето трябваше да се преосмислят много неща и да се реализират от нулата.
Разработката беше извършена с цел създаване на нов референтен Vulkan драйвер за Mesa, чийто код може да бъде използван за разработка на други драйвери. За целта, при работата над драйвера NVK, се опитахме да вземем предвид целия наличен опит от разработката на Vulkan драйвъри, да поддържаме кодовата база в оптимално състояние и да минимизираме прехвърлянето на код от други Vulkan драйвъри, като се фокусираме върху оптималната и качествени работа, а не да копираме слепешком как е направено в другите драйвъри.
Източник: opennet.ru
