CodeWeavers aiuta a rendere riproducibili i giochi DirectX 12 Windows su Linux
CodeWeavers CrossOver è uno dei modi più popolari per eseguire applicazioni Windows su altri sistemi operativi.
Combina l'eccellente lavoro del progetto Wine open source (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 ad agosto e ora la società ha condiviso i dettagli sul suo lavoro per portare il supporto dei giochi moderni su Linux e Mac.
Molti giochi Windows recenti (e altre applicazioni con grafica pesante) si basano su DirectX 12, l'ultima versione della 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à Wine utilizza la libreria grafica VKD3D per eseguire chiamate Direct3D su Vulkan (disponibile su Linux, Windows e altre piattaforme).
La libreria Vkd3d è sviluppata principalmente da Valve Software per il suo livello di compatibilità Proton e il rapido progresso su 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 scoprono alcuni problemi di prestazioni, secondo un nuovo post sul blog: CrossOver utilizza VKD3D per eseguire i giochi DirectX 12.
VKD3D è una libreria grafica 3D costruita su Vulkan.
Attualmente, viene svolto molto lavoro per migliorare le prestazioni di VKD3D.
Con l'aiuto dell'estensione per l'indicizzazione dei descrittori Vulkan, che consente funzionalità simili agli heap dei descrittori DirectX 12, i descrittori Vulkan vengono scritti meno spesso e viene utilizzata molta meno memoria della GPU.
Di conseguenza, VKD3D può supportare giochi che utilizzano un numero sufficiente di descrittori per richiedere risorse dall'hardware di livello 2 e 3.
CrossOver prevede di iniziare ufficialmente a supportare giochi e applicazioni DirectX 12 su Linux nel 2022, con la futura versione di CrossOver 22.
Tuttavia, la società non è così sicura di quando VKD3D funzionerà su Mac.
Apple non supporta affatto Vulkan su macOS (o iOS), chiedendo invece agli sviluppatori di utilizzare la sua libreria grafica Metal.
Questo è un problema per CrossOver, come continua il post del blog: in generale, Metal esegue la tassellatura in modo diverso e mancano gli shader di geometria e il feedback di trasformazione.
Specifico per DirectX 12 e Metal, c'è un problema con i limiti delle risorse.
In genere, i giochi devono accedere ad almeno un milione di visualizzazioni di risorse shader (SRV).
L'accesso a un numero così elevato di SRV richiede l'associazione delle risorse a livello di livello 2.
Metal supporta solo circa 500.000 risorse per buffer di argomenti, 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 funzioneranno.
Nonostante queste sfide, CodeWeavers spera che i giochi e le applicazioni DirectX 12 possano funzionare su Mac con il futuro aggiornamento di CrossOver 23.
Le nuove versioni principali di CrossOver di solito avvengono su base annuale, quindi probabilmente nel 2023.
Anche se non usi CrossOver, la maggior parte dei miglioramenti di compatibilità sviluppati da CodeWeavers vengono restituiti al progetto Wine.
Ciò significa che il lavoro dell'azienda potrebbe aiutare a migliorare i giochi Windows su Lutris, la 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 interessante per giocare ai giochi Windows su Linux al di fuori di Steam.
Il post CodeWeavers sta aiutando a rendere i giochi DirectX 12 Windows riproducibili su Linux è apparso per primo su xda-developers.