Компания Collabora работает над экспериментальным портом RADV, открытого Vulkan-драйвера Mesa для графики AMD, на платформу Windows. Спонсором текущего этапа выступила Valve, и проект достиг важной вехи: теперь с помощью RADV на Windows можно запустить Counter-Strike 2.

RADV стал стандартным Vulkan-драйвером для GPU AMD в среде Linux, где он является ключевой частью графического стека Mesa. Пользователи Windows до сих пор вынуждены полагаться на проприетарный драйвер от AMD, поэтому возможность запуска RADV в нативной среде платформы выглядит особенно многообещающе.

Проект опирается на более ранние наработки графического разработчика Фейт Экстранд, которая на конференции XDC 2024 продемонстрировала, что RADV может взаимодействовать с проприетарным драйвером уровня ядра Windows через интерфейс Windows Display Driver Model 2.

Созданный ею прототип реконструировал достаточно деталей внутреннего протокола обмена между пользовательским пространством и ядром AMD, чтобы выполнять распределение памяти, создавать очереди, отправлять команды и выводить базовую 3D-сцену.

Инженеры Collabora расширили этот proof-of-concept до более функциональной нативной реализации. Новая версия избавилась от зависимости от WSL, устранила жёсткие допуски о модели оборудования, улучшила обработку потока команд и синхронизацию, а также добавила поддержку sparse bindings, тесселяции, task-шейдеров и динамического определения возможностей GPU.

Хотя драйвер пока не проходит полный цикл тестов на совместимость с Vulkan, процент успешно выполняемых тестов заметно вырос. Гораздо важнее, что порт способен запустить Counter-Strike 2 с аргументом командной строки -vulkan.

Впрочем, это не означает, что RADV готов заменить официальный драйвер AMD. Реализация всё ещё носит экспериментальный характер, и на пути к стабильной версии, пригодной для широкого круга задач, сохраняется несколько серьёзных технических препятствий.

В Collabora подчёркивают, что для создания готового к продакшену продукта потребуется либо стабильный и документированный интерфейс для драйвера ядра AMD, либо библиотека совместимости, выпущенная самой AMD. Она должна скрыть изменения во внутреннем формате взаимодействия.

Незакрытым остаётся и вопрос производительности вывода картинки. Сейчас RADV использует на Windows медленный путь, работающий силами центрального процессора, вместо нативных цепочек буферов DXGI. Полноценная поддержка DXGI требует импорта изображений из D3D12, а реализация прямого zero-copy вывода нуждается в дополнительном содействии как со стороны AMD, так и, вероятно, Microsoft.

По оценкам Collabora, zero-copy может ускорить работу приложений, не упирающихся в мощность GPU, до трёх раз. Однако это пока остаётся оптимизацией для будущих версий, а не возможностью текущей реализации.

Несмотря на все ограничения, проект наглядно доказывает, что открытый Vulkan-драйвер Mesa для AMD способен выйти за пределы Linux и справляться с реальной игровой нагрузкой в среде Windows.

На данный момент код Windows-версии RADV размещён в отдельной ветке репозитория Mesa, а не в основной кодовой базе. Collabora не объявляла сроков выхода драйвера для конечных пользователей, и пока проект рассматривается как технический эксперимент.

Дополнительные подробности доступны в официальном анонсе Collabora.