Вышел VKD3D-Proton 3.1: поддержка Shader Model 6.9, DXR 1.2 и Steam Frame

2026-10-28 170 комментарии
VKD3D-Proton 3.1 получил поддержку VK_EXT_descriptor_heap (пока выключена по умолчанию), Shader Model 6.9 и DXR 1.2, ускорение трассировки лучей в ряде случаев и поддержку Steam Frame со сборками для aarch64. Слой совместимости позволяет запускать игры для Windows с Direct3D 12 на Linux и SteamOS

разработчик Hans-Kristian Arntzen выпустил VKD3D-Proton 3.1. В новой версии появилась поддержка расширения VK_EXT_descriptor_heap, Shader Model 6.9 и DXR 1.2, в некоторых случаях заметно выросла производительность трассировки лучей, а гарнитура Steam Frame на процессоре Qualcomm стала поддерживаемой платформой со сборками для aarch64. По словам разработчика, этот выпуск – последний «стабильный» перед версией 3.2, в которой ожидается много важных изменений.

Страница выпуска VKD3D-Proton 3.1 на GitHub: раздел FeaturesСтраница выпуска VKD3D-Proton 3.1 на GitHub. Изображение: GitHub

VKD3D-Proton – слой совместимости, который переводит вызовы Direct3D 12 в Vulkan. Он входит в состав Proton и позволяет запускать игры для Windows с Direct3D 12 на Linux и SteamOS. Отдельно обновлять его не нужно: новые версии VKD3D-Proton Valve включает в Proton.

Предыдущая версия, VKD3D-Proton 3.0.1, вышла в мае. Тогда разработчик называл её последним выпуском перед внедрением VK_EXT_descriptor_heap.

Новые возможности

  • Добавлена поддержка VK_EXT_descriptor_heap. Её несколько месяцев можно было включить вручную, и на видеокартах NVIDIA она прошла много проверок. По умолчанию в этом выпуске она не включена из-за опасений по поводу качества драйверов. В основной ветке разработки это скоро изменится – это одна из причин, по которым выпуск вышел сейчас.
  • Добавлена поддержка KHR_opacity_micromap, старый неработающий путь через расширение EXT удалён. Если оборудование поддерживает DXR 1.2, эта версия становится доступна играм.
  • Добавлена поддержка Shader Model 6.9 с переупорядочиванием выполнения шейдеров (Shader Execution Reordering) и длинными векторами. Пока она работает только на видеокартах NVIDIA: Shader Model 6.9 в основном ориентирована на трассировку лучей и машинное обучение.
  • В dxil-spirv добавлена поддержка ряда встроенных функций NVAPI.
  • Играм доступны возможности Agility SDK 619.
  • Технология view instancing теперь включена по умолчанию, потому что на неё опирается всё больше игр. Реализация не полностью соответствует спецификации, поэтому для некоторых игр, которые используют эту возможность на пределе, её можно отключить.

Производительность

  • Добавлен оптимизированный путь для ClearUAV: когда это возможно, очистка выполняется через vkCmdClearColorImage или vkCmdFillBuffer. Это позволяет драйверам в некоторых случаях её ускорить.
  • Оптимизированы некоторые неудачные последовательности барьеров вида COPY – RESOURCE – COPY.
  • В IDXGISwapChain::Present() устранена часть обращений к композитору, связанных с проверкой перекрытия окна. Это должно повысить производительность, когда игра упирается в процессор в основном потоке отрисовки.
  • Перед вставкой барьеров объединяется больше команд построения структур ускорения для трассировки лучей (RTAS). В некоторых случаях это сильно повышает производительность трассировки лучей.

Исправления и обходные решения

Исправления

  • Steam Frame теперь поддерживаемая платформа: добавлены исправления для оборудования Qualcomm и сборки для aarch64.
  • На видеокартах AMD, где формат D24 эмулируется как D32, правильно выполняется копирование между D24 и буферами. Это устранило ошибки, например, в ремастере MGS4.
  • Добавлены исправления путей low_latency2 от NVIDIA для соответствия третьей версии спецификации.
  • Исправлено неопределённое поведение в операциях udiv, umod, sdiv и srem. В некоторых случаях компиляторы NVIDIA использовали его для оптимизаций, что приводило к ошибкам.
  • Исправлено недокументированное поведение resolve в API проходов отрисовки.
  • Правила плотного выравнивания приведены в соответствие с Agility SDK 619.5.
  • Реализация AMD_anti_lag заметно упрощена, исправлено много ошибок с привязкой кадров.
  • Множество других исправлений в dxil-spirv.

Обходные решения

  • Добавлены обходные решения, которые помогают играм, рассчитанным на поддержку Wave32, работать на видеокартах AMD GCN и оборудовании Qualcomm. По словам разработчика, в последнее время многие игры перестали работать на этих GPU, но чаще всего это удаётся исправить.
  • Добавлено более точное определение игр на Unreal Engine 5 и RE Engine, чтобы драйверам Mesa было проще применять обходные решения, которые нельзя привязать напрямую к VKD3D-Proton.
  • Добавлен обходной путь для некорректной работы корневых SRV и UAV, который затрагивал видеокарты NVIDIA. На Windows игры могут работать с нарушением спецификации, а VKD3D-Proton такое поведение раньше не повторял. Это должно устранить часть графических ошибок и вылетов на этих видеокартах.
  • Переписаны обходные решения для ошибок использования памяти после освобождения. Они устраняют многие проблемы с плагином FSR 4 для Unreal Engine.
  • Множество других обходных решений для отдельных игр.

Проверка на тестовом ПК

