Überarbeitung des VGEM-Treibers in Rust

Maíra Canal von Igalia stellte ein Projekt zur Neuschreibung des VGEM (Virtual GEM Provider)-Treiber in Rust vor. VGEM umfasst etwa 400 Zeilen Code und stellt ein geräteunabhängiges GEM (Graphics Execution Manager)-Backend bereit, das für den gemeinsamen Zugriff auf die Puffer von Software-3D-Gerätetreibern wie LLVMpipe verwendet wird, um die Leistung der Software-Rasterisierung zu verbessern.

VGEM wird der zweite grafische Treiber in Rust sein, der auf Kernel-Ebene arbeitet (der erste war der DRM-Treiber (Direct Rendering Manager) Asahi für die GPU Apple AGX, die in Apple M1/M2-Chips verwendet wird). Bei der Entwicklung war es notwendig, neue Bindungen zu schaffen, um aus Rust-Code mit der Plattformhardware, dem XArray-Typ und den mit dem direkten Zugriff auf den Speicher verbundenen Abstraktionen, wie z.B. DMA-Barrieren (DMA fences), zu arbeiten. In der aktuellen Entwicklungsphase ist der Treiber nahezu fertig, hat die meisten IGT-Tests bestanden, mit Ausnahme von zwei Prüfungen (vgem_slow und vgem_basic@unload), benötigt jedoch noch Unterstützung für IOCTL.

Quelle: opennet.ru

60GB SSD 8Gb DDR4