Gli sviluppatori del progetto Asahi Linux, che si occupa del porting di Linux per computer Mac con chip ARM Apple, hanno presentato un toolkit per eseguire giochi per computer moderni in ambienti Linux su sistemi con chip Apple M1. Si tratta di giochi di livello AAA disponibili nel catalogo Steam e compilati per l'architettura x86_64. Il toolkit permette l'integrazione dei driver creati dal progetto, che implementano le API Vulkan 1.3 e OpenCL 3.0, con componenti che forniscono l'emulazione dell'architettura x86_64 e la compatibilità con Windows.
I pacchetti necessari per il funzionamento sono già stati aggiunti nel repository di default della distribuzione Fedora Asahi Remix: per avviare i giochi, è sufficiente aggiornare i driver con il comando "dnf upgrade --refresh" e installare Steam con il comando "dnf install steam", e questo installerà tutte le dipendenze necessarie. Il stack utilizzato per eseguire i giochi si basa sul driver Vulkan Honeykrisp, sull'emulatore FEX, che consente di eseguire applicazioni x86 su sistemi ARM, sul progetto Wine e sugli strati DXVK e vkd3d-proton che implementano le API DirectX sopra Vulkan.
A causa delle spese generali aggiuntive causate dall'emulazione, si raccomanda di avere nel sistema 16 GB di RAM. I problemi di allineamento dovuti alla discrepanza nelle dimensioni delle pagine di memoria utilizzate nel sistema operativo e necessarie alle applicazioni (i programmi compilati per x86 sono progettati per pagine da 4K, mentre nei sistemi Apple vengono utilizzate pagine da 16K) sono stati risolti avviando in un ambiente virtuale un secondo kernel Linux compilato con una dimensione di pagina diversa. Per eseguire i giochi in modalità separata, macchine virtuali è stato utilizzato il toolkit muvm. Ad esempio, in questo modo è stato possibile avviare il gioco Fallout 4.

Per garantire il funzionamento di giochi come The Witcher 3 e Ghostrunner, che utilizzano la tessellazione e gli shader geometrico, è stata utilizzata l'emulazione tramite shader di calcolo. Tra le funzionalità ancora non implementate, si segnala il supporto per le texture sparse (sparse texturing) nel driver Honeykrisp, necessario per eseguire alcuni giochi basati su DX12, come Cyberpunk 2077. Inoltre, si sta lavorando per ottimizzare le prestazioni per raggiungere nel contesto emulato un livello di 60 FPS.

Fonte: opennet.ru
