Rielaborazione del driver VGEM in Rust

Maíra Canal di Igalia ha presentato un progetto per riscrivere il driver VGEM (Virtual GEM Provider) in Rust. VGEM è costituito da circa 400 righe di codice e fornisce un backend GEM (Graphics Execution Manager) indipendente dall'hardware utilizzato per condividere l'accesso al buffer ai driver di dispositivi 3D software come LLVMpipe per migliorare le prestazioni di rasterizzazione del software.

VGEM sarà il secondo driver grafico Rust ad essere eseguito a livello di kernel (il primo è stato il driver Asahi DRM (Direct Rendering Manager) per la GPU Apple AGX utilizzata nei chip Apple M1/M2). Lo sviluppo ha richiesto la creazione di nuovi collegamenti per lavorare dal codice Rust con il dispositivo della piattaforma, il tipo XArray e le astrazioni relative a DMA come le recinzioni DMA. Allo stadio attuale di sviluppo, il driver è quasi pronto, supera la maggior parte dei test IGT, ad eccezione di due controlli (vgem_slow e vgem_basic@unload), ma richiede un miglioramento del supporto IOCTL.

Fonte: opennet.ru

Aggiungi un commento