CodeWeavers pomaga grom DirectX 12 Windows działać w systemie Linux

CodeWeavers, twórcy CrossOver, pracują nad ulepszeniami DirectX 12 w warstwach kompatybilności CodeWeavers i Wine.

Tkacze kodów Krzyżowanie to jeden z najpopularniejszych sposobów uruchamiania aplikacji Windows na innych systemach operacyjnych. Łączy w sobie doskonałą pracę open source Projekt wina (do którego programiści CrossOver wnoszą swój kod) z łatwiejszym w obsłudze interfejsem i interfejsem. CodeWeavers wypuściło CrossOver 21 w sierpniu, a teraz firma podzieliła się szczegółami na temat swoich prac nad zapewnieniem obsługi nowoczesnych gier dla systemów Linux i Mac.

Wiele najnowszych gier dla systemu Windows (i innych aplikacji wymagających dużej ilości grafiki) opiera się na najnowszej wersji DirectX 12 Biblioteka graficzna DirectX firmy Microsoft, który wykorzystuje interfejsy API niższego poziomu w celu osiągnięcia większej wydajności. DirectX jest dostępny tylko w systemie Windows (i konsolach Xbox), więc warstwa kompatybilności Wine korzysta z VKD3D biblioteka graficzna do wykonywania wywołań Direct3D na platformie Vulkan (która jest dostępna w systemach Linux, Windows i innych platformy). Biblioteka Vkd3d jest

opracowany głównie przez Valve Software dla niego Warstwa kompatybilności protonowej, a szybki postęp w VKD3D jest głównym powodem, dla którego tak wiele gier Windows można teraz odtwarzać w systemie Linux.

Mimo że CrossOver zawiera już VKD3D, CrossOver oficjalnie nie obsługuje gier DirectX 12, a jego twórcy odkryli kilka problemów z wydajnością, wynika z nowego post na blogu:

CrossOver używa VKD3D do uruchamiania gier DirectX 12. VKD3D to biblioteka grafiki 3D zbudowana na bazie Wulkan. Obecnie trwają prace nad poprawą wydajności VKD3D. Z pomocą Vulkana rozszerzenie indeksowania deskryptorów, co pozwala na funkcjonalność podobną do stosów deskryptorów DirectX 12, deskryptory Vulkan są zapisywane rzadziej i zużywają znacznie mniej pamięci GPU. W rezultacie VKD3D może obsługiwać gry, które używają wystarczającej liczby deskryptorów, aby wymagać zasobów sprzętu Tier 2 i Tier 3.

CrossOver planuje oficjalne rozpoczęcie obsługi gier i aplikacji DirectX 12 w systemie Linux w 2022 r. wraz z przyszłą wersją CrossOver 22. Jednak firma nie jest pewna, kiedy VKD3D będzie działać na komputerach Mac. Apple w ogóle nie obsługuje Vulkan na macOS (lub iOS), zamiast tego prosi programistów o korzystanie z niego Biblioteka grafik metalowych. Jest to problem dla CrossOver, jak czytamy w dalszej części wpisu na blogu:

Ogólnie rzecz biorąc, Metal wykonuje teselację inaczej i brakuje mu shaderów geometrii i sprzężenia zwrotnego transformacji. W przypadku DirectX 12 i Metal występuje problem z ograniczeniami zasobów. Ogólnie rzecz biorąc, gry wymagają dostępu do co najmniej miliona widoków zasobów modułu cieniującego (SRV). Dostęp do tak wielu SRV wymaga powiązania zasobów na poziomie warstwy 2. Metal obsługuje tylko około 500 000 zasobów na bufor argumentów, więc powiązanie zasobów poziomu 2 nie jest możliwe. Limit metalu wynoszący pół miliona jest wystarczający do indeksowania deskryptorów Vulkan, ale nie do D3D12. To ograniczenie oznacza, że ​​CrossOver Mac nie obsługuje powiązania poziomu 2 i dlatego wiele gier DirectX 12 nie będzie działać.

Pomimo tych wyzwań firma CodeWeavers ma nadzieję, że gry i aplikacje obsługujące DirectX 12 będą mogły działać na komputerach Mac wraz z przyszłą aktualizacją CrossOver 23. Nowe główne wersje CrossOver pojawiają się zwykle co roku, więc prawdopodobnie będzie to rok 2023.

Nawet jeśli nie korzystasz z CrossOver, większość ulepszeń kompatybilności opracowanych przez CodeWeavers jest przesyłanych z powrotem do projektu Wine. Oznacza to, że praca firmy może pomóc w ulepszeniu gier Windows na platformie Lutris Konsola Steam Deck, PlayOnLinux i inne projekty oparte na Wine. Biorąc to pod uwagę, gdy pojawi się pełna obsługa DirectX 12, CrossOver może być atrakcyjnym wyborem do grania w gry Windows na Linuksie poza Steam.