В Mesa принят код NVK, открытого Vulkan-драйвера для видеокарт NVIDIA

Автор Сообщение
news_bot ®

Стаж: 6 лет 3 месяца
Сообщений: 27286

Создавать темы news_bot ® написал(а)
05-Авг-2023 11:04

В основную ветку проекта Mesa принят код NVK, открытого драйвера с реализацией графического API Vulkan для видеокарт NVIDIA. Драйвер создан командой, в которую входят Карол Хербст (Karol Herbst, разработчик Nouveau из Red Hat), Дэвид Эйрли (David Airlie, мэйнтейнер подсистемы DRM из Red Hat) и Джейсон Экстранд (Jason Ekstrand, активный разработчик Mesa из Collabora).
Драйвером пока поддерживаются только GPU на базе Turing (RTX 20XX and GTX 16XX) и более новых микроархитектур (карты, выпускаемые с сентября 2018 года). В будущем планируют добавить поддержку семейства GPU Kepler (GeForce 600 и 700).
Для эффективной работы драйвера требуется внесение изменений в ядро Linux, связанных с расширением API DRM-драйвера Nouveau. Необходимость изменения API на уровне ядра вызвана тем, что изначально API DRM-драйвера Nouveau рассчитан на реализацию OpenGL и в нём не хватает примитивов, необходимых для эффективной работы Vulkan-драйверов в Mesa. В частности, требуется добавить возможность управления виртуальным адресным пространством, так как операции с буферам объектов и выделение виртуальной памяти в Vulkan разделены. Кроме того, для передачи команд в Vulkan требуется использовать синхронизированные объекты. В настоящее время патчи с необходимыми изменениями переданы сопровождающим DRM-подсистему ядра Linux (Direct Rendering Manager) и, предположительно, войдут в состав ядра 6.6.
Драйвер NVK написан с нуля. При создании драйвера разработчики использовали официальные заголовочные файлы и открытые модули ядра, опубликованные компанией NVIDIA. В коде NVK местами использовались базовые компоненты OpenGL-драйвера Nouveau, но из-за отличий наименований в заголовочных файлах NVIDIA и наименований в Nouveau, полученных на основе обратного инжиниринга, прямое заимствование кода затруднено и по большей части пришлось переосмысливать многие вещи и реализовывать их с нуля.
Разработка велась с оглядкой на создание нового эталонного Vulkan-драйвера для Mesa, код которого можно будет заимствовать при создании других драйверов. Для этого при работе над драйвером NVK попытались учесть весь имеющийся опыт разработки Vulkan-драйверов, поддерживать кодовую базу в оптимальной форме и минимизировать перенос кода из других Vulkan-драйверов, делая как должно быть для оптимальной и качественной работы, а не слепо копируя то как сделано в других драйверах.
Несмотря на включение в состав Mesa, разработка драйвера продолжается и не вся желаемая функциональность реализована. Драйвер поддерживает API Vulkan 1.0, но пока не проходит все тесты на совместимость и имеет проблемы с производительностью. Тем не менее, некоторые игры уже работают с новым драйвером, в том числе при использовании прослойки DXVK. В дальнейшем планируется довести производительность драйвера до должного уровня и реализовать поддержку API Vulkan 1.3. В долгосрочной перспективе ожидается, что для видеокарт NVIDIA драйвер NVK достигнет уровня качества и функциональности, подобного драйверу RADV для карт AMD. Также рассматривается возможность задействования проекта Zink для реализации полноценного OpenGL-драйвера для видеокарт NVIDIA, работающего через трансляцию вызовов в API Vulkan.
===========
Источник:
OpenNet.RU
===========

Похожие новости: Теги для поиска: #_nvk, #_nvidia, #_mesa
Профиль  ЛС 
Показать сообщения:     

Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете голосовать в опросах
Вы не можете прикреплять файлы к сообщениям
Вы не можете скачивать файлы

Текущее время: 16-Май 02:14
Часовой пояс: UTC + 5