VGEM-ohjaimen uusiminen Rustissa

Maíra Canal Igaliasta esitteli projektin VGEM (Virtual GEM Provider) -ohjaimen uudelleenkirjoittamiseksi Rustissa. VGEM koostuu noin 400 koodirivistä ja tarjoaa laitteistoagnostisen GEM-taustaohjelman (Graphics Execution Manager), jota käytetään puskurin jakamiseen ohjelmistojen 3D-laiteajureille, kuten LLVMpipe, ohjelmiston rasteroinnin suorituskyvyn parantamiseksi.

VGEM on toinen Rust-grafiikkaohjain, joka toimii ydintasolla (ensimmäinen oli Asahi DRM (Direct Rendering Manager) -ohjain Apple AGX GPU:lle, jota käytetään Applen M1/M2-siruissa). Kehitys vaati uusien sidosten luomista toimimaan Rust-koodista alustalaitteen, XArray-tyypin ja DMA:han liittyvien abstraktien, kuten DMA-aitojen, kanssa. Nykyisessä kehitysvaiheessa ajuri on melkein valmis, läpäisee useimmat IGT-testit kahta tarkistusta lukuun ottamatta (vgem_slow ja vgem_basic@unload), mutta vaatii IOCTL-tuen parantamista.

Lähde: opennet.ru

Lisää kommentti