NVK — это новый драйвер Vulkan с открытым исходным кодом для графического оборудования NVIDIA.
Октябрь прошлого года мы говорим здесь в блоге о драйвере NVK, драйвер с открытым исходным кодом для Mesa, который реализует графический API Vulkan для видеокарт NVIDIA, над которым Collabora работала с нуля, используя официальные файлы заголовков и открытые модули ядра, опубликованные NVIDIA.
В ходе своего развития НВК имел маркировку «экспериментальный». и теперь, в более свежих новостях Collabora объявила, что NVK стал стабильным и рекомендован для общего использования. поскольку была протестирована его полная совместимость со спецификацией Vulkan 1.3. Этот контроллер успешно прошел все тесты CTS (Khronos Conformance Test Suite) и включен в список сертифицированных контроллеров.
Сертификация распространяется на графические процессоры NVIDIA на базе микроархитектур Turing, Ampere и Ada. в том числе от GeForce GTX 16xx до RTX 4xxx и серии RTX 4000, от RTX A2000 до 6000. Эти тесты проводились в средах с ядром Linux 6.5 и 6.8rc1.
Упоминается, что Получение сертификата официально подтверждает совместимость с графическими стандартами. и разрешает использование связанных товарных знаков Khronos. Изменения уже включены в кодовую базу Mesa и будут доступны в Mesa 24.1.
Помимо достижений в НВК, Значительные улучшения также были внесены в поддержку OpenGL для видеокарт NVIDIA. Mesa приняла изменение, которое позволяет использовать драйвер Zink для обеспечения поддержки OpenGL 4.6 в системах с новыми сериями видеокарт NVIDIA, в которых могут возникнуть проблемы со стандартным драйвером Nouveau OpenGL (NVC0).
В течение последних нескольких месяцев мы усердно работали над завершением последних работ, необходимых для того, чтобы DXVK теперь мог работать из коробки на Upstream Mesa. Не все игры D3D11 гарантированно работают (будут баги), но все основные требования есть. Мы активно работаем над остальными частями для поддержки эмуляции D3D12 через ВКД3Д-Протон. Многое уже сделано или находится в стадии разработки, но некоторых деталей еще не хватает, так что не ждите, что игры D3D12 пока будут работать.
Эти изменения в Месе Они также открывают возможность использования Zink для поддержки OpenGL в других драйверах в качестве альтернативы графическим процессорам. которые не поддерживаются собственными драйверами OpenGL Mesa. Например, аналогичный подход используется для обеспечения поддержки OpenGL в драйвере freedreno для графического процессора Qualcomm Adreno 700 и драйвере powervr для графического процессора Imagination PowerVR на основе микроархитектуры Rogue.
В следующей версии Mesa драйвер Zink будет включен по умолчанию. во время компиляции. Производительность Zink сравнима с собственными реализациями OpenGL, что позволяет сосредоточиться на высококачественной поддержке API Vulkan, а не на поддержке отдельных драйверов OpenGL.
Пока планов по удалению старого драйвера Nouveau нет. OpenGL, Комбинация Цинк + НВК демонстрирует более высокие показатели во многих тестах. На текущем этапе разработки эта комбинация позволяет добиться производительности 60 FPS и выше на новых моделях графических процессоров, хотя все еще остаются неоптимизированные области, которые со временем будут устранены.
С другой стороны, упоминается, что ведутся работы по стабилизации работы слоя DXVK на драйвере NVK, который обеспечивает реализацию Direct3D 9, 10 и 11 путем перевода вызовов API Vulkan. Хотя не все игры D3D11 пока гарантированно работают с немодифицированной комбинацией NVK+DXVK от Mesa, выявленные дефекты постепенно устраняются. Аналогичным образом разрабатывается соединение НВК с ВКД3Д-Протон для обеспечения поддержки D3D12, хотя его статус все еще находится в разработке и требует реализации некоторых недостающих возможностей.
Наконец, стоит отметить, что драйвер уже включен в Mesa, а необходимые изменения в API-интерфейсе драйвера Nouveau DRM включены начиная с версии ядра Linux 6.6. дремлет интересно узнать о нем больше, вы можете проверить детали По следующей ссылке.