de release van het project , wat de implementatie van Direct3D 9 biedt, werkend via oproeptranslatie in de grafische API . Het project is gebaseerd op de codebasis van het project , dat is uitgebreid met ondersteuning voor Direct3D 9. In vergelijking met de implementatie van Direct3D 9 op basis van WineD3D, stelt D9VK gebruikers in staat om een hogere prestatie te bereiken, omdat de translatie van Direct3D 9 via OpenGL trager is dan de translatie via Vulkan.
D9VK kan worden gebruikt om 3D-applicaties en games in Linux uit te voeren met behulp van Wine. De meeste spellen gebaseerd op Direct3D 9, die gebruikmaken van Shader Model versie 2 of 3, worden ondersteund. De code van het project is onder de vrije Zlib-licentie. Het gebruik van D9VK vereist stuurprogramma's die Vulkan-API ondersteunen, zoals AMD RADV 18.3+, NVIDIA 415.22+, Intel ANV 19.0+ en AMDVLK.
Hoofdverbeteringen:
- De mogelijkheid is geïmplementeerd om meer dan 4 GB videogeheugen te gebruiken in 32-bits applicaties, wat problemen heeft opgelost bij het uitvoeren van mods voor de games Skyrim en Oblivion;
- Asynchrone verwerking van de uitvoerresultaten voor weergave op het scherm (presentatiefase) is ingeschakeld. Om de vertragingen in de hoofd renderingsstroom te verminderen, wordt de uitvoerverwerking uitgevoerd in de commando-indieningsstroom (command submission thread);
- Overbodige synchronisatiepunten van de commando-stroom zijn verwijderd bij het ophalen van aangevraagde gegevens;
- De code voor het bepalen van de interne tijd is omgezet naar het gebruik van een platform-specifieke timer, wat heeft geholpen om problemen met het onjuiste gedrag van high_resolution_clock uit MinGW op te lossen;
- De uitgestelde buffers MANAGED en SYSTEMMEM worden ontladen voordat PrepareDraw wordt uitgevoerd, wat prestatieproblemen in de games Risen en Legend of the Heroes: Trails of the Sky heeft opgelost;
- Ondersteuning toegevoegd voor , wat een correcte rendering mogelijk maakte in de games SpinTyres en Mudrunner;
- De compatibiliteit met (D3D9Ex) is verbeterd. De specifieke verwerking van ResetEx en Reset is in aanmerking genomen;
- De code is opgeschoond en gerefactored;
- Er is een directe mapping voor WRITEONLY-buffers geïmplementeerd, wat positief kan bijdragen aan de prestaties en een fout in de game
Counter-Strike: Global Offensive, die leidde tot het blijven schrijven naar de buffer na de ontgrendeling, heeft omzeild; - Een methode is geïmplementeerd , wat het gebruik van dialoogvensters in fullscreen-applicaties mogelijk maakt;
- Ondersteuning voor , inclusief , dat nodig is voor SWVP (SoftWare Vertex Processing);
- De sampler-teller die bovenop het huidige beeld wordt weergegeven (heads-up display, HUD) is herwerkt;
- De optie d3d9.dialogBoxMode is toegevoegd, die kan worden gebruikt om alleen de modus voor de volledige scherm te deactiveren;
- Prestaties zijn geoptimaliseerd en problemen zijn opgelost die zich voordoen bij het starten van de games 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 en Risen 1.
Daarnaast kan worden vermeld projectontwikkelaar (implementatie van DXGI, Direct3D 10 en Direct3D 11 bovenop de Vulkan API) om tijdelijk de inspanningen te concentreren op het oplossen van bugs, waarbij de uitbreiding van functionaliteit wordt vertraagd. Dit verlangen komt voort uit bezorgdheid over de afname van de kwaliteit van de codebasis en de complicatie van het onderhoud in de toekomst. Elke update van de 1.4.x tak leidt tot klachten over regressieve veranderingen die niet kunnen worden gereproduceerd, gelokaliseerd of opgelost.
Deze problemen vereisen inzicht in de oorzaken van hun optreden; anders kan het laten voortbestaan van onopgeloste problemen tijdens de verdere uitbreiding van functionaliteit de situatie alleen maar verergeren en het onderhoud een nachtmerrie maken. Onder de plannen die de DXVK-ontwikkelaar van plan is uit te voeren voordat hij overgaat op de bugfix-modus, is het toevoegen van ondersteuning voor enkele nuttige Vulkan-extensies en het fuseren met de ontwikkelingen van het D9VK-project.
Aanvulling: op hete voeten de correctie-uitgave D9VK 0.40.1, waarin de standaardwaarde voor COLOR0 in vertexshaders is vec4(1) geworden en de fout is verholpen waardoor de bits voor de shader-uitgangen standaard onjuist werden toegepast en dus foutief werden gecorrigeerd door de backend, wat hun vervanging door vec4(0) veroorzaakte.
Bron: opennet.ru
