
D7VK 2.1 finns nu tillgänglig som en ny version av detta grafiköversättningslager med öppen källkod som gör det möjligt för äldre Windows-spel baserade på Direct3D 7, 6, 5 och 3 att köras på Vulkan. Efter de betydande prestandaförbättringarna som introducerades i tidigare versioner fokuserar den här uppdateringen mycket av sitt arbete på en annan aspekt: att minska spelets laddnings- och starttider . I vissa titlar halverar förbättringarna den tid som krävs för att ladda ett spel eller starta spelet.
D7VK är specifikt inriktat på klassiska spel som använder tidiga versioner av Direct3D och fortfarande kan köras på Linux med Wine eller Proton. Projektet använder Vulkan som backend för dessa äldre API:er, vilket fyller ett tomrum som inte direkt åtgärdas av moderna versioner av DXVK, som fokuserar på Direct3D 8, 9, 10 och 11, eller VKD3D-Proton, designat för Direct3D 12.
D7VK 2.1 snabbar upp laddningstiderna för klassiska spel
Den viktigaste nya funktionen i D7VK 2.1 är relaterad till skapande och förstörelse av objekt . Projektet har minskat kostnaden för att spåra livscykeln för dessa objekt, vilket minskar det arbete som krävs under spelets laddnings- och initialiseringsfaser.
Förändringen har en direkt effekt på uppstartstiderna. Enligt utvecklaren upplever flera titlar märkbara förbättringar, där vissa ser sina laddningstider minskade med hälften eller ännu mer jämfört med tidigare versioner av D7VK. Även om klassiska spel vanligtvis inte har betydande problem med laddningstiden på modern hårdvara, anser projektet att dessa optimeringar möjliggör bättre utnyttjande av tillgängliga resurser.
Förbättringar har också gjorts i cachningssystemet. Kombinationen av lägre kostnader för objektlivscykelhantering och effektivare cachebeteende minskar det arbete som D7VK måste utföra under programstart och vissa efterföljande operationer.
Det finns också viktiga kompatibilitetsförändringar
D7VK 2.1 optimerar inte bara laddningstiderna. Uppdateringen åtgärdar också ett problem med "use-after-free" relaterat till lanseringen av associerade djupstencilytor . Buggen uppstod bara med vissa binärfiler kompilerade med MSVC eller Clang och kunde orsaka att vissa spel kraschar oväntat under start.
En av de drabbade titlarna var Arx Fatalis , som kunde krascha vid uppstart. Fixen som ingår i D7VK 2.1 löser problemet och gör att spelet kan köras utan att stöta på just den buggen.
Uppdateringen innehåller även justeringar för specifika spel. Dessa inkluderar prestandaförbättringar för Resident Evil 2 och Empire Earth: The Art of Conquest , två klassiska titlar som kan dra nytta av arbetet som gjorts i den här versionen.
En ny valfri rutt för GetDC och ReleaseDC
En annan nyhet av D7VK 2.1 Det är en valfri exekveringsväg för anrop GetDC y ReleaseDCMålet är att förbättra prestandan för vissa spel som använder dessa funktioner intensivt.
Implementeringen är valfri eftersom dess resultat är starkt beroende av varje spels beteende. I vissa fall kan det ge en prestandaförbättring, medan det i andra fall kan ge exakt motsatt effekt och öka kostnaden för vissa operationer.
Utvecklaren själv har observerat en ökning på cirka 5-10% i FPS under spelande i Arx Fatalis med den här metoden. Samma förändring orsakar dock en märkbar prestandaminskning vid rendering av spelets huvudmeny. Därför är detta inte en universell optimering som bör aktiveras urskillningslöst, utan snarare ett alternativ som kan vara användbart i vissa titlar.
En intressant förbättring för att spela Windows-klassiker på Linux
Den största fördelen med D7VK 2.1 ligger i dess spelkatalog, som kan verka liten jämfört med moderna titlar, men som fortfarande är relevant för dem som använder Linux som plattform för klassiska spel. Lagret möjliggör översättning av äldre Direct3D API:er 3, 5, 6 och 7 till Vulkan, vilket gör det möjligt att köra dessa spel med Wine eller Proton.
Detta är särskilt användbart för titlar som utvecklades långt innan moderna grafik-API:er blev standarden. Istället för att enbart förlita sig på traditionella Direct3D-implementeringar som är tillgängliga via Wine, erbjuder D7VK en Vulkan-baserad metod som kan erbjuda bättre kompatibilitet och prestanda på aktuell grafikhårdvara och drivrutiner.
D7VK 2.1 är nu tillgänglig
D7VK 2.1 finns nu tillgänglig för nedladdning från projektets arkiv. Den här nya versionen fokuserar mindre på betydande FPS-ökningar än tidigare uppdateringar och mer på att förfina översättningslagrets interna funktioner.
Att minska belastningen under objektskapandet, förbättra cachningen och optimera startprocessen kan avsevärt minska laddningstiderna i vissa spel. Detta är utöver att åtgärda Arx Fatalis-kraschen, göra justeringar i andra titlar och lägga till en ny valfri sökväg för GetDC/ReleaseDC.
Med detta fortsätter D7VK 2.1 att förbättra en mycket specifik aspekt av spel på Linux: utförandet av klassiska titlar som förlitar sig på Microsofts äldre grafik-API:er. Uppdateringen visar att det fortfarande finns utrymme att förfina dessa upplevelser, även när spelen är årtionden gamla och körs på modern hårdvara.