MaĂra Canal von Igalia hat ein Projekt zur Neuschreibung des VGEM (Virtual GEM Provider)-Treiber in Rust vorgestellt. VGEM umfasst etwa 400 Zeilen Code und bietet ein hardwareunabhĂ€ngiges Backend GEM (Graphics Execution Manager), 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 steigern.
VGEM wird der zweite Grafiktreiber in Rust sein, der auf Kernel-Ebene arbeitet (der erste war der DRM-Treiber (Direct Rendering Manager) Asahi fĂŒr die Apple AGX GPU, die in den Apple M1/M2 Chips verwendet wird). Bei der Entwicklung mussten neue Bindings erstellt werden, um Rust-Code mit PlattformgerĂ€ten, dem Typ XArray und Abstraktionen fĂŒr den Direktzugriff auf den Speicher, wie DMA-Barrieren (DMA-Fence), zu verbinden. In der aktuellen Entwicklungsphase ist der Treiber fast fertig und besteht die meisten IGT-Tests, mit Ausnahme von zwei PrĂŒfungen (vgem_slow und vgem_basic@unload), benötigt jedoch noch Anpassungen fĂŒr die IOCTL-UnterstĂŒtzung.
Quelle: opennet.ru
