Lansarea DXVK 3.0

După șase luni de dezvoltare, a fost lansată o versiune nouă a DXVK (Stratul de traductie Direct3D în Vulkan), o bibliotecă deschisă care transformă apelurile API Direct3D 8, 9, 10 și 11 în comenzi Vulkan. Aceasta permite rularea aplicațiilor și jocurilor 3D, dezvoltate pentru Windows, pe sisteme unde suportul nativ pentru Direct3D lipseste, folosind totodată capacitățile unui API grafic Vulkan mai eficient.

Principalele modificări
Noua versiune a adoptat utilizarea specificațiilor și extensiilor Vulkan 1.4, ceea ce va necesita un driver compatibil.

DXVK folosește acum dxbc-spirv pentru compilarea shaderelor pentru toate modelele de shader acceptate. Acest lucru rezolvă o serie de probleme care anterior erau imposibil de rezolvat:
Probleme de randare în jocuri, cauzate fie de faptul că jocurile se bazează pe comportamente nedefinite, fie că FXC generează în anumite cazuri cod invalid, ca în Postal: Brain Damaged, Snowrunner.
Codul generat este mai compact decât codul SPIR-V pur și simplu transformat, ceea ce reduce semnificativ volumul de memorie ocupat de DXVK. În jocuri precum Overwatch sau God of War, aceasta permite economisirea a aproximativ 1GB de memorie de sistem.
Compilarea shaderelor a fost acum complet mutată pe fire de execuție, ceea ce poate reduce timpul de pornire în jocuri precum Days Gone și Final Fantasy XIV sau, în unele cazuri, poate diminua lag-urile. Anterior, DXVK efectua traducerea SPIR-V în firul aplicației și compila doar pipe-urile reale Vulkan pe firele de lucru.
Reprezentarea intermediară a shaderelor compilate de DXVK este acum cache-ată pe disc în directorul AppData/Local al actualului prefix Wine. Acest lucru este necesar, deoarece timpul de compilare a crescut în comparație cu vechiul compilator. Calea către cache poate fi modificată prin variabila de mediu DXVK_SHADER_CACHE_PATH.

Noua extensie Vulkan VK_EXT_descriptor_heap este acum utilizată implicit în driverele care o suportă.
Se așteaptă ca, în comparație cu vechea implementare a modelului de legare, bazată pe VK_EXT_descriptor_buffer, acest nou model să ofere aproximativ același nivel de performanță legat de CPU, evitând în același timp degradarea performanței pe GPU-uri Nvidia (sunt necesare driverele nvidia-595.84 și mai recente).
Modificările D3D9
Pentru a emula un pipeline învechit cu funcții fixe, care permite jocurilor D3D8 și D3D9 să efectueze randare fără shader-e, DXVK genera anterior propriul cod de shader-uri în timpul rulării, bazat pe starea pipeline-ului. În unele jocuri, cum ar fi Unreal Tournament 2004, aceasta putea duce la întârzieri notabile chiar și după perioade lungi de gameplay.

Pentru a remedia această problemă, DXVK implementează acum pipeline-ul cu funcții fixe sub forma a două ubershader-e, pentru care variantele optimizate sunt compilate în fundal.
Optimizarea încărcării buffer-ului
Pentru a se conforma mai exact comportamentului Windows, diferitele tipuri de buffer care anterior erau plasate direct în VRAM, sunt acum încărcate la cerere, iar o strategie de limitare a volumului de memorie RAM a fost implementată, care corectează crash-urile legate de spațiul de adresare în mai multe jocuri D3D9 pe 32 de biți.
Aceste modificări pot, de asemenea, să îmbunătățească performanța pe sistemele fără dimensiune BAR ajustabilă în jocuri precum GTA IV.

Pe sistemele care suportă suficient VK_EXT_sample_locations și VK_EXT_extended_dynamic_state3, starea de randare D3DRS_MULTISAMPLEANTIALIAS funcționează acum corect, permițând aplicațiilor să folosească rasterizarea cu o singură eșantionare atunci când se face randare în obiecte țintă cu mai multe eșantioane. Aceasta elimină problemele de randare a interfeței utilizatorului în Anno 1701, Men of War Assault Squad și probleme similare în alte jocuri cu MSAA activat.

Resursele comune funcționează acum cu implementarea originală Wine și nu mai necesită corecții specifice Proton.

De asemenea, merită menționat numeroaselor corecții pentru jocuri diferite, care acum vor funcționa mai bine.

Sursa: linux.org.ru

Cumpără un hosting fiabil pentru site-uri cu protecție DDoS, servere VPS VDS 🔥 Cumpără un hosting fiabil pentru site-uri cu protecție DDoS, servere VPS VDS | ProHoster