Слой трансляции DXVK, реализующий Direct3D 8, 9, 10 и 11 поверх Vulkan для Wine и Proton, обновился до версии 3.0.2 с исправлениями для Dying Light: The Beast, Halo CE, Overwatch и других игр. Одновременно вышла версия 2.0 проекта D7VK – ответвления DXVK с поддержкой Direct3D 7, 6, 5 и 3, которое в отдельных сценариях ускоряет старые игры более чем вдвое.
DXVK 3.0.2: исправления для современных игр
Выпуск продолжает серию исправлений после крупного релиза DXVK 3.0 с новым компилятором шейдеров и переходом на Vulkan 1.4.
- Отладка зависаний GPU. При зависании видеокарты или падении драйвера с ошибкой
VK_ERROR_DEVICE_LOSTпеременная окруженияDXVK_DEBUG=hangпомогает определить место сбоя. Полученные журналы пригодятся в отчётах об ошибках; лучше всего механизм работает на видеокартах AMD и NVIDIA. - Dying Light: The Beast – устранена просадка производительности в играх, которые создают новую фабрику DXGI каждый кадр. Проблема проявлялась при включённом FSR и может затрагивать другие D3D12-игры.
- Granblue Fantasy Relink – исправлены случайные зависания GPU на видеокартах NVIDIA; правка может помочь и в других играх.
- Halo CE – нейтрализована ошибка самой игры, из-за которой возникали дефекты отрисовки.
- Overwatch – исправлена возможная проблема с цепочкой буферов при запуске в неродном разрешении.
- Splinter Cell: Chaos Theory – побеждена ошибка игры, ломавшая отрисовку прибора ночного видения.
Как обновить DXVK внутри Proton вручную
Обычно это не требуется: официальный Proton и GE-Proton включают DXVK и VKD3D-Proton в собственные выпуски и подтягивают их обновления сами. Но если хочется опробовать свежий релиз, не дожидаясь Valve, файлы можно заменить вручную – на свой страх и риск.
Скачайте архив нужного релиза со страницы DXVK 3.0.2 на GitHub, затем найдите каталог установленного Proton.
Для Proton 9 и Proton Experimental:
путь-к-вашей/SteamLibrary/steamapps/common/Proton x.x/files
Для Proton 8 и старше:
путь-к-вашей/SteamLibrary/steamapps/common/Proton x.x/dist
Для GE-Proton (номер версии – свой):
~/.steam/steam/compatibilitytools.d/GE-Proton9-20/files
Внутри находятся каталоги lib и lib64 – для 32-разрядных и 64-разрядных библиотек. В каждом из них откройте wine, а там – каталоги dxvk и vkd3d-proton. Замените DLL-файлы в этих каталогах файлами из скачанного архива, соблюдая разрядность.
Если что-то пошло не так, удалите каталог files (или dist) целиком и запустите проверку целостности файлов в Steam – Proton восстановится в исходном виде.
D7VK 2.0: ретро-игры ускорились вдвое
D7VK за авторством WinterSnowfall переносит подход DXVK на ранние версии Direct3D – с третьей по седьмую. Новая версия перебазирована на DXVK 3.0.2 и, как пишет разработчик проекта, в отдельных сценариях с упором в процессор даёт прирост производительности более чем в два раза. В Half-Life частота кадров выросла с 19,8 FPS до потолка в 60 FPS.
Откуда прирост:
- ProcessVertices на SSE. Участник CkNoSFeRaTU написал вручную оптимизированные SSE-помощники для процессорных вычислений вершин.
- Буферы MANAGED-пула. Изменённая логика размещения буферов D3D9 резко ускорила выгрузку данных при программной обработке вершин – это помогло Toy Story 2: Buzz Lightyear to the Rescue, SCP – Containment Breach и практически всем играм на движке GoldSrc, включая Half-Life.
- Отладочные журналы. Большинство отладочных регистраторов удалено, остальные убраны с горячих путей. Они не выводились в обычном режиме, но всё равно выполняли строковые операции – и, как выяснилось, заметно съедали производительность при упоре в процессор. Теперь большинство тестов 3DMark упираются только в GPU.
Для игр с ограничением частоты кадров по VSync – а таких среди ранних Direct3D-игр большинство – выигрыш выражается в снижении нагрузки на процессор. Это тоже полезно: почти все они однопоточные, и освободившиеся такты уходят на игровую логику.
Прочие изменения:
- Поверхности формата bump luminance в видеопамяти теперь обрабатываются в обход ограничения WineD3D – исчезли мелкие дефекты отрисовки в Dungeon Keeper 2 и технодемонстрации Matrox G400.
- Разработчики изучили поведение видеокарт той эпохи (Matrox G400, NVIDIA Riva TNT2, ATI Rage 128) на Windows XP, и теперь ограничения размеров поверхностей POW2 сообщаются играм глобально. Это исправило обрезание изображения в Empire Earth и избавило от отдельных заплаток для Total Annihilation: Kingdoms и Revenant.
- Устранён Z-fighting проецируемого света на ночных трассах Need for Speed: Porsche.
- Исправлена регрессия с чёрным экраном в The Sims: Complete Collection.
- Добавлено ограничение кадров для Dungeon Keeper 2 – против ускоренной анимации огня и воды.
- Ускорены все вызовы Flip поверхностей благодаря исправлению ошибки DDraw в WineD3D.
Разработчик D7VK отдельно отмечает: игры без ограничителя кадров теперь сильнее нагружают GPU – процессор освободился и успевает готовить больше кадров. Это ожидаемое поведение, а не ошибка. Наработки D7VK ранее уже перенесли в DXVK-Sarek – форк для старых видеокарт без поддержки новых версий Vulkan.
Сборка D7VK 2.0 доступна GitHub.