Przeróbka sterownika VGEM w Rust

Maíra Canal z Igalii przedstawiła projekt przepisania sterownika VGEM (Virtual GEM Provider) w języku Rust. VGEM składa się z około 400 linii kodu i zapewnia niezależny od sprzętu backend GEM (Graphics Execution Manager), używany do współdzielenia dostępu do bufora ze sterownikami urządzeń 3D, takimi jak LLVMpipe, w celu poprawy wydajności rasteryzacji oprogramowania.

VGEM będzie drugim sterownikiem graficznym Rusta działającym na poziomie jądra (pierwszym był sterownik Asahi DRM (Direct Rendering Manager) dla procesora graficznego Apple AGX używanego w chipach Apple M1/M2). Rozwój wymagał stworzenia nowych powiązań do pracy z kodem Rust z urządzeniem platformy, typem XArray i abstrakcjami związanymi z DMA, takimi jak ogrodzenia DMA. Na obecnym etapie rozwoju sterownik jest prawie gotowy, przechodzi większość testów IGT, z wyjątkiem dwóch kontroli (vgem_slow i vgem_basic@unload), ale wymaga poprawy obsługi IOCTL.

Źródło: opennet.ru

Dodaj komentarz