在 Rust 中重新設計 VGEM 驅動程式

來自 Igalia 的 Maíra Canal 提出了一個用 Rust 重寫 VGEM(虛擬 GEM 提供者)驅動程式的專案。 VGEM 由大約 400 行程式碼組成,提供與硬體無關的 GEM(圖形執行管理器)後端,用於共享對 3D 軟體設備驅動程式(例如 LLVMpipe)的緩衝區訪問,以提高軟體光柵化效能。

VGEM 將是第二個在核心層級運行的 Rust 圖形驅動程式(第一個是用於 Apple M1/M2 晶片中使用的 Apple AGX GPU 的 Asahi DRM(直接渲染管理器)驅動程式)。 開發需要建立新的綁定,以便透過 Rust 程式碼與平台裝置、XArray 類型以及 DMA 相關的抽象(例如 DMA 柵欄)進行工作。 在目前的開發階段,驅動程式已基本準備就緒,通過了大多數 IGT 測試,但兩項檢查(vgem_slow 和 vgem_basic@unload)除外,但需要改進 IOCTL 支援。

來源: opennet.ru

添加評論