VKD3D-Proton используется в составе Proton и Proton Experimental для совместимости Windows-игр с Linux и SteamOS. Для большинства пользователей компонент обновляется автоматически вместе с Proton и не требует отдельной установки.
По словам разработчика Hans-Kristian Arntzen, релиз 3.0.1 станет последним перед внедрением расширения VK_EXT_descriptor_heap. Работа над поддержкой descriptor heap уже ведётся, но в текущую версию изменения не вошли. Номер релиза 3.0.1 вместо 3.1 выбран по техническим причинам и не отражает масштаб обновления (прошлая версия – VKD3D-Proton 3.0: Поддержка FSR4, новый DXBC-бэкенд и масштабные улучшения для игр в Linux).
Главное в VKD3D-Proton 3.0.1
- Экспериментальная поддержка D3D12 view instancing – включена для Crimson Desert (1.04+).
- Реализация
VK_EXT_present_timingдля плавной подачи кадров при SyncInterval > 1. - Поддержка AGS WMMA-операций для FSR4 Ray Reconstruction и Denoiser в Crimson Desert.
- Расширенные интерфейсы NVAPI с поддержкой Shader Execution Reordering через свежий dxvk-nvapi.
- Серия оптимизаций для мобильных GPU и тайловых архитектур.
Полный список изменений VKD3D-Proton 3.0.1
Новые возможности
- Экспериментальная поддержка D3D12 view instancing. Включена только для одной известной игры, которой эта функция требуется – Crimson Desert (1.04+).
- Реализовано расширение
VK_EXT_present_timingдля плавной подачи кадров при SyncInterval > 1, если поддерживается драйвером. - Поддержка функции Independent Devices.
- Добавлены новые AGS WMMA-операции, необходимые для FSR4 Ray Reconstruction и Denoiser, как в Crimson Desert.
- Расширены интерфейсы для более актуального NVAPI, добавлена частичная поддержка intrinsics-функций шейдеров NVAPI. С актуальной версией dxvk-nvapi должны заработать вендорские расширения Shader Execution Reordering.
- Расширены интерфейсы AMD AGS, добавлена частичная поддержка intrinsics-функций шейдеров AGS, как в Crimson Desert.
Исправления
SV_PrimitiveIDтеперь корректно читается в большем числе стадий шейдеров.- Серия исправлений для NVIDIA Reflex, повышающих производительность в ряде случаев (контрибуция NVIDIA). Идентификатор NVAPI present ID теперь не привязывается жёстко к внутреннему present ID – это особенно помогает frame generation.
- Исправления для прохождения тестов vkd3d-proton на драйвере Turnip.
- Исправления в dxil-spirv, устраняющие падения компилятора шейдеров в новых играх.
- Исправлена регрессия в F1 2019 и F1 2020 – старый workaround не сохранялся в новом коде компилятора.
- Прочие мелкие исправления.
Производительность
Основной объём оптимизаций направлен на мобильные GPU с тайловой архитектурой:
- Реализованы отложенные clear- и discard-операции – потенциальное ускорение на Turnip и аналогичных драйверах.
- Используется механизм suspend-resume render pass на мобильных GPU. Эффект зависит от драйвера и игры – автоматического ускорения не гарантирует.
- Инициализация и разрешение query pool перенесены так, чтобы реже разрывать render passes.
- Переработана логика MSAA-разрешений для более простой оптимизации со стороны драйверов.
Прочие улучшения производительности:
- Пакетная обработка сложных
ExecuteIndirectв случаях, когда прежняя оптимизация со split command list не срабатывала. Улучшает GPU-bound производительность в Crimson Desert, Starfield и Halo Infinite. - Реализован SM 6.4
dot2addчерезVK_VALVE_shader_mixed_float_dot_product, если поддерживается. - Для D3D12 COPY-очередей используется отдельная Vulkan TRANSFER-очередь, если она доступна, вместо COMPUTE-очереди. RADV пока не предоставляет её по умолчанию, на NVIDIA TRANSFER-очередь уже задействована – это ускоряет потоковую загрузку ассетов.
Обходные решения для игр
- Добавлен механизм применения обходных решений по имени entry point шейдера, а не по хешу. Доступен не всегда, но снижает зависимость от изменений хешей в Wuthering Waves и Crimson Desert.
- Обходное решение для
DispatchRays, если игра некорректно задаёт root signature. - Исправлены прочие игровые баги в Shadow of the Tomb Raider, Rise of the Tomb Raider, Spider-Man 2, Death Stranding 2, Guardians of the Galaxy, REANIMAL, Crimson Desert и других играх.
- Обходное решение аппаратной ошибки RDNA4 с
SV_ShadingRateна затронутых версиях Mesa. В Mesa 26.1+ исправлено – обходное решение там отключается. - В будущей Mesa 26.2+ удаляется обходное решение NULL SMEM PRT для AMD. Закрывает полуторалетнюю проблему в Monster Hunter Wilds.
- Добавлен производительный обход для ядра NVIDIA при ожидании
ID3D12Fences. - RDNA1-картам разрешено сообщать о поддержке barycentrics и VRS – это позволяет запустить Crimson Desert на RDNA1.
- Удалена глобальная блокировка отправки команд на NVIDIA.
Прочее
- Удалены устаревшие пути для
VK_NV_device_generated_commandsиVK_NV_device_generated_commands_compute, а также compute-fallback дляNV_dgcc. Затронутых драйверов не осталось.
Скачать: загрузить релиз VKD3D-Proton 3.0.1 можно на GitHub.