Uitgave van D9VK 0.40, Direct3D 9-implementatie bovenop Vulkan

vond plaats projectuitgave D9VK 0.40, dat een Direct3D 9-implementatie biedt die werkt door oproepen naar de grafische API te vertalen Vulkan. Het project is gebaseerd op de codebase van het project DXVK-extensie, dat is uitgebreid ter ondersteuning van Direct3D 9. Vergeleken met de op WineD3D gebaseerde Direct9D 3-implementatie behaalt D9VK betere prestaties omdat Direct3D 9-vertaling via OpenGL langzamer is dan vertaling via Vulkan.

D9VK kan worden gebruikt om 3D-applicaties en games op Linux uit te voeren met behulp van Wine. De meeste games gebaseerd op Direct3D 9 met versie 2 of 3 van het Shader Model worden ondersteund. Projectcode gedistribueerd door onder de gratis Zlib-licentie. D9VK vereist stuurprogramma's die de Vulkan API ondersteunen, zoals AMD RADV 18.3+, NVIDIA 415.22+, Intel ANV 19.0+ en AMDVLK.

Belangrijkste verbeteringen:

  • De mogelijkheid om meer dan 4 GB videogeheugen te gebruiken in 32-bits applicaties is geïmplementeerd, waardoor problemen zijn opgelost bij het starten van mods voor de games Skyrim en Oblivion;
  • Asynchrone verwerking van het weergeven van het weergaveresultaat op het scherm is ingeschakeld (presentatiefase). Om de latentie op de hoofdrenderingthread te verminderen, wordt de uitvoerverwerking uitgevoerd in de opdrachtindieningsthread;
  • Onnodige synchronisatiepunten voor de opdrachtstroom verwijderd bij het ophalen van gevraagde gegevens;
  • De code voor het bepalen van de interne tijd is vertaald om een ​​platformspecifieke timer te gebruiken, die heeft geholpen bij het oplossen van problemen met het onjuiste gedrag van de hoge_resolutie_klok van MinGW;
  • Het lossen van uitgestelde buffers MANAGED en SYSTEMMEM wordt verzekerd in de fase vóór de uitvoering van PrepareDraw, waarmee prestatieproblemen in de games Risen en Legend of the Heroes: Trails of the Sky werden opgelost;
  • Ondersteuning toegevoegd D3DTA_CONSTANT, wat het mogelijk maakte om correcte weergave te implementeren glanseffect in SpinTyres- en Mudrunner-spellen;
  • Verbeterde compatibiliteit met DirectX9Ex (D3D9Ex). Er wordt rekening gehouden met de specifieke kenmerken van de verwerking van ResetEx en Reset;
  • Code opgeschoond en opnieuw bewerkt;
  • Er is directe mapping van WRITEONLY-buffers beschikbaar, wat een positief effect op de prestaties kan hebben en een bug in het spel kan omzeilen
    Counter-Strike: Global Offensive, resulterend in doorgaan met schrijven naar de buffer nadat deze is ontgrendeld;

  • Geïmplementeerde methode Stel DialogBoxMode in, waarmee u dialoogvensters kunt gebruiken in toepassingen op volledig scherm;
  • Ondersteuning geïmplementeerd samenvloeiende hoekpuntenInclusief geïndexeerde hoekpuntmenging, vereist voor SWVP (SoftWare Vertex Processing);
  • De samplerteller, weergegeven bovenop het huidige beeld (heads-up display, HUD), is opnieuw ontworpen;
  • Optie d3d9.dialogBoxMode toegevoegd, die kan worden gebruikt om het werken in volledig schermmodus uit te schakelen;
  • Prestatie-optimalisaties doorgevoerd en problemen opgelost die optraden bij het lanceren van GTA-games: 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 Snelheid: Koolstof en Risen 1.

Bovendien kan worden opgemerkt voornemen projectontwikkelaar DXVK-extensie (een implementatie van DXGI, Direct3D 10 en Direct3D 11 bovenop de Vulkan API) zal de inspanningen tijdelijk uitsluitend richten op het oplossen van bugs, waardoor de uitbreiding van de functionaliteit wordt vertraagd. Een soortgelijk verlangen veroorzaakt door zorgen over een afname van de kwaliteit van de codebasis en moeilijker onderhoud in de toekomst. Elke update van de 1.4.x-tak veroorzaakt klachten over regressieve veranderingen die niet kunnen worden gereproduceerd, gelokaliseerd en opgelost.

Deze problemen vereisen analyse van de redenen waarom ze zich voordoen, anders kan het ongecorrigeerd laten ervan terwijl de functionaliteit blijft toenemen de situatie alleen maar verergeren en het onderhoudsproces in een nachtmerrie veranderen. De plannen die de DXVK-ontwikkelaar wil implementeren voordat hij overschakelt naar de modus voor alleen het oplossen van bugs, omvatten het toevoegen van ondersteuning voor enkele nuttige Vulkan-extensies en het samenvoegen met de ontwikkelingen van het D9VK-project.

Toevoeging: heet op de hielen gevormd corrigerende release D9VK 0.40.1, waarin gemaakt stel vec4(1) in op de standaardwaarde voor COLOR0 in vertex shaders, en repareer een bug waarbij de standaard shader uitvoerslotbits onjuist werden toegepast en daarom onjuist gecorrigeerd door de backend, waardoor ze werden vervangen door vec4(0).

Bron: opennet.ru

Voeg een reactie