Reworking ang VGEM driver sa Rust

Ang MaΓ­ra Canal mula sa Igalia ay nagpakita ng isang proyekto upang muling isulat ang driver ng VGEM (Virtual GEM Provider) sa Rust. Binubuo ang VGEM ng humigit-kumulang 400 linya ng code at nagbibigay ng hardware-agnostic GEM (Graphics Execution Manager) backend na ginagamit para magbahagi ng buffer access sa mga driver ng 3D software device gaya ng LLVMpipe para mapahusay ang performance ng software rasterization.

Ang VGEM ang magiging pangalawang Rust graphics driver na tatakbo sa antas ng kernel (ang una ay ang driver ng Asahi DRM (Direct Rendering Manager) para sa Apple AGX GPU na ginagamit sa Apple M1/M2 chips). Kinakailangan ng pag-develop ang paglikha ng mga bagong binding upang gumana mula sa Rust code gamit ang platform device, ang uri ng XArray, at mga abstraction na nauugnay sa DMA tulad ng mga bakod ng DMA. Sa kasalukuyang yugto ng pag-unlad, ang driver ay halos handa na, pumasa sa karamihan ng mga pagsusulit sa IGT, maliban sa dalawang tseke (vgem_slow at vgem_basic@unload), ngunit nangangailangan ng pagpapabuti ng suporta sa IOCTL.

Pinagmulan: opennet.ru

Magdagdag ng komento