在 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

添加评论