Lansarea D9VK 0.40, implementarea Direct3D 9 peste Vulkan

A avut loc versiunea proiectului D9VK 0.40, care oferă o implementare Direct3D 9, care funcționează prin traducerea apelurilor în API-ul grafic Vulkan. Proiectul se bazează pe baza de cod a proiectului DXVK, care a fost extinsă cu suport pentru Direct3D 9. Spre deosebire de implementarea Direct3D 9 bazată pe WineD3D, D9VK permite obținerea unei performanțe mai ridicate, deoarece traducerea Direct3D 9 prin OpenGL funcționează mai lent decât traducerea prin Vulkan.

D9VK poate fi folosit pentru a rula aplicații 3D și jocuri pe Linux prin Wine. Este suportat rularea majorității jocurilor bazate pe Direct3D 9, folosind versiunea 2 sau 3 a Shader Model. Codul proiectului se răspândește este sub licență liberă Zlib. Pentru a utiliza D9VK, este necesar să existe drivere care suportă API Vulkan, cum ar fi AMD RADV 18.3+, NVIDIA 415.22+, Intel ANV 19.0+ și AMDVLK.

Îmbunătățiri principale:

  • S-a implementat posibilitatea de a folosi mai mult de 4 GB de memorie video în aplicații de 32 de biți, ceea ce a rezolvat problemele la rularea modurilor în jocurile Skyrim și Oblivion;
  • A fost inclusă procesarea asincronă a rezultatelor redării pe ecran (etapa de prezentare). Pentru a reduce întârzierile în firul principal de redare, procesarea ieșirii se realizează în firul de transmisie a comenzilor;
  • Au fost eliminate punctele de sincronizare inutile din firul de comenzi la extragerea datelor solicitate;
  • Codul pentru determinarea timpului intern a fost transformat pentru a utiliza un temporizator specific platformei, ceea ce a ajutat la rezolvarea problemelor cu comportamentul incorect al high_resolution_clock din MinGW;
  • A fost asigurată descărcarea bufferelor amânate MANAGED și SYSTEMMEM înainte de a efectua PrepareDraw, ceea ce a rezolvat problemele de performanță în jocurile Risen și Legend of the Heroes: Trails of the Sky;
  • A fost adăugat suport pentru D3DTA_CONSTANT, care a permis realizarea redării corecte a efectului de strălucire în jocurile SpinTyres și Mudrunner;
  • S-a îmbunătățit compatibilitatea cu DirectX 9Ex (D3D9Ex). S-au luat în considerare specificitățile tratării ResetEx și Reset;
  • Au fost efectuate curățări și refactorizări de cod;
  • A fost asigurat mapparea directă a bufferelor WRITEONLY, ceea ce poate influența pozitiv performanța și ocolește o eroare din jocul
    Counter-Strike: Global Offensive, care duce la continuarea scrierii în buffer după ce acesta a fost deblocat;
  • A fost implementată metoda SetDialogBoxMode, care permite utilizarea ferestrelor de dialog în aplicații pe ecran complet;
  • Suport implementat amestecării vârfurilor, inclusiv amestecarea vârfurilor indexate, necesară pentru SWVP (SoftWare Vertex Processing);
  • A fost refăcut contorul sampler-ului, afișat deasupra imaginii curente (heads-up display, HUD);
  • A fost adăgată opțiunea d3d9.dialogBoxMode, care poate fi folosită pentru a dezactiva funcționarea doar în modul ecran complet;
  • Au fost realizate optimizări ale performanței și s-au rezolvat problemele întâmpinate la lansarea jocurilor GTA: San Andreas, The Masquerade Bloodlines, Max Payne 2, The Sims 2, Silent Hunter 3, Senran Kagura Shinovi, Dungeons and Dragons, Crysis, Metal Slug X, ANGLE, Need for Speed: Carbon și Risen 1.

apariția intenția dezvoltatorul proiectului DXVK (implementarea DXGI, Direct3D 10 și Direct3D 11 pe deasupra API-ului Vulkan) să-și concentreze eforturile doar pe corectarea erorilor, încetinind extinderea funcționalității. O astfel de dorință este cauzată de temerile privind scăderea calității bazei de cod și complicarea întreținerii în viitor. Fiecare actualizare a ramurii 1.4.x generează plângeri legate de modificări regresive care nu pot fi reproduse, localizate și corectate.

Aceste probleme necesită analiza cauzelor apariției lor, altfel lăsarea lor nerezolvate în continuarea extinderii funcționalității poate agrava situația și transforma procesul de întreținere într-un coșmar. Printre planurile pe care dezvoltatorul DXVK intenționează să le implementeze înainte de a trece în modul de corectare a erorilor se numără adăugarea suportului pentru câteva extensii utile Vulkan și fuziunea cu realizările proiectului D9VK.

Adăugire: pe urma căldoroasă a fost format a fost lansată versiunea corectivă D9VK 0.40.1, în care a fost corectat valoarea implicită pentru COLOR0 în shader-urile de vârf la vec4(1) și a fost rezolvată o eroare din cauza căreia biții sloturilor pentru ieșirile shader-ului erau aplicate greșit, și, prin urmare, erau corectate incorect de backend, provocându-le înlocuirea cu vec4(0).

Sursa: opennet.ro

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