02.07.2022

Выпуск DXVK 1.10 и VKD3D-Proton 2.6, реализаций Direct3D для Linux

Доступен выпуск прослойки DXVK 1.10, предоставляющей реализацию DXGI (DirectX Graphics Infrastructure), Direct3D 9, 10 и 11, работающую через трансляцию вызовов в API Vulkan. Для использования DXVK требуется наличие драйверов с поддержкой API Vulkan 1.1, таких как Mesa RADV 20.2, NVIDIA 415.22, Intel ANV 19.0 и AMDVLK. DXVK может применяться для запуска 3D-приложений и игр в Linux при помощи Wine, выступая в качестве более высокопроизводительной альтернативы встроенных в Wine реализаций Direct3D 9/10/11, работающих поверх OpenGL.

Основные изменения:

  • Убраны лишние обработчики синхронизации потоков, используемые при загрузке ресурсов в реализациях D3D11 и D3D9. Изменение позволило значительно поднять производительность Assassin’s Creed: Origins и других игр на базе движка AnvilNext, а также положительно отразилось на производительности игр Elex II, God of War и GTA IV.
  • Проведена оптимизация использования D3D11_MAP_WRITE для ресурсов, загружаемых в GPU, что позволило повысить производительность игры Quantum и потенциально других приложений.
  • Оптимизировано выполнение операции UpdateSubresource для обновления фиксированных буферов небольшого размера. Изменение положительно повлияло на производительность God of War и возможно других игр.
  • Ускорена обработка загрузки ресурсов и промежуточных буферов в D3D11. Изменение снизило нагрузку на CPU в некоторых играх.
  • В отладочный экранный интерфейс (HUD) добавлена информация, полезная для диагностики проблем с производительностью, такая как сведения о синхронизации.
  • Код синхронизации GPU избавлен от использования холостых циклов (busy-waiting), что позволило снизить потребление энергии на мобильных устройствах в некоторых играх.
  • Добавлена заглушка для вызова 3D11On12CreateDevice, обращение к которому ранее приводило к аварийному завершению приложений.
  • Повышена производительность игр Total War: Warhammer III, Resident Evil 0/5/6, Resident Evil: Revelations 2.
  • Решены проблемы в играх ArmA 2, Black Mesa, Age of Empires 2: Definitive Edition, Anno 1800, Final Fantasy XIV, Nier Replicant, The Evil Within.

Кроме того, компания Valve опубликовала выпуск VKD3D-Proton 2.6, ответвления от кодовой базы vkd3d, созданного для улучшения поддержки Direct3D 12 в пакете для запуска игр Proton. В VKD3D-Proton поддерживаются специфичные для Proton изменения, оптимизации и улучшения для более качественной работы Windows-игр на базе Direct3D 12, которые пока не приняты в основной состав vkd3d. Из отличий также отмечается ориентация на использование современных расширений Vulkan и возможностей свежих выпусков графических драйверов для достижения полной совместимости с Direct3D 12.

В новой версии:

  • Решены проблемы в играх Horizon Zero Dawn, Final Fantasy VII: Remake and Warframe, Guardians of the Galaxy, Elden Ring и Age of Empires: IV.
  • В DXIL улучшен генерируемый шейдерный код для векторизированных операций загрузки и сохранения.
  • Сокращена нагрузка на CPU при копировании дескрипторов.
  • Переписана библиотека конвейера (pipeline) D3D12, в которой обеспечено кэширование представления SPIR-V, сгенерированного из DXBC/DXIL. Изменение позволило ускорить загрузку таких игр, как Monster Hunter: Rise, Guardian of the Galaxy и Elden Ring.
  • Полностью реализована модель шейдеров версии 6.6, включая поддержку прямого доступа к ResourceDescriptorHeap[], 64-разрядные атомарные операции, метод IsHelperLane(), производные вычислительные шейдеры, атрибут WaveSize и упакованные математические встроенные функции (Intrinsics).

Дополнительно можно отметить публикацию компанией Valve кода SteamOS Devkit Service и SteamOS Devkit Client с реализацией сервера и клиента, позволяющих загружать сборки собственных игр напрямую с компьютера на приставку Steam Deck, а также выполнять отладку и другие сопутствующие задачи, возникающие в процессе разработки.

Также доступен первый выпуск проекта LatencyFleX, развивающего открытую прослойку для снижения задержек в играх, выступающую аналогом проприетарного приложения NVIDIA Reflex, работающую в Linux и не привязанную к GPU определённых производителей.

Источник.