Release av D9VK 0.40, Direct3D 9-implementering ovanpå Vulkan

tog plats projekt release D9VK 0.40, som tillhandahåller en Direct3D 9-implementering som fungerar genom att översätta anrop till grafik-API Vulkan. Projektet bygger på projektets kodbas DXVK, som har utökats för att stödja Direct3D 9. Jämfört med den WineD3D-baserade Direct9D 3-implementeringen, uppnår D9VK bättre prestanda eftersom Direct3D 9-översättning via OpenGL är långsammare än översättning via Vulkan.

D9VK kan användas för att köra 3D-applikationer och spel i Linux med Wine. De flesta Direct3D 9-spel som använder Shader Model 2 eller 3 stöds. Projektkod levererad av under den fria Zlib-licensen. D9VK kräver drivrutiner som stöder Vulkan API, såsom AMD RADV 18.3+, NVIDIA 415.22+, Intel ANV 19.0+ och AMDVLK.

Huvudsakliga förbättringar:

  • Möjligheten att använda mer än 4 GB videominne i 32-bitars applikationer har implementerats, vilket löste problem vid lansering av moddar för spelen Skyrim och Oblivion;
  • Asynkron bearbetning av visning av renderingsresultatet på skärmen är aktiverad (presentationsstadiet). För att minska latensen på huvudrenderingstråden utförs utdatabearbetning i kommandotråden;
  • Tog bort onödiga kommandoflödessynkroniseringspunkter vid hämtning av begärd data;
  • Koden för att bestämma den interna tiden har översatts till att använda en plattformsspecifik timer, som hjälpte till att lösa problem med det felaktiga beteendet hos high_resolution_clock från MinGW;
  • Avlastning av uppskjutna buffertar MANAGED och SYSTEMMEM säkerställs i skedet före körningen av PrepareDraw, som löste prestandaproblem i spelen Risen och Legend of the Heroes: Trails of the Sky;
  • Lagt till stöd D3DTA_CONSTANT, vilket gjorde det möjligt att implementera korrekt rendering glödeffekt i SpinTyres och Mudrunner-spel;
  • Förbättrad kompatibilitet med DirectX 9Ex (D3D9Ex). Detaljerna för bearbetning av ResetEx och Reset beaktas;
  • Rensad och refaktorerad kod;
  • Direkt mappning av WRITEONLY-buffertar tillhandahålls, vilket kan ha en positiv effekt på prestandan och kringgå en bugg i spelet
    Counter-Strike: Global Offensive, vilket resulterar i fortsatt skrivning till bufferten efter att den har låsts upp;
  • Metod implementerad SetDialogBoxMode, som låter dig använda dialogrutor i helskärmsprogram;
  • Support implementerat blandning av hörnInklusive indexerad vertexblandning, krävs för SWVP (SoftWare Vertex Processing);
  • Samplingsräknaren, som visas ovanpå den aktuella bilden (heads-up display, HUD), har gjorts om;
  • Lade till alternativet d3d9.dialogBoxMode, som kan användas för att inaktivera arbete endast i helskärmsläge;
  • Gjorde prestandaoptimeringar och löste problem som uppstod när GTA-spel lanserades: 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.

Dessutom kan det noteras avsikt projektutvecklare DXVK (implementering av DXGI, Direct3D 10 och Direct3D 11 ovanpå Vulkan API) kommer tillfälligt att fokusera ansträngningarna endast på buggfixar, vilket saktar ner utbyggnaden av funktionalitet. En liknande önskan orsakad av oro för en sämre kvalitet på kodbasen och svårare underhåll i framtiden. Varje uppdatering av 1.4.x-grenen orsakar klagomål om regressiva ändringar som inte kan reproduceras, lokaliseras och åtgärdas.

Dessa problem kräver analys av orsakerna till att de uppstår, annars kan det bara förvärra situationen och göra underhållsprocessen till en mardröm om de inte korrigeras samtidigt som de fortsätter att öka funktionaliteten. Planerna som DXVK-utvecklaren avser att implementera innan han byter till endast buggfixningsläge inkluderar att lägga till stöd för några användbara Vulkan-tillägg och slås samman med utvecklingen av D9VK-projektet.

Tillägg: het på hälarna bildas korrigerande utgåva D9VK 0.40.1, i vilken fast ställ in vec4(1) till standardvärdet för COLOR0 i vertex shaders, och fixade en bugg där standard shader output slot bitar applicerades felaktigt och därför felaktigt korrigerades av backend, vilket gjorde att de ersattes av vec4(0).

Källa: opennet.ru

Köp pålitlig hosting för webbplatser med DDoS-skydd, VPS VDS-servrar 🔥 Köp pålitlig webbhotell med DDoS-skydd, VPS VDS-servrar | ProHoster