Майра Канал (Maíra Canal) от компанията Igalia представи проект за пренаписване на драйвера VGEM (Virtual GEM Provider) на езика Rust. VGEM включва около 400 реда код и предоставя хардуерно независим бекенд GEM (Graphics Execution Manager), използван за споделен достъп до буферите на драйверите на софтуерни 3D устройства, като LLVMpipe, с цел подобряване на производителността на софтуерната растеризация.
VGEM ще бъде вторият графичен драйвер на Rust, работещ на ниво ядрo (първият беше DRM драйверът (Direct Rendering Manager) Asahi за GPU на Apple AGX, използван в чиповете Apple M1/M2). При разработката беше необходимо да се създадат нови връзки за работа от кода на Rust с устройствата на платформата, тип XArray и абстракциите, свързани с директен достъп до паметта, като DMA бариери (DMA fence). На текущия етап на развитие драйверът е почти готов, преминава повечето тестове на IGT, освен две проверки (vgem_slow и vgem_basic@unload), но изисква доработка на поддръжката на IOCTL.
Източник: opennet.ru
