CodeWeavers hjelper DirectX 12 Windows-spill å kjøre på Linux

CodeWeavers, utviklerne av CrossOver, jobber med forbedringer av DirectX 12 i CodeWeavers- og Wine-kompatibilitetslagene.

CodeWeavers CrossOver er en av de mest populære måtene å kjøre Windows-applikasjoner på andre operativsystemer. Den kombinerer det utmerkede arbeidet til åpen kildekode Vinprosjekt (hvorav CrossOvers utviklere bidrar med kode til) med et brukervennlig grensesnitt og grensesnitt. CodeWeavers ga ut CrossOver 21 tilbake i august, og nå har selskapet delt detaljer om arbeidet med å bringe moderne spillstøtte til Linux og Mac.

Mange nyere Windows-spill (og andre grafikktunge applikasjoner) er avhengige av DirectX 12, den nyeste versjonen av Microsofts DirectX-grafikkbibliotek, som bruker API-er på lavere nivå for å oppnå raskere ytelse. DirectX er bare tilgjengelig på Windows (og Xbox-konsoller), så Wine-kompatibilitetslaget bruker VKD3D grafikkbibliotek for å utføre Direct3D-anrop på toppen av Vulkan (som er tilgjengelig på Linux, Windows og andre plattformer). Vkd3d-biblioteket er

primært utviklet av Valve Software for dens Protonkompatibilitetslag, og den raske fremgangen på VKD3D er hovedårsaken til at så mange Windows-spill nå kan spilles på Linux.

Selv om CrossOver allerede inkluderer VKD3D, støtter ikke CrossOver offisielt DirectX 12-spill mens utviklerne finner ut noen ytelsesproblemer, ifølge en ny blogg innlegg:

CrossOver bruker VKD3D til å kjøre DirectX 12-spill. VKD3D er et 3D-grafikkbibliotek bygget på toppen av Vulkan. For tiden blir det gjort mye arbeid for å forbedre VKD3D-ytelsen. Med hjelp av Vulkan deskriptorindekseringsutvidelse, som tillater funksjonalitet som ligner på DirectX 12-deskriptorhauger, Vulkan-deskriptorer skrives sjeldnere og mye mindre GPU-minne brukes. Som et resultat kan VKD3D støtte spill som bruker nok deskriptorer til å kreve ressurser fra Tier 2 og Tier 3 maskinvare.

CrossOver planlegger å offisielt begynne å støtte DirectX 12-spill og -applikasjoner på Linux i 2022, med den fremtidige utgivelsen av CrossOver 22. Imidlertid er selskapet ikke så sikker på når VKD3D vil være funksjonell på Mac. Apple støtter ikke Vulkan i det hele tatt på macOS (eller iOS), i stedet ber utviklere om å bruke den Metallgrafikkbibliotek. Det er et problem for CrossOver, som blogginnlegget fortsetter med å si:

Generelt gjør Metal tessellering annerledes, og mangler geometriskyggelegging og transformasjonstilbakemelding. Spesifikt for DirectX 12 og Metal er det et problem med begrensninger på ressurser. Generelt trenger spill tilgang til minst én million shader-ressursvisninger (SRV). Tilgang til så mange SRV-er krever ressursbinding på nivå 2-nivå. Metal støtter bare rundt 500 000 ressurser per argumentbuffer, så Tier 2-ressursbinding er ikke mulig. Metals grense på en halv million er tilstrekkelig for Vulkan-deskriptorindeksering, men ikke for D3D12. Denne begrensningen betyr at CrossOver Mac ikke kan støtte Tier 2-binding, og derfor vil mange DirectX 12-spill ikke kjøre.

Til tross for disse utfordringene, håper CodeWeavers at DirectX 12-spill og -applikasjoner kan fungere på Mac med den fremtidige CrossOver 23-oppdateringen. Nye store versjoner av CrossOver skjer vanligvis på årsbasis, så det vil sannsynligvis være i 2023.

Selv om du ikke bruker CrossOver, sendes de fleste av kompatibilitetsforbedringene utviklet av CodeWeavers tilbake til Wine-prosjektet. Det betyr at selskapets arbeid kan bidra til å forbedre Windows-spill på Lutris Steam Deck-konsoll, PlayOnLinux og andre prosjekter basert på Wine. Når det er sagt, når full DirectX 12-støtte kommer, kan CrossOver være et overbevisende valg for å spille Windows-spill på Linux utenfor Steam.