Выпуск проекта DXVK 1.0 с реализацией Direct3D 10/11 поверх API Vulkan
26 февраля 2019 года
Доступен выпуск прослойки 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 позволит добиться более высокого качества звука в играх и задействования таких возможностей как смешивание громкости и расширенные звуковые эффекты. Проект FAudio изначально был задействован в Proton, развиваемой компанией Valve редакции Wine, оптимизированной для запуска Windows-игр, представленных в каталоге Steam. В ближайшие дни ожидается публикация новой версии Proton 3.16-7, в которой кроме исправления ошибок и поддержки новых игр, запланировано обновление компонентов DXVK и FAudio, улучшение поддержки игровых контроллеров и добавление опции для запуска старых игр, которые не могут корректно работать с идентификаторами современных GL.
Источники
править
Любой участник может оформить статью: добавить иллюстрации, викифицировать, заполнить шаблоны и добавить категории.
Любой редактор может снять этот шаблон после оформления и проверки.
Комментарии
Если вы хотите сообщить о проблеме в статье (например, фактическая ошибка и т. д.), пожалуйста, используйте обычную страницу обсуждения.
Комментарии на этой странице могут не соответствовать политике нейтральной точки зрения, однако, пожалуйста, придерживайтесь темы и попытайтесь избежать брани, оскорбительных или подстрекательных комментариев. Попробуйте написать такие комментарии, которые заставят задуматься, будут проницательными или спорными. Цивилизованная дискуссия и вежливый спор делают страницу комментариев дружелюбным местом. Пожалуйста, подумайте об этом.
Несколько советов по оформлению реплик:
- Новые темы начинайте, пожалуйста, снизу.
- Используйте символ звёздочки «*» в начале строки для начала новой темы. Далее пишите свой текст.
- Для ответа в начале строки укажите на одну звёздочку больше, чем в предыдущей реплике.
- Пожалуйста, подписывайте все свои сообщения, используя четыре тильды (~~~~). При предварительном просмотре и сохранении они будут автоматически заменены на ваше имя и дату.
Обращаем ваше внимание, что комментарии не предназначены для размещения ссылок на внешние ресурсы не по теме статьи, которые могут быть удалены или скрыты любым участником. Тем не менее, на странице комментариев вы можете сообщить о статьях в СМИ, которые ссылаются на эту заметку, а также о её обсуждении на сторонних ресурсах.