Преработка на VGEM драйвера в Rust

Maíra Canal от Игалия представи проект за пренаписване на драйвера VGEM (Virtual GEM Provider) в Rust. VGEM се състои от приблизително 400 реда код и предоставя хардуерно агностичен GEM (Graphics Execution Manager) бекенд, използван за споделяне на достъп до буфер до драйвери на 3D софтуерни устройства като LLVMpipe за подобряване на производителността на растеризацията на софтуера.

VGEM ще бъде вторият графичен драйвер на Rust, който ще работи на ниво ядро ​​(първият беше драйверът Asahi DRM (Direct Rendering Manager) за Apple AGX GPU, използван в Apple M1/M2 чипове). Разработката изискваше създаване на нови обвързвания за работа от кода на Rust с устройството на платформата, типа XArray и свързаните с DMA абстракции, като DMA огради. На настоящия етап на разработка драйверът е почти готов, преминава повечето IGT тестове, с изключение на две проверки (vgem_slow и vgem_basic@unload), но изисква подобрение на поддръжката на IOCTL.

Източник: opennet.ru

Добавяне на нов коментар