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

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

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

  • Код управления памятью и ресурсами полностью переписан для более эффективной работы с видеопамятью. Периодически теперь запускается процесс дефрагментации, возвращающий неиспользуемую память системе. Возвращение памяти инициируется при нехватке памяти в системе или при наличии большого объёма неиспользуемой памяти (оставление за процессом небольшого объёма неиспользуемой памяти полезно для ускорение последующих операций выделения памяти).

    Благодаря уменьшению фрагментации памяти, наблюдается существенное снижение пикового потребления памяти в играх, таких как God of War, в некоторых ситуациях доходящее до 1 Гб. Наилучший результат работы нового кода управления памятью достигается с драйверами, поддерживающими Vulkan-расширения VK_EXT_memory_budget и VK_KHR_maintenance5. Для управления включением дефрагментации предусмотрена настройка dxvk.enableMemoryDefrag, которая отключена для драйвера Intel ANV.

  • Для Direct3D 8/9 реализована поддержка эмулированных курсоров, что позволяет выставлять в играх любые изображения в качестве курсора мыши. Изменение решило проблемы с пропаданием курсора в Dungeon Siege 2, Act of War и некоторых старых играх на базе Direct3D 8.
  • По умолчанию включена строгая эмуляция вычислений с плавающий запятой при использовании NVIDIA 565.57.01 и более новых версий драйверов.
  • Проведена работа по повышению производительности Direct3D 8/9 на мобильных GPU.
  • В Direct3D 11 реализовано урезание интенсивности операций создания, загрузки и возвращения ресурсов в случае превышения определённого порогового объёма выделяемой памяти, что позволяет повысить стабильность и снизить потребление памяти в 32-разрядных играх.
  • В DXGI в подменяемых виртуальных фреймбуферах (SwapChain) реализованы эффекты последовательной замены буферов, позволяющие играм прочитать содержимое уже отображённых буферов.
  • Для dxvk-native добавлен бэкенд на базе библиотеки SDL3.
  • Для повышения эффективности управления памятью задействовано Vulkan-расширение VK_EXT_pageable_device_local_memory, в случае его поддержки драйвером.
  • Устранены проблемы, проявляющиеся в играх:
    • Ascension to the Throne
    • Call of Duty: Modern Warfare 2 Campaign Remastered
    • Command & Conquer: Generals
    • Diablo 4
    • Dishonored 2
    • King’s Bounty: Warriors of the North
    • Rayman 3
    • Ryse: Son of Rome
    • Sekiro: Shadows Die Twice
    • Tales of Arise
    • The Sims 4
    • Tomb Raider: Legend
    • Total War: Rome II
    • Vindictus
    • Yakuza 0
    • Yakuza Kiwami

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