Достъпен е издаването на 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.
Източник: opennet.ru
