В NVK, открытом драйвере для видеокарт NVIDIA, обеспечена поддержка Vulkan 1.0

Консорциум 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 создан c нуля командой, в которую входят Карол Хербст (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

Добавить комментарий