Выпуск проекта DXVK 1.0 с реализацией Direct3D 10/11 поверх API Vulkan

Доступен выпуск прослойки DXVK 1.0, предоставляющей реализацию DXGI (DirectX Graphics Infrastructure), Direct3D 10 и Direct3D 11, работающую через трансляцию вызовов в API Vulkan. Для использования DXVK требуется наличие драйверов с поддержкой API Vulkan, таких как AMD RADV 18.3+, AMDGPU PRO 18.50+, NVIDIA 415.22+, Intel ANV 18.2+ и AMDVLK.

DXVK может применяться для запуска 3D-приложений и игр в Linux при помощи Wine, выступая в качестве более высокопроизводительной альтернативы встроенной в Wine реализации Direct3D 11, работающей поверх OpenGL. В некоторых играх производительность связки Wine+DXVK отличается от запуска в Windows всего на 10–20%, в то время как при использовании реализации Direct3D 11 на базе OpenGL производительность снижается более существенно.

Интеграции DXVK в Wine мешает несовместимость лицензий и применение разных языков программирования: DXVK использует пермиссивную лицензию zlib и написан на C++, а Wine использует копилефт лицензию LGPL, написан на С и привязан к стандарту C89. Тем не менее, ведётся работа по поставке компонентов DXVK в состве wine-integration в форме отдельной Linux-библиотеки (libdxvk.so), которую напрямую можно использовать в Wine, без необходимости отдельной установки DXVK в форме Windows DLL.

В DXVK 1.0 предложен новый скрипт для настройки, позволяющий переключаться между реализацией DXGI от Wine и встроенной в DXVK реализацией DXGI. Скрипт также предоставляет опцию для установки DLL DXVK в форме символических ссылок без непосредственного копирования файлов. Начиная с Wine 4 возможно применение встроенной в Wine реализации DXGI совместно с DXVK. Использование DXGI от Wine позволяет одновременно обеспечить поддержку Direct3D 10/11 силами DXVK и Direct3D 12 на базе развиваемого проектом Wine пакета vkd3d. При этом реализация DXGI от DXVK отмечается, как более оптимальная для запуска игр Creed Syndicate, Elite Dangerous, The Vanishing of Ethan Carter Redux, Far Cry 3 (и Blood Dragon), Far Cry 4, Call of Duty World War 2, Need for Speed 2015, Mass Effect Andromeda, а также большинства игр на базе движка Unreal Engine 4.

Другие улучшения в выпуске DXVK 1.0:

  • Добавлена опция «DXVK_HUD=api», обеспечивающая отображение поверх экрана отладочной информации с данными о возможностях D3D, используемых в приложении;
  • В фильтре устройств реализовано сопоставление по маскам, которые могут включать лишь часть имени устройства вместо полного наименования, что позволяет обойтись без изменения настроек после обновления драйвера RADV;
  • Улучшено качество кода шейдеров, генерируемых для RADV, что позволило немного повысить производительность;
  • Внесены изменения, незначительно снижающие нагрузку на CPU в некоторых ситуациях;
  • Потенциально улучшена согласованность времени отрисовки кадров в некоторых играх при использовании драйверов NVIDIA;
  • Обеспечено применение расширений VK_EXT_memory_priority и VK_EXT_memory_budget для оптимизации потребления памяти и более точной передачи сведений о доступной видеопамяти;
  • Производительность игры «Resident Evil 2» повышена примерно на 10% за счёт включения опции d3d11.relaxedBarriers;
  • Устранены регрессивные изменения, существенно снижавшие производительность при использовании проприетарного драйвера AMD;
  • Устранена проблема c некорректной обработкой шейдеров SPIR-V, из-за которой изображение в играх на движке Unreal Engine 4 выглядело жёлтым при использовании проприетарного драйвера AMD;
  • Устранены артефакты и проблемы при запуске игр Far Cry 3 / 4 / Blood Dragon, Far Cry Primal, Final Fantasy XIV, Heroes of the Storm, Monster Hunter World и Overwatch.

Дополнительно можно отметить принятие в Wine патчей, переводящих реализацию звукового API XAudio2 на использование наработок проекта FAudio. Использование FAudio в Wine позволит добиться более высокого качества звука в играх и задействования таких возможностей как смешивание громкости и расширенные звуковые эффекты.

© OpenNet