Переробка драйвера для VGEM на мові Rust

Майра Канал (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.

Джерело: opennet.ru

Додати коментар або відгук