Dopo essere stato in sviluppo per diversi mesi, Asahi Lina con il progetto Asahi Linux ha pubblicato le astrazioni iniziali del sottosistema Rust Direct Rendering Manager (DRM) per la revisione, nonché un’anteprima dello stato sperimentale del driver AGX DRM che fornisce il kernel open-source supporto del driver grafico per l’hardware Apple M1/M2.
Il driver AGX DRM è il primo importante driver grafico del kernel open source scritto nel linguaggio di programmazione Rust e quindi sta arrivando con le necessarie astrazioni Rust lungo il percorso per interfacciarsi con il codice C altrimenti.
Il driver AGX DRM è stato pubblicato per la revisione in forma di”anteprima”e l’API dello spazio utente (UAPI) non è ancora finalizzata/stabile. La speranza è almeno che queste astrazioni DRM di Rust vengano presto aggiornate, ora che il resto del lavoro di abilitazione di Rust per Linux nel kernel sta procedendo bene.
Le cose funzionano! Abbiamo avuto la maggior parte delle astrazioni nei kernel edge di produzione con il driver e il nuovo materiale di sincronizzazione esplicita ha superato parecchi test di tortura (è così che abbiamo trovato il problema drm_sched, patch 11).
Le astrazioni sono pensate per essere sicure (la revisione della sicurezza è molto gradita!). Mentre li scrivevo, ho cercato di evitare di apportare modifiche al lato C a meno che non fosse assolutamente necessario. Capisco che probabilmente avrà senso modificare il lato C per semplificare alcune cose, ma volevo partire da questo come base.
Ulteriori dettagli tramite dri-devel per coloro che sono interessati alle astrazioni di Rust DRM e/o al driver Apple AGX DRM in fase di sviluppo che alla fine accompagnerà il lavoro di Mesa per fornendo supporto grafico open source per l’hardware Apple Silicon su Linux.