Выпуск DXVK 2.0, реализации Direct3D 9/10/11 поверх API Vulkan

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

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

  • Повышены требования к версии графического API Vulkan — для работы теперь требуется драйвер с поддержкой Vulkan 1.3 (ранее был необходим Vulkan 1.1), что позволило реализовать поддержку новых возможностей, связанных с компиляцией шейдеров. На практике DXVK 2.0 можно запустить на любой системе, на которой поддерживается использование пакета Proton Experimental для запуска игр на базе D3D11 и D3D12. Для работы winevulkan требуется как минимум Wine 7.1.

  • В состав принят код проекта dxvk-native, позволяющего формировать родные сборки DXVK для Linux (не привязанные к Wine), которые можно использовать не для запуска Windows-приложений, а в обычных Linux-приложениях, что может быть полезным для создания портов игр для Linux без изменения кода отрисовки на базе D3D.
  • Расширена поддержка Direct3D 9, в том числе улучшено управление памятью (для хранения копий текстур задействованы отражённые в память файлы), реализована поддержка корректного чтения из активных областей отрисовки (решило проблемы с появлением артефактов при игре в GTA IV) и переработана реализация проверки на прозрачность.

  • Для Direct3D 10 прекращена поставка библиотек d3d10.dll и d3d10_1.dll, которые не устанавливались по умолчанию из-за наличия в wine более продвинутой реализации D3D10. При этом поддержка API D3D10 продолжена в библиотеке d3d10core.dll.

  • Поддержка Direct3D 11 доведена до уровня функциональности 12_1 (D3D11 Feaure Level), для достижения которого реализованы такие возможности, как мозаичные ресурсы (Tiled Resources), консервативная растеризация (Conservative Rasterization) и упорядоченная отрисовка в растеризаторе (Rasterizer Ordered Views).
  • Переделана и приближена по своему поведению к Windows реализация интерфейса ID3D11DeviceContext, представляющего контекст устройства, генерирующий команды отрисовки. Переработка позволила улучшить совместимость со сторонними библиотеками и сократить нагрузку на CPU. В частности, снижена нагрузка на CPU в играх, активно использующих отложенные контексты (например, игра Assassin’s Creed: Origins) или часто вызывающих операцию ClearState (например, игра God of War).

  • Внесены изменения, связанные с компиляцией шейдеров. При наличии Vulkan-драйверов с поддержкой расширения VK_EXT_graphics_pipeline_library реализована компиляция шейдеров Vulkan во время загрузки играми шейдеров D3D, а не во время отрисовки, что решило проблемы с подвисаниями из-за компиляции шейдеров во время игры. Требуемое расширение пока поддерживается только в проприетарных драйверах NVIDIA, начиная с версии 520.56.06.
  • В шейдерах D3D11 задействована модель памяти Vulkan.

  • Убрано ограничение на число ресурсов, которые могут быть привязаны за один раз.
  • Устранены проблемы, проявляющиеся в играх:
    • Alan Wake
    • Alice Madness Returns
    • Anomaly: Warzone Earth
    • Beyond Good and Evil
    • Dragon Age Origins
    • Empire: Total War
    • Final Fantasy XV
    • Grand Theft Auto IV
    • Heroes Of Annihilated Empires
    • Limit King Of Fighters XIII
    • Metal Gear Solid V: Ground Zeroes
    • SiN Episodes: Emergence
    • Sonic Generations
    • Spider Man
    • The Ship
    • Warhammer Online
    • Ys Seven



Источник: http://www.opennet.ru/opennews/art.shtml? num=58087

© OpenNet