CodeWeavers pomáha hrám DirectX 12 pre Windows bežať na Linuxe

CodeWeavers, vývojári CrossOver, pracujú na vylepšeniach DirectX 12 vo vrstvách kompatibility CodeWeavers a Wine.

CodeWeavers CrossOver je jedným z najpopulárnejších spôsobov spúšťania aplikácií Windows na iných operačných systémoch. Spája vynikajúcu prácu open-source Projekt vína (do ktorého kódom prispievajú vývojári CrossOver) s jednoduchšie použiteľným rozhraním a frontendom. CodeWeavers vydali CrossOver 21 späť v augustea teraz sa spoločnosť podelila o podrobnosti o svojej práci na zavedení podpory moderných hier pre Linux a Mac.

Mnoho najnovších hier pre Windows (a iných graficky náročných aplikácií) sa spolieha na DirectX 12, najnovšiu verziu Grafická knižnica DirectX od spoločnosti Microsoft, ktorá využíva rozhrania API nižšej úrovne na dosiahnutie rýchlejšieho výkonu. DirectX je k dispozícii iba na Windows (a konzolách Xbox), takže vrstva kompatibility Wine používa VKD3D grafická knižnica na vykonávanie volaní Direct3D nad Vulkanom (ktorý je k dispozícii v systémoch Linux, Windows a ďalších platformy). Knižnica Vkd3d je

primárne vyvinuté spoločnosťou Valve Software pre jeho Vrstva protónovej kompatibilitya rýchly pokrok na VKD3D je hlavným dôvodom, prečo je teraz toľko hier pre Windows hrateľných na Linuxe.

Aj keď CrossOver už obsahuje VKD3D, CrossOver oficiálne nepodporuje hry DirectX 12, zatiaľ čo jeho vývojári zistili niekoľko problémov s výkonom, podľa nového príspevok v blogu:

CrossOver používa VKD3D na spustenie hier DirectX 12. VKD3D je 3D grafická knižnica postavená na vrchole Vulkan. V súčasnosti sa robí veľa práce na zlepšení výkonu VKD3D. S pomocou Vulkána rozšírenie indexovania deskriptorov, ktorý umožňuje funkčnosť podobnú hromadám deskriptorov DirectX 12, popisovače Vulkan sa píšu menej často a používa sa oveľa menej pamäte GPU. Výsledkom je, že VKD3D môže podporovať hry, ktoré používajú dostatok deskriptorov na to, aby vyžadovali zdroje z hardvéru úrovne 2 a úrovne 3.

CrossOver plánuje oficiálne začať podporovať hry a aplikácie DirectX 12 na Linuxe v roku 2022 s budúcim vydaním CrossOver 22. Spoločnosť si však nie je istá, kedy bude VKD3D na Macu funkčný. Apple vôbec nepodporuje Vulkan na macOS (alebo iOS), namiesto toho žiada vývojárov, aby ho používali Kovová grafická knižnica. To je problém pre CrossOver, ako sa ďalej píše v blogovom príspevku:

Vo všeobecnosti Metal robí teseláciu inak a chýbajú mu geometrie shadery a transformačná spätná väzba. Špecifické pre DirectX 12 a Metal sa vyskytol problém s obmedzeniami zdrojov. Vo všeobecnosti hry potrebujú prístup k najmenej miliónu zobrazení zdrojov shaderov (SRV). Prístup k toľkým SRV vyžaduje viazanie zdrojov na úrovni 2. Metal podporuje iba asi 500 000 zdrojov na vyrovnávaciu pamäť argumentov, takže viazanie zdrojov úrovne 2 nie je možné. Limit kovu na pol milióna je dostatočný na indexovanie deskriptorov Vulkan, ale nie na D3D12. Toto obmedzenie znamená, že CrossOver Mac nemôže podporovať viazanie úrovne 2, a preto veľa hier DirectX 12 nebude fungovať.

Napriek týmto výzvam je CodeWeavers nádejou, že hry a aplikácie DirectX 12 by mohli byť funkčné na Mac s budúcou aktualizáciou CrossOver 23. Nové hlavné verzie CrossOver sa zvyčajne vyskytujú každý rok, takže to bude pravdepodobne v roku 2023.

Dokonca aj keď nepoužívate CrossOver, väčšina vylepšení kompatibility vyvinutých spoločnosťou CodeWeavers je odoslaná späť do projektu Wine. To znamená, že práca spoločnosti by mohla pomôcť zlepšiť hry pre Windows na Lutrise Konzola Steam Deck, PlayOnLinux a ďalšie projekty založené na Wine. Ako už bolo povedané, akonáhle príde plná podpora DirectX 12, CrossOver by mohol byť presvedčivou voľbou pre hranie hier pre Windows na Linuxe mimo Steamu.