Перапрацоўка драйвера 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

Дадаць каментар