Maíra Canal di Igalia ha presentato un progetto per la riscrittura del driver VGEM (Virtual GEM Provider) in Rust. VGEM include circa 400 righe di codice e offre un backend GEM (Graphics Execution Manager) non legato all'hardware, utilizzato per l'accesso condiviso ai buffer dei driver delle apparecchiature 3D software, come LLVMpipe, mirato a migliorare le prestazioni della rasterizzazione software.
VGEM sarà il secondo driver grafico scritto in Rust a funzionare a livello di kernel (il primo è stato il driver DRM (Direct Rendering Manager) Asahi per GPU Apple AGX, utilizzato nei chip Apple M1/M2). Lo sviluppo ha richiesto la creazione di nuove binding per interagire con il dispositivo della piattaforma, il tipo XArray e le astrazioni legate all'accesso diretto alla memoria, come i vincoli DMA (DMA fence). Nella fase attuale di sviluppo, il driver è quasi pronto, superando la maggior parte dei test IGT, eccetto due controlli (vgem_slow e vgem_basic@unload), ma richiede ulteriori perfezionamenti nel supporto IOCTL.
Fonte: opennet.ru
