VGEM draivera pārstrādāšana Rust

Maíra Canal no Igalia iepazīstināja ar projektu, lai pārrakstītu VGEM (Virtual GEM Provider) draiveri Rustā. VGEM sastāv no aptuveni 400 koda rindiņām un nodrošina aparatūras agnostisku GEM (Graphics Execution Manager) aizmugursistēmu, ko izmanto, lai koplietotu bufera piekļuvi programmatūras 3D ierīču draiveriem, piemēram, LLVMpipe, lai uzlabotu programmatūras rasterizācijas veiktspēju.

VGEM būs otrais Rust grafikas draiveris, kas darbosies kodola līmenī (pirmais bija Asahi DRM (Direct Rendering Manager) draiveris Apple AGX GPU, ko izmanto Apple M1/M2 mikroshēmās). Izstrādei bija nepieciešams izveidot jaunus saišus, lai strādātu no Rust koda ar platformas ierīci, XArray tipu un ar DMA saistītām abstrakcijām, piemēram, DMA žogiem. Pašreizējā izstrādes stadijā draiveris ir gandrīz gatavs, iztur lielāko daļu IGT testu, izņemot divas pārbaudes (vgem_slow un vgem_basic@unload), taču nepieciešams uzlabot IOCTL atbalstu.

Avots: opennet.ru

Pievieno komentāru