DXVK 3.0: Основні оновлення для геймерів на Linux

DXVK 3.0: Основні оновлення для геймерів на Linux

DXVK щойно випустив версію 3.0. Це велике оновлення транслятору Direct3D у Vulkan, який широко використовується геймерами на Linux через Wine і Proton для запуску ігор Windows на Linux.

Зміни в компіляції шейдерів у DXVK 3.0

Основна зміна полягає в переході на dxbc-spirv для компіляції шейдерів. Це замінює попередній код трансляції шейдерів для всіх підтримуваних моделей і усуває проблеми з рендерингом, які раніше було неможливо виправити. Це стосується навіть ситуацій, викликаних невизначеною поведінкою ігор або некоректним кодом від компілятора FXC від Microsoft.

Новий компілятор генерує більш компактний SPIR-V код, зменшуючи використання пам’яті DXVK в деяких іграх. Наприклад, Overwatch і God of War можуть зменшити витрати пам’яті приблизно на 1 ГБ.

Запуск компіляції шейдерів на робочих потоках

Крім того, компіляція шейдерів тепер повністю виконується на робочих потоках. Раніше лише компіляція Vulkan pipeline використовувала робочі потоки, а трансляція шейдерів відбувалася в основному потоці застосунку. Це зменшення часу запуску в деяких іграх.

Використання VK_EXT_descriptor_heap у DXVK 3.0

Додатковою важливою зміною є за замовчуванням використання розширення Vulkan VK_EXT_descriptor_heap на підтримуваних драйверах. Це замінює модель прив’язки на основі буферів дескрипторів, введену у DXVK 2.7.

Модель дескрипторних куп пропонує подібну продуктивність, обмежену центральним процессором, і зменшує штрафи з продуктивністю на графічних процесорах NVIDIA. Необхідна версія драйвера NVIDIA 595.84 або новіша; старіші драйвери не підтримуватимуть цю функцію через регресії в продуктивності.

Поліпшення для старіших ігор на Direct3D 8 і 9

DXVK 3.0 також представляє поліпшення для старіших ігор Direct3D 8 і 9. Спадкова фіксована функціональна пайплайн тепер керується за допомогою пари убер-шейдерів, з оптимізованими варіантами, скомпільованими у фоновому режимі, коли ігри налаштовують різні стани фіксованої функціональності.

Додатково, бекенд D3D9 тепер має оптимізації завантаження буферів. Кілька типів буферів завантажуються за запитом, а не безпосередньо в VRAM, з доданою логікою для обмеження використання пам’яті.

Покращення спільних ресурсів та виправлення помилок

Спільні ресурси тепер працюють з реалізацією Wine і більше не потребують патчів специфічних для Proton. Попередній метод залишається тимчасово для підтримки сумісності зі старішими версіями Proton, але буде видалений у майбутньому.

Додаткові покращення включають виправлення помилок валідації Vulkan, програмну обробку вершин у іграх D3D8/9, виправлення розрахунків туману фіксованої функції та зменшення навантаження на процесор у загальних шляхах D3D9.

Гра для геймерів: Виправлення та нові можливості

У DXVK 3.0 також є кілька виправлень для ігор. BioShock Infinite отримав виправлення для постійної проблеми з пулом семплерів, яка викликала мерехтіння. Borderlands 2 отримав виправлення для мерехтливого трави з увімкненим анізотропним фільтром.

Fallout New Vegas виправлено для вирішення глибини для певних модифікацій. Max Payne виправлено для аварії при запуску з підключеними кількома моніторами. Інші уражені назви включають Colin McRae Rally 3 і Counter-Strike: Global Offensive.

Сумісність та вимоги DXVK 3.0

Важливо, що DXVK 3.0 тепер вимагає функцій і розширень, введених з Vulkan 1.4. Отже, користувачам потрібен драйвер, що підтримує Vulkan 1.4, що не має бути проблемою, якщо драйвер не дуже старий.

Користувачі Windows з графічними процесорами AMD RDNA1 і RDNA2 повинні відзначити, що драйвери AMD для цих GPU більше не отримують оновлень функцій і підтримують лише повільнішу модель прив’язки. Проект рекомендує цим користувачам залишитися на DXVK 2.x або перейти на Linux.

Додаткові відомості та посилання

З детальною інформацією можна ознайомитися на офіційному сайті DXVK 3.0.