RADV для Windows: експериментальний порт від Collabora

Collabora працює над експериментальним портом RADV для Windows

Collabora працює над експериментальним портом RADV, відкритого драйвера Vulkan для графічного обладнання AMD від Mesa. Останню фазу проекту підтримує Valve, оскільки зусилля досягли значного етапу: тепер Counter-Strike 2 можна запустити на Windows за допомогою RADV.

RADV як стандартний драйвер Vulkan для AMD на Linux

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

Розробка RADV на основі попередніх зусиль

Проект базується на ранній роботі розробника графіки Фейта Екстранда. Він продемонстрував на XDC 2024, що RADV може взаємодіяти з власним драйвером AMD через інтерфейс Windows Display Driver Model 2. Його початкова реалізація зворотного інженерного аналізу дозволила виділяти пам’ять, створювати черги, подавати команди і рендерити базову 3D-сцену.

Нове вдосконалення та усунення обмежень

Collabora перетворила цю доказову концепцію на більш здатну нативну реалізацію для Windows. Нова робота усуває залежність від WSL, зменшує жорстко закодовані припущення про апаратне забезпечення, покращує обробку команд та синхронізацію. Додано підтримку рідкісних зв’язків, тесселяції, шейдерів задач і динамічного виявлення можливостей GPU.

Перспективи для Counter-Strike 2

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

Експериментальна реалізація RADV

Проте це досягнення не означає, що RADV готовий замінити офіційний драйвер Vulkan від AMD для Windows. Теперішня реалізація залишається експериментальною, і є кілька великих технічних перешкод, які потрібно подолати, перш ніж вона стане стабільною для загального використання.

Вимоги для виробничої версії

Collabora зазначає, що виробнича реалізація вимагатиме стабільного та задокументованого інтерфейсу до драйвера ядра AMD або бібліотеки сумісності, яку надасть AMD і яка приховує зміни в приватному форматі комунікації.

Проблеми з видачею та продуктивністю

Продуктивність презентації залишилася ще однією незавершеною ділянкою. Наразі RADV використовує повільніший процес презентації, оснований на ЦП на Windows, замість нативних DXGI swapchains. Правильна підтримка DXGI вимагатиме імпорту зображень з D3D12. Для досягнення безкопійної презентації знадобиться додаткова співпраця з AMD і, ймовірно, Microsoft.

Перспективи покращення продуктивності

За інформацією Collabora, безкопійні обміну можуть забезпечити покращення продуктивності до трьох разів у програмах, які не обмежені обробною потужністю GPU. Проте це все ще є оптимізацією майбутнього, а не можливістю нинішнього драйвера.

Висновки про проект RADV для Windows

Незважаючи на ці обмеження, проект демонструє, що відкритий драйвер AMD Vulkan від Mesa може функціонувати не тільки на Linux, а й підтримувати справжні ігрові навантаження на Windows.

Робота над RADV для Windows наразі доступна в розробницькій гілці, а Collabora не оголосила графік випуску драйвера для кінцевих користувачів. Наразі його вважають технічним експериментом.

Додаткові деталі можна знайти в оголошенні Collabora.