projekti väljalaskmine , mis annab rakenduse Direct3D 9, mis töötab läbi kõnede tõlkimise graafika API-sse . Projekt põhineb koodibaasil, millel on , mis on laiendatud toetama Direct3D 9. Erinevalt Direct3D 9 rakendustest, mis põhinevad WineD3D-l, võimaldab D9VK saavutada kõrgemat jõudlust, kuna Direct3D 9 tõlkimine OpenGL-i kaudu on aeglasem kui Vulkan-i kaudu.
D9VK saab kasutada 3D-rakenduste ja mängude käivitamiseks Linuxis koos Wine-iga. Toetatakse suurema osa Direct3D 9-põhiste mängude, mis kasutavad 2. või 3. Shader Model versiooni, käivitamist. Projekti kood on avatud Zlib litsentsi all. D9VK kasutamiseks on vajalik, et oleksid olemas Vulkan API toetavad draiverid, nagu AMD RADV 18.3+, NVIDIA 415.22+, Intel ANV 19.0+ ja AMDVLK.
Peamised parandused:
- On rakendatud üle 4 GB videomälu kasutamise võimalus 32-bitistes rakendustes, mis lahendas probleemid mängude Skyrim ja Oblivion modifikatsioonide käivitamisel;
- Ainult asünkroonne renderdamise tulemuse edastamine ekraanile (presentation). Viivituste vähendamiseks peamise renderdamise lõimes toimub edastamise töötlemine käskude esitamise lõimes;
- Eemaldatud liigsed sünkroniseerimise punktid käskude lõimes, kui küsitakse andmeid;
- Kood sisemise aja määramiseks on tõlgitud platvormile spetsiifilise ajamõõturi kasutamisele, mis aitas lahendada probleeme high_resolution_clock'iga MinGW-st;
- Tagatud on ootel olevate MANAGED ja SYSTEMMEM vahemike tühjendamine enne PrepareDraw'i etappi, mis lahendas Risen ja Legend of the Heroes: Trails of the Sky mängudes esinevad jõudlusprobleemid;
- Lisatud tugi , mis võimaldas korrektset renderdamist mängudes SpinTyres ja Mudrunner;
- Parandatud ühilduvus (D3D9Ex). Arvesse on võetud ResetEx ja Reset töötlemise eripära;
- Teostatud koodi puhastamine ja refactoring;
- Tagatud on otsemapping WRITEONLY vahemikele, mis võib positiivselt mõjutada jõudlust ja ületada vea mängus
Counter-Strike: Global Offensive, mis põhjustab vahemiku jätkuva kirjutamise pärast selle lukutamise lõpetamist; - Rakendatud on meetod , mis võimaldab kasutada dialooge täisekraanirakendustes;
- Toetuse rakendamine , sealhulgas , vajalik SWVP (SoftWare Vertex Processing) jaoks;
- Korrigeeritud on näidatud proovide arvesti, mis kuvatakse praeguse pildi kohal (heads-up display, HUD);
- Lisatud on valik d3d9.dialogBoxMode, mida saab kasutada ainult täisekraani režiimi keelamiseks;
- Tehtud on jõudlusoptimeerimised ja lahendatud probleemid, mis ilmnesid mängude käivitamisel 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 ja Risen 1.
Lisaks saab märkida projekti arendaja (DXGI, Direct3D 10 ja Direct3D 11 rakendamine Vulkan API peal) on otsustanud, et keskendub ainult vigade parandamisele, katkestades funktsionaalsuse laiendamise. Selline soov on seotud hirmudega koodibaasi kvaliteedi languse ja hoolduse keerukuse osas tulevikus. Iga 1.4.x haru värskendus toob kaebusi regressiivsete muutuste kohta, mida ei õnnestu paljastada, lokaliseerida ja kõrvaldada.
Need probleemid nõuavad põhjuste analüüsimist, vastasel juhul võivad need jääda parandamata ning jätkuv funktsionaalsuse arendamine võib olukorda vaid halvendada ja hooldussüsteemi košmaarsena muuta. Plaanidest, mida DXVK arendaja plaanib ellu viia enne vigade korrigeerimise režiimi, on mõned kasulikud Vulkan laienduste toed ja D9VK projekti arengutega liitumine.
Lisainfo: kuumad jäljed korrektsiooniversioon D9VK 0.40.1, milles väärtust vec4(1) DEFAULT COLOR0 jaoks vertex shaderites ja kõrvaldati viga, mis põhjustas shaderi väljundslotide bitide vale rakendamise ja seega vale parandamise backend'i poolt, muutes need vec4(0) jaoks.
Allikas: opennet.ru
