Überarbeitung des VGEM-Treibers in Rust

Maíra Canal aus Igalia präsentierte ein Projekt zum Neuschreiben des VGEM-Treibers (Virtual GEM Provider) in Rust. VGEM besteht aus etwa 400 Codezeilen und bietet ein hardwareunabhängiges GEM-Backend (Graphics Execution Manager), das zur gemeinsamen Nutzung des Pufferzugriffs auf Software-3D-Gerätetreiber wie LLVMpipe verwendet wird, um die Software-Rasterisierungsleistung zu verbessern.

VGEM wird der zweite Rust-Grafiktreiber sein, der auf Kernel-Ebene ausgeführt wird (der erste war der Asahi DRM-Treiber (Direct Rendering Manager) für die Apple AGX-GPU, die in Apple M1/M2-Chips verwendet wird). Die Entwicklung erforderte die Erstellung neuer Bindungen, um aus Rust-Code mit dem Plattformgerät, dem XArray-Typ und DMA-bezogenen Abstraktionen wie DMA-Zäunen zu arbeiten. Im aktuellen Entwicklungsstadium ist der Treiber fast fertig, besteht die meisten IGT-Tests mit Ausnahme von zwei Prüfungen (vgem_slow und vgem_basic@unload), erfordert jedoch eine Verbesserung der IOCTL-Unterstützung.

Source: opennet.ru

Kommentar hinzufügen