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

Kate

Administrator
Команда форума
Майра Канал (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.

 
Сверху