CodeWeavers aiuta i giochi Windows DirectX 12 a funzionare su Linux

CodeWeavers, gli sviluppatori di CrossOver, stanno lavorando su miglioramenti a DirectX 12 nei livelli di compatibilità CodeWeavers e Wine.

CodeWeavers CrossOver è uno dei modi più popolari per eseguire applicazioni Windows su altri sistemi operativi. Unisce l'eccellente lavoro dell'open source Progetto vino (a cui gli sviluppatori di CrossOver contribuiscono con il codice) con un'interfaccia e un front-end più facili da usare. CodeWeavers ha rilasciato CrossOver 21 di nuovo in agosto, e ora l'azienda ha condiviso i dettagli del suo lavoro per portare il supporto dei giochi moderni su Linux e Mac.

Molti giochi Windows recenti (e altre applicazioni ad alto utilizzo di grafica) si basano su DirectX 12, l'ultima versione di Libreria grafica DirectX di Microsoft, che utilizza API di livello inferiore per ottenere prestazioni più veloci. DirectX è disponibile solo su Windows (e console Xbox), quindi il livello di compatibilità di Wine utilizza VKD3D libreria grafica per eseguire chiamate Direct3D su Vulkan (disponibile su Linux, Windows e altri piattaforme). La libreria Vkd3d lo è

sviluppato principalmente da Valve Software per il suo Strato di compatibilità protonica, e il rapido progresso di VKD3D è il motivo principale per cui così tanti giochi Windows sono ora riproducibili su Linux.

Anche se CrossOver include già VKD3D, CrossOver non supporta ufficialmente i giochi DirectX 12 mentre i suoi sviluppatori rilevano alcuni problemi di prestazioni, secondo un nuovo post sul blog:

CrossOver utilizza VKD3D per eseguire giochi DirectX 12. VKD3D è una libreria grafica 3D costruita su Vulcano. Attualmente si sta lavorando molto per migliorare le prestazioni di VKD3D. Con l'aiuto di Vulcano estensione di indicizzazione del descrittore, che consente funzionalità simili agli heap dei descrittori DirectX 12, i descrittori Vulkan vengono scritti meno spesso e viene utilizzata molta meno memoria GPU. Di conseguenza, VKD3D può supportare giochi che utilizzano descrittori sufficienti per richiedere risorse dall'hardware Tier 2 e Tier 3.

CrossOver prevede di iniziare ufficialmente a supportare giochi e applicazioni DirectX 12 su Linux nel 2022, con il futuro rilascio di CrossOver 22. Tuttavia, la società non è così sicura di quando VKD3D sarà funzionante su Mac. Apple non supporta affatto Vulkan su macOS (o iOS), chiedendo invece agli sviluppatori di utilizzarlo Libreria grafica in metallo. Questo è un problema per CrossOver, come prosegue il post sul blog:

In generale, Metal esegue la tassellatura in modo diverso e mancano gli shader della geometria e il feedback della trasformazione. Specifico per DirectX 12 e Metal, c'è un problema con i limiti sulle risorse. In genere, i giochi devono accedere ad almeno un milione di visualizzazioni di risorse shader (SRV). L'accesso a così tanti SRV richiede l'associazione delle risorse a livello Tier 2. Metal supporta solo circa 500.000 risorse per buffer di argomento, quindi l'associazione delle risorse di livello 2 non è possibile. Il limite di mezzo milione di Metal è sufficiente per l’indicizzazione del descrittore Vulkan, ma non per D3D12. Questa limitazione significa che CrossOver Mac non può supportare l'associazione Tier 2 e quindi molti giochi DirectX 12 non verranno eseguiti.

Nonostante queste sfide, CodeWeavers spera che i giochi e le applicazioni DirectX 12 possano essere funzionanti su Mac con il futuro aggiornamento CrossOver 23. Le nuove versioni principali di CrossOver di solito vengono rilasciate su base annuale, quindi probabilmente ciò avverrà nel 2023.

Anche se non utilizzi CrossOver, la maggior parte dei miglioramenti di compatibilità sviluppati da CodeWeavers vengono rinviati al progetto Wine. Ciò significa che il lavoro dell'azienda potrebbe aiutare a migliorare i giochi Windows su Lutris Console Steam Deck, PlayOnLinux e altri progetti basati su Wine. Detto questo, una volta arrivato il supporto completo per DirectX 12, CrossOver potrebbe essere una scelta convincente per giocare ai giochi Windows su Linux al di fuori di Steam.