A fost lansată versiunea DXVK 2.0, care oferă o implementare DXGI (DirectX Graphics Infrastructure), Direct3D 9, 10 și 11, funcționând printr-o translație a apelurilor în API Vulkan. Pentru a utiliza DXVK, este necesar să aveți drivere care suportă API Vulkan 1.3, cum ar fi Mesa RADV 22.0, NVIDIA 510.47.03, Intel ANV 22.0 și AMDVLK. DXVK poate fi folosit pentru a rula aplicații și jocuri 3D în Linux folosind Wine, reprezentând o alternativă mai performantă la implementările Direct3D 9/10/11 incluse în Wine, care funcționează pe baza OpenGL.
Modificări principale:
- Cerințele pentru versiunea API-ul grafic Vulkan au fost crescute - acum este necesar un driver care suportă Vulkan 1.3 (anterior era necesar Vulkan 1.1), ceea ce a permis implementarea de noi caracteristici legate de compilarea shaderelor. Practic, DXVK 2.0 poate fi rulat pe orice sistem care suportă utilizarea pachetului Proton Experimental pentru a rula jocuri bazate pe D3D11 și D3D12. Pentru a funcționa winevulkan este necesar cel puțin Wine 7.1.
- A fost adoptat codul proiectului dxvk-native, care permite crearea de build-uri native DXVK pentru Linux (nelinkate de Wine), care pot fi folosite nu doar pentru a rula aplicații Windows, ci și în aplicații Linux obișnuite, ceea ce poate fi util pentru crearea de porturi de jocuri pentru Linux fără a modifica codul de redare bazat pe D3D.
- Suportul pentru Direct3D 9 a fost extins, incluzând îmbunătățiri în gestionarea memoriei (fișierele reflectate în memorie sunt folosite pentru a stoca copii ale texturilor), implementând suportul pentru citirea corectă din zonele active de redare (rezolvând problemele cu apariția artefactelor în timpul jocului GTA IV) și revizuind implementarea verificării transparenței.
- Pentru Direct3D 10, livrarea bibliotecilor d3d10.dll și d3d10_1.dll a fost oprită, deoarece acestea nu erau instalate implicit din cauza existenței unei implementări mai avansate a D3D10 în wine. Totuși, suportul pentru API-ul D3D10 a continuat în biblioteca d3d10core.dll.
- Suportul pentru Direct3D 11 a fost dus la nivelul funcționalității 12_1 (D3D11 Feature Level), iar pentru atingerea acestuia au fost implementate caracteristici precum resursele mozaicate (Tiled Resources), rasterizarea conservativă (Conservative Rasterization) și redarea ordonată în rasterizator (Rasterizer Ordered Views).
- Implementarea interfeţei ID3D11DeviceContext a fost refăcută pentru a se apropia mai mult de comportamentul său din Windows, reprezentând contextul dispozitivului care generează comenzi de randare. Revizuirea a îmbunătăţit compatibilitatea cu bibliotecile externe şi a redus încărcătura pe CPU. În special, a fost redusă încărcătura pe CPU în jocurile care folosesc activ contexte amânate (de exemplu, jocul Assassin’s Creed: Origins) sau care apelează frecvent la operaţia ClearState (de exemplu, jocul God of War).
- Au fost aduse modificări legate de compilarea shader-elor. În prezenţa driverelor Vulkan care suportă extensia VK_EXT_graphics_pipeline_library, compilarea shader-elor Vulkan se realizează în timpul încărcării shader-elor D3D de către jocuri, nu în timpul randării, ceea ce a rezolvat problemele de blocare cauzate de compilarea shader-elor în timpul jocului. Extensia necesară este acceptată în prezent doar în driverele proprietare NVIDIA, începând cu versiunea 520.56.06.
- În shader-urile D3D11 este utilizată modelul de memorie Vulkan.
- Limitarea numărului de resurse care pot fi legate simultan a fost eliminată.
- Problemele apărute în jocuri au fost remediate:
- 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
Sursa: opennet.ro
