CodeWeavers hjælper DirectX 12 Windows-spil med at køre på Linux

CodeWeavers, udviklerne af CrossOver, arbejder på forbedringer af DirectX 12 i CodeWeavers- og Wine-kompatibilitetslagene.

CodeWeavers CrossOver er en af ​​de mest populære måder at køre Windows-applikationer på på andre operativsystemer. Det kombinerer det fremragende arbejde fra open source Vin projekt (hvoraf CrossOvers udviklere bidrager med kode) med en brugervenlig grænseflade og frontend. CodeWeavers udgav CrossOver 21 tilbage i august, og nu har virksomheden delt detaljer om sit arbejde med at bringe moderne spilsupport til Linux og Mac.

Mange nyere Windows-spil (og andre grafiktunge programmer) er afhængige af DirectX 12, den seneste version af Microsofts DirectX-grafikbibliotek, som bruger API'er på lavere niveau for at opnå hurtigere ydeevne. DirectX er kun tilgængelig på Windows (og Xbox-konsoller), så Wine-kompatibilitetslaget bruger VKD3D grafikbibliotek til at udføre Direct3D-kald oven på Vulkan (som er tilgængelig på Linux, Windows og andre platforme). Vkd3d-biblioteket er

primært udviklet af Valve Software for dets Protonkompatibilitetslag, og de hurtige fremskridt på VKD3D er hovedårsagen til, at så mange Windows-spil nu kan spilles på Linux.

Selvom CrossOver allerede inkluderer VKD3D, understøtter CrossOver ikke officielt DirectX 12-spil, mens dets udviklere finder ud af et par præstationsproblemer, ifølge en ny blogindlæg:

CrossOver bruger VKD3D til at køre DirectX 12-spil. VKD3D er et 3D-grafikbibliotek bygget ovenpå Vulkan. I øjeblikket bliver der gjort en masse arbejde for at forbedre VKD3D-ydeevnen. Med hjælp fra Vulkan deskriptorindekseringsudvidelse, som giver mulighed for funktionalitet svarende til DirectX 12-deskriptor-dynger, Vulkan-deskriptorer skrives sjældnere, og der bruges langt mindre GPU-hukommelse. Som et resultat kan VKD3D understøtte spil, der bruger nok deskriptorer til at kræve ressourcer fra Tier 2 og Tier 3 hardware.

CrossOver planlægger officielt at begynde at understøtte DirectX 12-spil og -applikationer på Linux i 2022 med den fremtidige udgivelse af CrossOver 22. Virksomheden er dog ikke så sikker på, hvornår VKD3D vil være funktionel på Mac. Apple understøtter slet ikke Vulkan på macOS (eller iOS), men beder i stedet udviklere om at bruge det Metal grafik bibliotek. Det er et problem for CrossOver, som blogindlægget fortsætter med at sige:

Generelt udfører Metal tessellering anderledes og mangler geometriskyggere og transformationsfeedback. Specifikt for DirectX 12 og Metal er der et problem med begrænsninger på ressourcer. Generelt skal spil have adgang til mindst en million shader-ressourcevisninger (SRV'er). Adgang til så mange SRV'er kræver ressourcebinding på niveau 2. Metal understøtter kun omkring 500.000 ressourcer pr. argumentbuffer, så Tier 2-ressourcebinding er ikke mulig. Metals grænse på en halv million er tilstrækkelig til Vulkan-deskriptorindeksering, men ikke til D3D12. Denne begrænsning betyder, at CrossOver Mac ikke kan understøtte Tier 2-binding, og derfor vil mange DirectX 12-spil ikke køre.

På trods af disse udfordringer håber CodeWeavers, at DirectX 12-spil og -applikationer kan være funktionelle på Mac med den fremtidige CrossOver 23-opdatering. Nye større versioner af CrossOver sker normalt på årsbasis, så det vil sandsynligvis være i 2023.

Selvom du ikke bruger CrossOver, sendes de fleste af kompatibilitetsforbedringerne udviklet af CodeWeavers tilbage til Wine-projektet. Det betyder, at virksomhedens arbejde kan hjælpe med at forbedre Windows-spil på Lutris Steam Deck konsol, PlayOnLinux og andre projekter baseret på Wine. Når det er sagt, så snart fuld DirectX 12-understøttelse ankommer, kan CrossOver være et overbevisende valg til at spille Windows-spil på Linux uden for Steam.