Racing karts on a Rust GPU kernel driver
6 months ago
- #Rust
- #Linux
- #GPU
- Tyr,一个针对Arm Mali GPU的Rust驱动,现已能运行GNOME、Weston及《超级企鹅卡丁车》等全屏3D游戏。
- 该驱动性能与C语言驱动持平,为社区基准测试提供了参照标准。
- 用户态驱动(UMD)负责将高级API指令转换为GPU专用指令,内核态驱动(KMD)则管理GPU硬件状态和资源公平调度。
- 初期开发聚焦于KMD功能,如电源管理、固件加载和GPU内存分配。
- 使用IGT测试框架,从简单任务开始逐步过渡到复杂工作负载测试。
- 通过kmscube成功渲染旋转立方体,验证了任务依赖关系的强制处理能力。
- 实现超500fps的离屏渲染性能,与C语言驱动表现相当。
- GNOME和Weston桌面环境可稳定运行,支持登录及Firefox等应用程序操作。
- 全屏3D游戏运行流畅,但窗口模式仍存在少量图形瑕疵。
- Tyr虽尚未达到日常使用标准,但可作为实验性驱动和Rust抽象层测试平台。
- 当前已在Rock 5B(RK3588芯片)设备完成测试,欢迎贡献代码与反馈意见。