K dispozícii je verzia DXVK 2.0, ktorá poskytuje implementáciu DXGI (DirectX Graphics Infrastructure), Direct3D 9, 10 a 11, pracujúcu prostredníctvom prekladu volaní do API Vulkan. Na používanie DXVK sú potrebné ovládače s podporou API Vulkan 1.3, ako Mesa RADV 22.0, NVIDIA 510.47.03, Intel ANV 22.0 a AMDVLK. DXVK sa môže používať na spúšťanie 3D aplikácií a hier v Linuxe pomocou Wine a predstavuje výkonnostne efektívnejšiu alternatívu k zabudovaným implementáciám Direct3D 9/10/11 vo Wine, ktoré fungujú na OpenGL.
Hlavné zmeny:
- Zvýšili sa požiadavky na verziu grafického API Vulkan — na fungovanie je teraz potrebný ovládač s podporou Vulkan 1.3 (predtým bola potrebná verzia 1.1), čo umožnilo implementáciu podpory nových funkcií spojených s kompiláciou shaderov. V praxi je možné spustiť DXVK 2.0 na akomkoľvek systéme, ktorý podporuje používanie balíka Proton Experimental na spúšťanie hier založených na D3D11 a D3D12. Na fungovanie winevulkan je potrebné minimálne Wine 7.1.
- Do projektu bol prijatý kód dxvk-native, ktorý umožňuje vytvárať natívne zostavy DXVK pre Linux (neviazané na Wine), ktoré je možné použiť nielen na spúšťanie Windows aplikácií, ale aj v bežných Linux aplikáciách, čo môže byť užitočné pri vytváraní portov hier pre Linux bez úprav kódu pre vykresľovanie založeného na D3D.
- Podpora Direct3D 9 bola rozšírená, vrátane vylepšeného spravovania pamäte (na ukladanie kópií textúr sú využívané reflexívne v pamäti súbory), implementovaná podpora správneho čítania z aktívnych oblastí vykresľovania (vyšlo najevo, že to vyriešilo problémy s výskytom artefaktov pri hraní GTA IV) a prepracovaná implementácia kontroly priesvitnosti.
- Pre Direct3D 10 bol zastavený dodávky knižníc d3d10.dll a d3d10_1.dll, ktoré sa neinstalovali ako predvolené z dôvodu existencie pokročilejšej implementácie D3D10 v wine. Podpora API D3D10 bola však pokračovaná v knižnici d3d10core.dll.
- Podpora Direct3D 11 bola privedená na úroveň funkčnosti 12_1 (D3D11 Feature Level), pričom pre dosiahnutie tohto stavu boli implementované funkcie ako dlaždicové zdroje (Tiled Resources), konzervatívna rastrácia (Conservative Rasterization) a usporiadané vykresľovanie v rastri (Rasterizer Ordered Views).
- Prepracovaná a prispôsobená tak, aby sa správala ako implementácia ID3D11DeviceContext vo Windows, ktorá predstavuje kontext zariadenia generujúci príkazy na vykreslenie. Prepracovanie umožnilo zlepšiť kompatibilitu s externými knižnicami a znížiť zaťaženie CPU. Konkrétne sa znížilo zaťaženie CPU v hrách, ktoré aktívne využívajú oneskorené kontexty (napríklad hra Assassin’s Creed: Origins) alebo často volajú operáciu ClearState (napríklad hra God of War).
- Boli vykonané zmeny súvisiace so kompiláciou shaderov. Pri prítomnosti Vulkan ovládačov s podporou rozšírenia VK_EXT_graphics_pipeline_library bola implementovaná kompilácia shaderov Vulkan počas načítania shaderov D3D hrami, a nie počas vykresľovania, čo vyriešilo problémy so zadržiavaním spôsobené kompiláciou shaderov počas hry. Požadované rozšírenie je momentálne podporované len v proprietárnych ovládačoch NVIDIA, začínajúc verziou 520.56.06.
- V shaderoch D3D11 bola využitá pamäťová architektúra Vulkan.
- Obmedzenie počtu zdrojov, ktoré môžu byť priradené naraz, bolo odstránené.
- Boli odstránené problémy prejavujúce sa v hrách:
- Alan Wake
- Alice Madness Returns
- Anomaly: Warzone Earth
- Beyond Good and Evil
- Dragon Age Origins
- Empire: Total War
- Final Fantasy XV
- Grand Theft Auto IV
- Heroes Of Annihilated Empires
- Limit King Of Fighters XIII
- Metal Gear Solid V: Ground Zeroes
- SiN Episodes: Emergence
- Sonic Generations
- Spider Man
- The Ship
- Warhammer Online
- Ys Seven
Zdroj: opennet.ru
