lëshimin e projektit , duke ofron zbatimin e Direct3D 9, që funksionon përmes përkthimit të thirrjeve në API grafik . Projekti bazohet në kodin burimor të projektit , i cili është zgjeruar me mbështetje për Direct3D 9. Krahasuar me zbatimin e Direct3D 9 mbi WineD3D, D9VK ofron performancë më të lartë, pasi përkthimi i Direct3D 9 përmes OpenGL funksionon më ngadalë se ai përmes Vulkan.
D9VK mund të përdoret për të nisur aplikacione dhe lojëra 3D në Linux duke përdorur Wine. Mbështetet nisja e shumicës së lojërave të bazuara në Direct3D 9, që përdorin versionin 2 ose 3 të Shader Model. Kodi i projektit nën licencën e lirë Zlib. Për të përdorur D9VK kërkohet të keni shoferë me mbështetje për API Vulkan, si AMD RADV 18.3+, NVIDIA 415.22+, Intel ANV 19.0+ dhe AMDVLK.
Përmirësimet kryesore:
- Implementohet mundësia e përdorimit të mbi 4 GB memorie video në aplikacione 32-bit, duke zgjidhur problemet gjatë nisjes së modifikimeve në lojërat Skyrim dhe Oblivion;
- Përfshihet përpunimi asinkron i rezultatit të renderimit në ekran (faza e paraqitjes). Për të zvogëlur vonesat në rrjedhën kryesore të renderimit, përpunimi i daljes realizohet në rrjedhën e dorëzimit të komandave (command submission thread);
- Janë eliminuar piketat e tepërta të sinkronizimit në rrjedhën e komandave gjatë nxjerrjes së të dhënave të kërkuara;
- Kodi për përcaktimin e kohës së brendshme është kthyer për përdorimin e një timeri specifik për platformën, i cili ndihmoi në zgjidhjen e problemeve me sjelljen e pasaktë të high_resolution_clock nga MinGW;
- Garantuar shkarkimi i bufeve të vonuara MANAGED dhe SYSTEMMEM në fazën përpara ekzekutimit të PrepareDraw, duke zgjidhur problemet me performancën në lojërat Risen dhe Legend of the Heroes: Trails of the Sky;
- Shtuar mbështetje , që mundësoi implementimin e renderimit të saktë në lojërat SpinTyres dhe Mudrunner;
- Përmirësuar përputhshmëria me (D3D9Ex). U mor në konsideratë specifika e përpunimit ResetEx dhe Reset;
- Kërkuar pastrimi dhe ristrukturimi i kodit;
- Garantuar mapimin direkt të bufeve WRITEONLY, që mund të ndikojë pozitivisht në performancë dhe të kalojë gabimin në lojën
Counter-Strike: Global Offensive, që çon në vazhdimin e regjistrimit në buffered pas çlirimit të tij; - Implementohet metoda , duke mundësuar përdorimin e kutive të dialogut në aplikacione me ekran të plotë;
- Implementuar mbështetje për , përfshirë , e nevojshme për SWVP (SoftWare Vertex Processing);
- Rindërtohet numëruesi i mostrave, i shfaqur sipër imazhit aktual (heads-up display, HUD);
- Shto është shtuar opsioni d3d9.dialogBoxMode, i cili mund të përdoret për të çaktivizuar funksionimin vetëm në modalitetin në ekran të plotë;
- Janë bërë optimizime të performancës dhe janë zgjidhur probleme që shfaqen gjatë lançimit të lojërave 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 dhe Risen 1.
Gjithashtu mund të theksohet zhvilluesi i projektit (implementimi i DXGI, Direct3D 10 dhe Direct3D 11 mbi API Vulkan) për të përqendruar përkohësisht përpjekjet vetëm në riparimin e gabimeve, duke ngadalësuar zgjerimin e funksionalitetit. Një dëshirë e tillë nga shqetësimet për uljen e cilësisë së kodit dhe komplikuar mbështetje në të ardhmen. Çdo përditësim i degës 1.4.x shkakton ankesa për ndryshimet regresive që nuk mund të riprodhohen, lokalizohen dhe zgjidhen.
Këto probleme kërkojnë një analizë të shkakut të shfaqjes së tyre, nd otherwise lënia e tyre pa u riparuar gjatë vazhdimit të zgjerimit të funksionalitetit mund vetëm të përkeqësojë situatën dhe ta shndërrojë procesin e mbështetjes në një makth. Nga planet që zhvilluesi i DXVK ka për të realizuar para kalimit në modin vetëm për riparim gabimesh, përmendet shtimi i mbështetjes për disa zgjerime të dobishme të Vulkan dhe bashkimi me punimet e projektit D9VK.
Shtesë: në gjurmët e ngjarjeve lëshimi korrigjues D9VK 0.40.1, në të cilin në vec4(1) vlera parazgjedhje për COLOR0 në shenjat e vertex dhe u eliminua gabimi, për shkak të të cilit bitët e slotëve për daljet e shenjës parazgjedhje u aplikuan gabimisht dhe, si pasojë, u rregulluan gabimisht nga backend-i, duke shkaktuar zëvendësimin e tyre me vec4(0).
Burimi: opennet.ru
