Omarbetar VGEM-föraren i Rust

Maíra Canal från Igalia presenterade ett projekt för att skriva om VGEM-föraren (Virtual GEM Provider) i Rust. VGEM består av cirka 400 rader kod och tillhandahåller en hårdvaruagnostisk GEM-backend (Graphics Execution Manager) som används för att dela buffertåtkomst till programvara 3D-enhetsdrivrutiner som LLVMpipe för att förbättra prestanda för mjukvarans rastrering.

VGEM kommer att vara den andra Rust-grafikdrivrutinen som körs på kärnnivå (den första var Asahi DRM-drivrutinen (Direct Rendering Manager) för Apple AGX GPU som används i Apple M1/M2-chips). Utvecklingen krävde att skapa nya bindningar för att arbeta från Rust-kod med plattformsenheten, XArray-typen och DMA-relaterade abstraktioner som DMA-stängsel. I det nuvarande utvecklingsstadiet är föraren nästan klar, klarar de flesta IGT-tester, med undantag för två kontroller (vgem_slow och vgem_basic@unload), men kräver förbättring av IOCTL-stödet.

Källa: opennet.ru

Lägg en kommentar