Випуск 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) та впорядковане відмальовування у розтеризаторі (Rasteri.
  • Перероблена та наближена за своєю поведінкою до 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
    • Повертається Аліса Божевілля
    • Аномалія: Земля Warzone
    • Поза Добра і Зла
    • Походження драконів
    • Імперія: загальна війна
    • Final Fantasy XV
    • Grand Theft Auto IV
    • Heroes Of Annihilated Empires
    • Limit King Of Fighters XIII
    • Metal Gear Solid V: Ground Zeros
    • SiN Episodes: Emergence
    • Sonic Generations
    • людина-павук
    • Корабель
    • Warhammer Інтернет
    • Ys Seven

Джерело: opennet.ru

Додати коментар або відгук