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