Nel forum degli sviluppatori del kernel Linux è stata proposta una bozza del driver drm-asahi per GPU Apple AGX delle serie G13 e G14, utilizzato nei chip Apple M1 e M2. Il driver è scritto in Rust e include anche un insieme di wrapper generici sopra il sottosistema DRM (Direct Rendering Manager), utilizzabili per sviluppare altri driver grafici in Rust. Il set di patch pubblicato è attualmente solo per discussione tra gli sviluppatori del kernel (RFC), ma potrebbe essere incluso nel ramo principale dopo la revisione e la correzione degli errori identificati.
Da dicembre, il driver fa parte del pacchetto del kernel per la distribuzione Asahi Linux ed è stato testato dagli utenti di questo progetto. Il driver può essere utilizzato nelle distribuzioni Linux per gestire l'ambiente grafico sui dispositivi Apple con SoC M1, M1 Pro, M1 Max, M1 Ultra e M2. Durante lo sviluppo del driver, è stato fatto uno sforzo non solo per migliorare la sicurezza minimizzando gli errori di gestione della memoria nel codice eseguito sul CPU, ma anche per fornire una parziale protezione contro i problemi relativi all'interazione con il firmware. In particolare, il driver offre determinati wrapper per strutture di memoria condivisa non sicure con catene di puntatori complesse, utilizzate nel firmware per interagire con il driver.
Il driver proposto viene utilizzato in combinazione con il driver Mesa asahi, che fornisce supporto OpenGL nello spazio utente e supera con successo i test di compatibilità con OpenGL ES 2 e quasi pronto per supportare OpenGL ES 3.0. Inoltre, il driver a livello di kernel è stato inizialmente sviluppato tenendo presente un futuro supporto per l'API Vulkan, e l'interfaccia software per interagire con lo spazio utente è stata progettata considerato l'UAPI fornito dal nuovo driver Intel Xe.
Fonte: opennet.ru
