Компания Valve профинансировала работы по переносу открытого графического драйвера RADV с операционной системы Linux на Microsoft Windows. Разработкой занимаются инженеры компании Collabora, которые пытаются перенести на платформу Microsoft открытые технологии, ставшие основой успеха портативной консоли Steam Deck и устройств Steam Machine. На Linux драйвер RADV давно превратился в стандарт де-факто для видеокарт AMD, вынудив самого производителя отказаться от собственных альтернативных разработок в пользу экосистемы Mesa.
На операционной системе Windows владельцы графических процессоров Radeon все еще вынуждены использовать исключительно официальный проприетарный драйвер AMD. Пользователи регулярно сталкиваются с проблемами стабильности и задержками в исправлении ошибок закрытого софта. Появление открытого RADV на платформе от Microsoft должно дать энтузиастам и разработчикам игр возможность самостоятельно отлаживать графические баги, оперативно вносить исправления и использовать единую кодовую базу независимо от операционной системы.
Технический фундамент инициативы заложила разработчик Faith Ekstrand еще в 2024 году. Она доказала, что начиная с Windows 10 подсистема WDDM2 позволяет драйверам пользовательского режима взаимодействовать с ядром системы. Из-за отсутствия документации и закрытого характера структур данных AMD разработчикам пришлось прибегнуть к реверс-инжинирингу. На раннем этапе авторам исследования удалось перехватить вызовы системных функций и добиться вывода простой вращающейся трехмерной модели.
Инженеры Collabora подхватили наработки и перевели проект на новый уровень. Они избавились от необходимости использовать слой виртуализации WSL, обеспечив нативную работу в Windows, а также расширили поддержку тесселяции, шейдеров и управления памятью. Кроме того, команду авторов ждало серьезное испытание при переходе на архитектуру RDNA 3 и видеокарту Radeon RX 7900 XT, так как изменения в железе вызывали мертвые зависания системы при любых сложных вычислениях.
Главным практическим достижением текущей фазы разработки стал успешный запуск игры Counter-Strike 2 на Windows с использованием открытого драйвера RADV. Любой желающий может протестировать эту сборку, добавив параметр запуска -vulkan. Хотя драйвер еще не прошёл официальное тестирование на соответствие спецификациям Vulkan и далек от идеала, полноценная работа киберспортивного шутера внутри Windows на стороннем драйвере стала важной вехой для всего сообщества.
Основной преградой на пути к релизной версии RADV остается взаимодействие с закрытым драйвером ядра от AMD. Написание собственного драйвера режима ядра под Windows не входит в планы разработчиков, поэтому RADV приходится общаться с официальным модулем AMD. Проблема заключается в том, что закрытые структуры данных меняются с каждым обновлением графического пакета Radeon Software, из-за чего сторонний драйвер теряет работоспособность. Для решения этой проблемы авторам потребуется либо официальный документированный интерфейс от AMD, либо специальная прослойка совместимости.
Серьезные ограничения сохраняются и в подсистеме вывода изображения на экран, где RADV пока использует медленный программный метод обработки через центральный процессор. Полноценная интеграция с DXGI и реализация вывода без лишнего копирования кадра в памяти способна увеличить производительность в не упирающихся в видеокарту сценариях почти в 3 раза, но это потребует прямой помощи со стороны AMD и Microsoft. Вся экспериментальная кодовая база проекта уже выложена в открытый доступ в специальной ветке разработки.

