Слой преобразования DXVK обновился до версии 3.0

Разработка слоя преобразования DXVK достигла новой ступени, подразумевающей переход на версию 3.0 и предлагающей несколько важных изменений, поддерживаемых не всеми видеокартами. Напомним, что DXVK представляет собой транслятор кода API DirectX в API Vulkan, что позволяет играть в игры для Windows в среде Linux, а также иногда положительно влияет на производительность в играх на Windows, особенно если игра полагается на DX9/10/11.

Большое обновление принесло изменение в компиляторе шейдеров, который теперь полагается на dxbc-spirv для всех поддерживаемых моделей. Это позволяет исправить некоторые проблемы с рендерингом. Переменной DXVK_FRAME_RATE по умолчанию теперь нет: он не может обеспечить такую же плавность кадров, как Gamescope или MangoHud, так что пользователям рекомендуется перейти на альтернативы. Если всё же нравится именно она, то в файле конфигурации необходимо добавить параметр dxvk.maxFrameRate = лимит кадров.

Изменения в случае с D3D9 подразумевают использование VK_EXT_descriptor_heap по умолчанию на поддерживаемых драйверах, начинающихся с версии 595.84 в случае NVIDIA. Другие изменения при работе с этим API включают в себя обработку конвейера фиксированных функций через убершейдеры, изменение некоторых процессов загрузки для лучшего соответствия поведению современной версии Windows и повышение производительности без Resizable BAR.

Последний момент не особо приятный и касается владельцев игровых видеокарт на графических архитектурах RDNA первого и второго поколений: «Хотя эта версия в целом будет работать, драйвер AMD для Windows, затрагивающий RDNA 1/2, не получает обновлений функций, в связи с чем может использовать только медленную устаревшую модель привязки и страдает от серьёзных проблем с производительностью, которые не наблюдаются ни в одном другом драйвере. Пользователям, которых это затронуло, следует оставаться на DXVK 2.x или рассмотреть возможность перехода на Linux».