Utgivelse av D9VK 0.40, Direct3D 9-implementering på toppen av Vulkan

fant sted prosjektutgivelse D9VK 0.40, som gir en Direct3D 9-implementering som fungerer ved å oversette kall til grafikk-API Vulkan. Prosjektet er basert på prosjektets kodebase DXVK, som er utvidet til å støtte Direct3D 9. Sammenlignet med den WineD3D-baserte Direct9D 3-implementeringen, oppnår D9VK bedre ytelse fordi Direct3D 9-oversettelse via OpenGL er tregere enn oversettelse via Vulkan.

D9VK kan brukes til å kjøre 3D-applikasjoner og spill på Linux ved hjelp av Wine. De fleste spill basert på Direct3D 9 som bruker versjon 2 eller 3 av Shader-modellen støttes. Prosjektkode distribuert av under den gratis Zlib-lisensen. D9VK krever drivere som støtter Vulkan API, slik som AMD RADV 18.3+, NVIDIA 415.22+, Intel ANV 19.0+ og AMDVLK.

Hovedforbedringer:

  • Muligheten til å bruke mer enn 4 GB videominne i 32-bits applikasjoner er implementert, noe som løste problemer ved lansering av mods for spillene Skyrim og Oblivion;
  • Asynkron behandling av visning av gjengivelsesresultatet på skjermen er aktivert (presentasjonsstadiet). For å redusere ventetiden på hovedgjengivelsestråden, utføres utdatabehandling i kommandoinnsendingstråden;
  • Fjernet unødvendige kommandoflytsynkroniseringspunkter ved henting av forespurte data;
  • Koden for å bestemme den interne tiden er oversatt til å bruke en plattformspesifikk timer, som hjalp til med å løse problemer med feil oppførsel til high_resolution_clock fra MinGW;
  • Lossing av utsatte buffere MANAGED og SYSTEMMEM er sikret på stadiet før utførelsen av PrepareDraw, som løste ytelsesproblemer i spillene Risen og Legend of the Heroes: Trails of the Sky;
  • Lagt til støtte D3DTA_CONSTANT, som gjorde det mulig å implementere korrekt gjengivelse glødeffekt i SpinTyres og Mudrunner-spill;
  • Forbedret kompatibilitet med DirectX 9Ex (D3D9Ex). Spesifikasjonene for behandling av ResetEx og Reset er tatt i betraktning;
  • Renset og refaktorisert kode;
  • Direkte kartlegging av WRITEONLY-buffere er gitt, noe som kan ha en positiv effekt på ytelsen og omgå en feil i spillet
    Counter-Strike: Global Offensive, som resulterer i fortsatt skriving til bufferen etter at den er låst opp;
  • Implementert metode SetDialogBoxMode, som lar deg bruke dialogbokser i fullskjermsapplikasjoner;
  • Støtte implementert blande hjørnerInkludert indeksert toppunktblanding, kreves for SWVP (SoftWare Vertex Processing);
  • Prøvetelleren, som vises på toppen av det gjeldende bildet (heads-up display, HUD), har blitt redesignet;
  • Lagt til alternativet d3d9.dialogBoxMode, som kan brukes til å deaktivere arbeid bare i fullskjermmodus;
  • Laget ytelsesoptimaliseringer og løste problemer som oppsto ved lansering av GTA-spill: 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 Hastighet: Carbon and Risen 1.

I tillegg kan det bemerkes intensjon prosjektutvikler DXVK (implementering av DXGI, Direct3D 10 og Direct3D 11 på toppen av Vulkan API) vil midlertidig fokusere innsatsen kun på feilrettinger, og bremse utvidelsen av funksjonalitet. Et lignende ønske forårsaket av bekymring for en reduksjon i kvaliteten på kodebasen og vanskeligere vedlikehold i fremtiden. Hver oppdatering til 1.4.x-grenen forårsaker klager på regressive endringer som ikke kan reproduseres, lokaliseres og fikses.

Disse problemene krever analyse av årsakene til at de oppstår, ellers kan det å forlate dem ukorrigert mens du fortsetter å øke funksjonaliteten bare forverre situasjonen og gjøre vedlikeholdsprosessen til et mareritt. Planene som DXVK-utvikleren har til hensikt å implementere før han bytter til bare feilrettingsmodus inkluderer å legge til støtte for noen nyttige Vulkan-utvidelser og slå sammen med utviklingen av D9VK-prosjektet.

Tillegg: varm på hælene dannet korrigerende utgivelse D9VK 0.40.1, der fikset satte vec4(1) til standardverdien for COLOR0 i vertex shaders, og fikset en feil der standard shader-utgangssporbitene ble brukt feil og derfor feilkorrigert av backend, noe som førte til at de ble erstattet av vec4(0).

Kilde: opennet.ru

Kjøp pålitelig hosting for nettsteder med DDoS-beskyttelse, VPS VDS-servere 🔥 Kjøp pålitelig webhotell med DDoS-beskyttelse, VPS VDS-servere | ProHoster