CodeWeavers pomaže DirectX 12 Windows igrama da se izvode na Linuxu

CodeWeavers, programeri CrossOvera, rade na poboljšanjima DirectX 12 u slojevima kompatibilnosti CodeWeavers i Wine.

CodeWeavers CrossOver jedan je od najpopularnijih načina pokretanja Windows aplikacija na drugim operativnim sustavima. Kombinira izvrstan rad otvorenog koda Vinski projekt (kojemu CrossOver programeri doprinose kodu) sa sučeljem i prednjim dijelom lakšim za korištenje. CodeWeavers je objavio CrossOver 21 još u kolovozu, a sada je tvrtka podijelila pojedinosti o svom radu na uvođenju moderne podrške za igre na Linux i Mac.

Mnoge nedavne Windows igre (i druge grafički zahtjevne aplikacije) oslanjaju se na DirectX 12, najnoviju verziju Microsoftova DirectX grafička biblioteka, koji koristi API-je niže razine za postizanje brže izvedbe. DirectX je dostupan samo na Windowsima (i Xbox konzolama), tako da Wine kompatibilni sloj koristi VKD3D grafička biblioteka za izvršavanje Direct3D poziva povrh Vulkana (koji je dostupan na Linuxu, Windowsu i drugim platforme). Knjižnica Vkd3d je

prvenstveno razvijen od strane Valve Software za svoje Protonski kompatibilni sloj, a brz napredak na VKD3D glavni je razlog zašto se toliko Windows igara sada može igrati na Linuxu.

Iako CrossOver već uključuje VKD3D, CrossOver službeno ne podržava DirectX 12 igre dok su njegovi programeri otkrili nekoliko problema s performansama, prema novom post na blogu:

CrossOver koristi VKD3D za pokretanje DirectX 12 igara. VKD3D je biblioteka 3D grafike izgrađena na temelju Vulkan. Trenutno se puno radi na poboljšanju performansi VKD3D. Uz pomoć Vulkana ekstenzija indeksiranja deskriptora, koji omogućuje funkcionalnost sličnu DirectX 12 hrpi deskriptora, Vulkan deskriptori se pišu rjeđe i koristi se daleko manje GPU memorije. Kao rezultat toga, VKD3D može podržati igre koje koriste dovoljno deskriptora da zahtijevaju resurse s Tier 2 i Tier 3 hardvera.

CrossOver planira službeno početi podržavati DirectX 12 igre i aplikacije na Linuxu 2022. godine, s budućim izdanjem CrossOvera 22. Međutim, tvrtka nije baš sigurna kada će VKD3D biti funkcionalan na Macu. Apple uopće ne podržava Vulkan na macOS-u (ili iOS-u), umjesto toga traži od programera da ga koriste Metalna grafička biblioteka. To je problem za CrossOver, kao što post na blogu dalje kaže:

Općenito, Metal radi teselaciju drugačije i nedostaju mu geometrijski shaderi i povratne informacije transformacije. Specifično za DirectX 12 i Metal, postoji problem s ograničenjima resursa. Općenito, igrice trebaju pristup barem jednom milijunu pregleda izvora shadera (SRV). Pristup tolikom broju SRV-ova zahtijeva vezanje resursa na razini 2. Metal podržava samo oko 500 000 resursa po međuspremniku argumenata, tako da vezanje resursa razine 2 nije moguće. Metalov limit od pola milijuna dovoljan je za Vulkan indeksiranje deskriptora, ali ne i za D3D12. Ovo ograničenje znači da CrossOver Mac ne može podržati Tier 2 vezanje i stoga se mnoge DirectX 12 igre neće pokrenuti.

Unatoč ovim izazovima, CodeWeavers se nada da bi DirectX 12 igre i aplikacije mogle biti funkcionalne na Macu s budućim ažuriranjem CrossOver 23. Nove glavne verzije CrossOvera obično se pojavljuju svake godine, tako da bi to vjerojatno bilo 2023.

Čak i ako ne koristite CrossOver, većina poboljšanja kompatibilnosti koje je razvio CodeWeavers šalje se natrag u Wine projekt. To znači da bi rad tvrtke mogao pomoći u poboljšanju Windows igara na Lutrisu Steam Deck konzola, PlayOnLinux i drugi projekti temeljeni na Wineu. Uz to, kada stigne puna podrška za DirectX 12, CrossOver bi mogao biti uvjerljiv izbor za igranje Windows igara na Linuxu izvan Steama.