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