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

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

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

  • Для всех поддерживаемых шейдерных моделей задействован компилятор шейдеров dxbc-spirv. Компиляция шейдеров перенесена из основного потока в отдельные потоки. Реализовано кэширование на диске промежуточного представления шейдеров (кэш сохраняется в подкаталоге AppData/Local в текущем префиксе Wine). Использование dxbc-spirv позволило снизить потребление памяти, сократить время запуска, исключить подвисания и избавиться от ряда проблем, проявлявшихся в играх Postal: Brain Damaged, Snowrunner, Overwatch, God of War, Days Gone и Final Fantasy XIV, которых не удавалось устранить в старом коде трансляции шейдеров.

  • Для D3D9 реализована поддержка шейдерных моделей 1–3.

  • По умолчанию задействовано Vulkan-расширение VK_EXT_descriptor_heap. По сравнению с ранее применявшимся хранилищем дескрипторов на базе Vulkan-расширения VK_EXT_descriptor_buffer, новая реализация обеспечивает тот же уровень производительности операций, выполняемых на CPU, но снижает нагрузку на GPU, особенно при использовании видеокарт NVIDIA. Для работы на системах с видеокартами NVIDIA требуется как минимум версия проприетарных драйверов NVIDIA 595.84. Реализация на базе VK_EXT_descriptor_buffer объявлена устаревшей и будет удалена в одном из следующих выпусков.

  • В реализации Direct3D 9 вместо генерации шейдеров на лету теперь используются uber-шейдеры, оптимизированные версии которых компилируются в фоне, что решило проблемы с подвисанием некоторых старых игр, таких как Unreal Tournament 2004. Обеспечена загрузка буферов по необходимости, как в Windows, вместо заблаговременного размещения в видеопамяти, что устранило аварийные завершения некоторых 32-разрядных D3D9-игр из-за ограниченного адресного пространства.

  • Обеспечена корректная работа мультисэмплинга (MSAA) в режиме D3DRS_MULTISAMPLEANTIALIAS на системах с поддержкой Vulkan-расширений VK_EXT_sample_locations и VK_EXT_extended_dynamic_state3, что решило проблемы с рендерингом в Anno 1701, Men of War и других играх при включении MSAA.

  • Обеспечена поддержка работы с общими ресурсами (Shared resources) в штатных версиях Wine без дополнительных патчей от проекта Proton.

  • Удалена переменная окружения DXVK_FRAME_RATE, применявшаяся для ограничения частоты кадров (Frame rate limiter), вместо которой рекомендуется использовать внешние ограничители, такие как Gamescope и Mangohud. Для активации встроенного ограничителя можно использовать настройку «dxvk.maxFrameRate = n».

  • Решены проблемы в играх:
    • Bioshock Infinite
    • Borderlands 2
    • Colin McRae Rally 3
    • Dirt Rally 2
    • Fallout New Vegas
    • Insurgency & Counter-Strike
    • Jump Space
    • Max Payne
    • Railroad Tycoon 3
    • Resident Evil 6
    • Sang-Froid: Tales of Werewolves
    • Sea Dogs
    • Splinter Cell 4
    • The I of the Dragon
    • The Sims 3
    • Total War: Pharaoh
    • Witch on the Holy Night
    • World of Final Fantasy
    • Vietcong
  • Требования к минимальной версии графического API повышены до Vulkan 1.4. Для работы теперь требуются как минимум версии драйверов AMD RADV 25.0, NVIDIA 575.51.02, NVIDIA 25.1 и Intel ANV 25.1.



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

© OpenNet