Bylo vydáno nové rozhraní DXVK 2.0, které poskytuje implementaci DXGI (DirectX Graphics Infrastructure), Direct3D 9, 10 a 11, pracující prostřednictvím překladu volání do API Vulkan. Pro použití DXVK jsou zapotřebí ovladače podporující API Vulkan 1.3, jako jsou Mesa RADV 22.0, NVIDIA 510.47.03, Intel ANV 22.0 a AMDVLK. DXVK lze použít pro spouštění 3D aplikací a her v Linuxu pomocí Wine jako vysoce výkonnou alternativu k vestavěným implementacím Direct3D 9/10/11 na platformě OpenGL.
Hlavní změny:
- Byly zvýšeny požadavky na verzi grafického API Vulkan – nyní je pro funkčnost vyžadován ovladač s podporou Vulkan 1.3 (dříve byl vyžadován Vulkan 1.1), což umožnilo implementaci podpory nových funkcí spojených s kompilací shaderů. Ve skutečnosti lze DXVK 2.0 spustit na jakémkoli systému, který podporuje použití balíčku Proton Experimental pro spuštění her založených na D3D11 a D3D12. Pro funkčnost winevulkan je zapotřebí alespoň Wine 7.1.
- Byl přijat kód projektu dxvk-native, který umožňuje vytvářet nativní sestavení DXVK pro Linux (nepřipojené k Wine), jež lze použít nejen pro spuštění aplikací Windows, ale také v běžných aplikacích Linuxu, což může být užitečné pro vytváření portů her pro Linux bez změny kódu vykreslování založeného na D3D.
- Byla rozšířena podpora Direct3D 9, včetně zlepšení správy paměti (pro ukládání kopií textur byly využity reflektované v paměti soubory), byla implementována podpora pro správné čtení z aktivních oblastí vykreslování (vyřešilo problémy s artefakty při hraní GTA IV) a byla přepracována implementace kontroly transparentnosti.
- Pro Direct3D 10 byla zastavena dodávka knihoven d3d10.dll a d3d10_1.dll, které se z vlastní vůle nezapracovaly kvůli tomu, že ve wine byla pokročilejší implementace D3D10. Přitom podpora API D3D10 byla zachována v knihovně d3d10core.dll.
- Podpora Direct3D 11 byla vyvedena na úroveň funkčnosti 12_1 (D3D11 Feature Level), pro její dosažení byly implementovány takové funkce, jako jsou dlaždicové zdroje (Tiled Resources), konzervativní rastrování (Conservative Rasterization) a uspořádané vykreslování v rastrovacím zařízení (Rasterizer Ordered Views).
- Přepracovaná a chovající se podobně jako Windows implementace rozhraní ID3D11DeviceContext, představující kontext zařízení, generující vykreslovací příkazy. Přepracování umožnilo zlepšit kompatibilitu s externími knihovnami a snížit zátěž na CPU. Konkrétně byla snížena zátěž na CPU ve hrách, které aktivně využívají odložené kontexty (například hra Assassin’s Creed: Origins) nebo často volají operaci ClearState (například hra God of War).
- Byly provedeny změny související s kompilací shaderů. Při přítomnosti Vulkan ovladačů s podporou rozšíření VK_EXT_graphics_pipeline_library byla implementována kompilace shaderů Vulkan během načítání hrami shaderů D3D, a ne během vykreslování, což vyřešilo problémy s zasekáváním způsobenými kompilací shaderů během hry. Požadované rozšíření v současnosti podporují pouze proprietární ovladače NVIDIA, počínaje verzí 520.56.06.
- Ve shaderech D3D11 je využita model paměti Vulkan.
- Bylo odstraněno omezení na počet zdrojů, které mohou být připojeny najednou.
- Byly odstraněny problémy, jež se projevovaly ve 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
