NVK na Zink emeela ka ọnọdụ ahụ dịkwuo mma site na ndị ọkwọ ụgbọala mepere emepe maka NVIDIA GPU

Компания Сollabora объявила о доведении открытого драйвера NVK для видеокарт NVIDIA до готовности к повседневному использованию широким кругом пользователей и сертификации данного драйвера в консорциуме Khronos, занимающемся разработкой графических стандартов. Драйвер признан полностью совместимым со спецификацией Vulkan 1.3, успешно прошёл все тесты из набора CTS (Khronos Conformance Test Suite) и включён в список сертифицированных драйверов.

Сертификация пройдена для 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). Проверка была выполнена в окружении с ядром Linux 6.5 и 6.8rc1. Получение сертификата даёт возможность официально заявлять о совместимости с графическими стандартами и использовать связанные с ними торговые марки Khronos. Изменения уже приняты в кодовую базу Mesa и войдут в состав выпуска Mesa 24.1.

Кроме улучшений в NVK отмечается значительный прогресс в обеспечении поддержки OpenGL для видеокарт NVIDIA. В Mesa принято изменение, позволяющее задействовать драйвер Zink для обеспечения поддержки OpenGL 4.6 на системах с новыми сериями видеокарт NVIDIA (начиная с GeForce RTX 20xx), с которыми могут наблюдаться проблемы в штатном OpenGL-драйвере Nouveau (NVC0). Для включения Zink вместо NVC0 в Mesa 24.1 достаточно выставить переменную окружения «NOUVEAU_USE_ZINK=1».

Внесённые в Mesa изменения также предусматривают возможность использования Zink для поддержки OpenGL и в других драйверах в качестве запасного варианта, применяемого для GPU, не поддерживаемых штатными OpenGL-драйверами Mesa. Например, подобный подход уже применяется для предоставления поддержки OpenGL в драйвере freedreno для GPU Qualcomm Adreno 700 и в драйвере powervr для GPU Imagination PowerVR на базе микроархитектуры Rogue.

Zink предоставляет реализацию OpenGL поверх Vulkan, позволяющую получить аппаратно ускоренный OpenGL на устройствах, поддерживающих только API Vulkan. В следующем выпуске Mesa драйвер Zink будет активирован при сборке по умолчанию. Производительность Zink близка к производительности родных реализаций OpenGL, что даёт возможность вместо траты ресурсов на сопровождение отдельных OpenGL-драйверов, сосредоточиться на качественной поддержке API Vulkan, а поддержку OpenGL реализовать поверх Vulkan.

Старый OpenGL-драйвер Nouveau пока не планируют убирать, но в текущем виде связка Zink + NVK демонстрирует более высокую производительность во многих тестах. На текущем этапе разработки при запуске многих игр связка Zink + NVK позволяет добиться производительности 60 FPS и выше на новых моделях GPU, но ещё остаются некоторые нерешённые проблемы и неоптимизированные области, которые со временем будут решены.

Также отмечается работа по стабилизации работы поверх драйвера NVK прослойки DXVK, предоставляющей реализацию Direct3D 9, 10 и 11, работающую через трансляцию вызовов в API Vulkan. Не все игры D3D11 пока гарантированно работают с немодифицирвонной связкой NVK+DXVK из Mesa, но базовые возможности доступны и постепенно ведётся устранение выявляемых недоработок. Аналогично развивается связка NVK с VKD3D-Proton для обеспечения поддержки D3D12, но её состояние пока отстаёт от NVK+DXVK и необходима реализация некоторых отсутствующих возможностей.

Драйвер NVK создан c нуля командой, в которую входят Карол Хербст (Karol Herbst, разработчик Nouveau из Red Hat), Дэвид Эйрли (David Airlie, мэйнтейнер подсистемы DRM из Red Hat) и Джейсон/Фэй Экстранд (Jason/Faith Ekstrand, активный разработчик Mesa из Collabora). При создании драйвера разработчики использовали официальные заголовочные файлы и открытые модули ядра, опубликованные компанией NVIDIA. В коде NVK местами использовались базовые компоненты OpenGL-драйвера Nouveau, но из-за отличий наименований в заголовочных файлах NVIDIA и наименований в Nouveau, полученных на основе обратного инжиниринга, прямое заимствование кода затруднено и по большей части пришлось переосмысливать многие вещи и реализовывать их с нуля.

Ejiri anya mee mmepe iji mepụta onye ọkwọ ụgbọ ala Vulkan ọhụrụ maka Mesa, koodu nke enwere ike ịgbaziri mgbe ị na-eke ndị ọkwọ ụgbọ ala ndị ọzọ. Iji mee nke a, mgbe ha na-arụ ọrụ na onye ọkwọ ụgbọ ala NVK, ha gbalịrị iburu n'uche ahụmahụ niile dị na ịmepụta ndị ọkwọ ụgbọala Vulkan, na-echekwa koodu ahụ n'ụdị kachasị mma ma belata ịnyefe koodu site na ndị ọkwọ ụgbọala Vulkan ndị ọzọ, na-eme dị ka ọ kwesịrị ịbụ maka. ọrụ kachasị mma na nke dị elu, na ọ bụghị na-edegharị kpuru ìsì ka esi eme na ndị ọkwọ ụgbọala ndị ọzọ. Agụnyelarị onye ọkwọ ụgbọ ala na Mesa, yana mgbanwe ndị dị mkpa na API ọkwọ ụgbọ ala Nouveau DRM gụnyere na Linux 6.6 kernel.

isi: opennet.ru

Tinye a comment