Выпуск 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