Консорциум Khronos, занимаващ се с разработването на графични стандарти, призна пълната съвместимост на отворения драйвер NVK за видеокарти NVIDIA с спецификацията Vulkan 1.0. Драйверът успешно премина всички тестове от набора CTS (Kronos Conformance Test Suite) и е включен в списъка на сертифицираните драйвери. Сертифицирането е проведено за GPU NVIDIA на базата на микроархитектурата Turing (TITAN RTX, GeForce RTX 2060/2070/2080, GeForce GTX 1660, Quadro RTX 3000-8000, Quadro T1000/T2000). Проверката беше извършена в среда с ядро Linux 6.5, X.Org X Server 1.20.14, XWayland 22.1.9 и GNOME Shell 44.4. Получаването на сертификат дава възможност да се обяви официално за съвместимост с графичните стандарти и да се използват свързаните с тях търговски марки на Khronos.
Драйверът NVK е създаден от нулата от екип, в който влизат Карол Хербст (Karol Herbst, разработчик на Nouveau от Red Hat), Дейвид Ейрли (David Airlie, мейнтейнер на подсистемата DRM от Red Hat) и Джейсън Екстранд (Jason Ekstrand, активен разработчик на Mesa от Collabora). При създаването на драйвера разработчиците използваха официални заглавни файлове и отворени модули на ядрото, публикувани от компанията NVIDIA. В кода на NVK на места се използват основни компоненти от OpenGL-драйвера Nouveau, но заради разликите в имената в заглавните файлове на NVIDIA и имената в Nouveau, получени на база на обратното инжиниринг, пряко заемане на код е затруднено и в повечето случаи се наложи да се преосмислят много неща и да се реализират от нулата.
Разработката беше извършена с оглед на създаването на нов еталонен Vulkan-драйвер за Mesa, кодът на който може да бъде заеман при създаването на други драйвери. За целта, при работата по драйвера NVK, се опитахме да вземем предвид целия наличен опит в разработката на Vulkan-драйвери, да поддържаме кодовата база в оптимално състояние и минимално да пренасяме код от други Vulkan-драйвери, правейки каквото трябва за оптимална и качествена работа, а не сляпо копирайки това, което е направено в другите драйвери. Драйверът вече е част от Mesa, а необходимите за работата промени в API на DRM-драйвера Nouveau са включени в ядрото на Linux 6.6.
В изменения в анонсе съобщава, че Mesa е приел нов бекенд компилатор за NVK, написан на Rust, който решава проблемите в стария компилатор, пречещи на текстовете на Kronos, както и премахва някои основни ограничения на архитектурата, които не можеха да бъдат оправени без пълна преправка на стария компилатор. В плановете за бъдещето е споменава добавянето на нов бекенд с поддръжка на GPU на базата на микроархитектура Maxwell и реализирането на пълна поддръжка на API Vulkan 1.3.
Източник: opennet.ru