Мы посмотрели, что из нового выпуска доступно на нашем тестовом ПК со SteamOS 3.9.5 и встроенной видеокартой AMD Radeon 780M с драйвером RADV из Mesa 26.2-devel. Shader Model 6.9 VKD3D-Proton пока включает только на видеокартах NVIDIA, а расширений VK_EXT_descriptor_heap и opacity micromap драйвер этой видеокарты не предоставляет. Поэтому новый путь descriptor heap и DXR 1.2 на ней недоступны. Трассировку лучей драйвер поддерживает: расширения VK_KHR_ray_tracing_pipeline и VK_KHR_acceleration_structure есть.

Терминал Konsole на SteamOS: версии VKD3D-Proton в сборках Proton, видеокарта AMD Radeon 780M и найденные расширения VulkanВерсии VKD3D-Proton в установленных сборках Proton и расширения Vulkan на тестовом ПК с Radeon 780M. Изображение: Comss.ru

В установленных сборках Proton видно, насколько они отстают от нового выпуска. В GE-Proton 11-11, Proton-CachyOS 11.0-20261014 и DWProton 11.0-15 VKD3D-Proton собран из коммита 0bb64c56c от 14 октября. Из 484 коммитов между версиями 3.0.1 и 3.1 в нём есть 454. Судя по списку оставшихся, в эти сборки ещё не вошли, например, сокращение обращений к композитору при выводе кадра и часть обходных решений для игр. В стабильном Proton 11.0-2 от Valve VKD3D-Proton собран из коммита 212991fc2 от 29 июля с отдельной ветки – до версии 3.1 ему 539 коммитов.

Как установить VKD3D-Proton 3.1

Ждать, пока новая версия войдёт в Proton, не обязательно: VKD3D-Proton 3.1 можно положить в копию сборки Proton из каталога compatibilitytools.d. Мы установили его на тестовый ПК в копию GE-Proton 11-11 – если этой сборки у вас нет, её можно поставить через ProtonUp-Qt. Proton от Valve для этого не подходит: его обновляет Steam, и при обновлении изменённые файлы будут заменены. Команды ниже выполняются в терминале, в режиме рабочего стола SteamOS это Konsole.

  • Скачайте и распакуйте архив. Загрузите vkd3d-proton-3.1.tar.zst со страницы выпуска на GitHub в папку «Загрузки» и распакуйте его командами ниже:
cd ~/Downloads
tar -xf vkd3d-proton-3.1.tar.zst
  • Сделайте копию сборки Proton. Скопируйте GE-Proton под новым именем и поменяйте в копии имя, под которым Steam покажет её в списке, а также строку версии, чтобы копию было легко отличить от оригинала:
cd ~/.local/share/Steam/compatibilitytools.d
cp -a GE-Proton11-11-x86_64 GE-Proton11-11-vkd3d-3.1
sed -i "s/GE-Proton11-11-x86_64/GE-Proton11-11-vkd3d-3.1/" GE-Proton11-11-vkd3d-3.1/compatibilitytool.vdf
sed -i "s/GE-Proton11-11$/GE-Proton11-11-vkd3d-3.1/" GE-Proton11-11-vkd3d-3.1/version
  • Замените библиотеки VKD3D-Proton. 64-битные DLL из папки x64 копируются в x86_64-windows, 32-битные из x86 – в i386-windows. Файлы в сборке GE-Proton доступны только для чтения, поэтому нужен ключ -f – без него cp сообщит «Отказано в доступе»:
cp -f ~/Downloads/vkd3d-proton-3.1/x64/*.dll GE-Proton11-11-vkd3d-3.1/files/lib/wine/vkd3d-proton/x86_64-windows/
cp -f ~/Downloads/vkd3d-proton-3.1/x86/*.dll GE-Proton11-11-vkd3d-3.1/files/lib/wine/vkd3d-proton/i386-windows/

Установка VKD3D-Proton 3.1 в копию GE-Proton 11-11 в терминале Konsole на SteamOSУстановка VKD3D-Proton 3.1 в копию GE-Proton 11-11 на тестовом ПК: контрольные суммы библиотеки из архива и в сборке совпадают. Изображение: Comss.ru

  • Выберите сборку для игры. Вернитесь в игровой режим или перезапустите Steam – новая сборка появится в списке инструментов совместимости под именем GE-Proton11-11-vkd3d-3.1. Выбирают её в свойствах игры на вкладке «Совместимость», в списке «Выбрать инструмент совместимости».

Свойства Forza Horizon 5 в игровом режиме SteamOS, вкладка «Совместимость»: выбрана сборка GE-Proton11-11-vkd3d-3.1Свойства Forza Horizon 5, вкладка «Совместимость»: для игры выбрана GE-Proton11-11-vkd3d-3.1. Изображение: Comss.ru

На Linux с обычным Steam каталог тот же, у Steam из Flatpak это:

~/.var/app/com.valvesoftware.Steam/data/Steam/compatibilitytools.d

Чтобы вернуться к прежней версии VKD3D-Proton, выберите в свойствах игры исходную сборку или «По умолчанию» – папку GE-Proton11-11-vkd3d-3.1 после этого можно удалить.

Читаете нас в Google? Добавьте Comss.ru в источникиДобавьте Comss.ru в источники Google
Новые статьи будут чаще в «Главных новостях» Google. Без подписок и уведомлений, отключается в один клик. Нужен вход в аккаунт Google.Наши статьи будут чаще в «Главных новостях». Нужен вход в Google.
Добавить в Google
© .
Комментарии и отзывы

Нашли ошибку?

Новое на сайте