苹果 AGX 图形驱动程序何去何从?

主要观点:早期内核的 Rust 代码多以重实现现有驱动作为概念验证,其中 Asahi Lina 编写的苹果 GPU 驱动全新且在 Asahi Linux 中稳定可用,但未纳入主线内核,整合新语言存在困难。
关键信息

  • 苹果 GPU 驱动早期主要是 DRM 级抽象,后因 DRM 调度相关问题陷入停滞,如新增调度回调和修改调度器处理挂起任务方式等。
  • Christian König 维护调度代码,对 Asahi Lina 的修改有不同意见,认为不应出现某些情况,而 Asahi Lina 认为这种情况脆弱且与 Rust 开发方式不符。
  • 最终 Asahi Lina 放弃使用 DRM 调度,改用 workqueues 重新实现功能,这显示 Rust 与 C 在语言和开发风格上存在根本不匹配。
  • 内核开发者虽支持 Rust,但对 Rust 开发者的目标理解不足,导致审查和支持困难,需要更清晰完整地阐述目标并获得支持。
    重要细节
  • DRM 子系统复杂,GPU 驱动需依赖抽象与其他代码接口,第一个苹果 GPU 驱动帖子主要是抽象内容。
  • 同步机制 fences 用于协调任务,相关补丁引发争议,如新增调度回调和处理挂起任务的修改。
  • König 认为 Rust 代码使用不当,Asahi Lina 则强调 Rust 应避免复杂依赖和保证内存安全,否则需添加大量基础设施。
  • 苹果 GPU 驱动合并时间不明,Nova 驱动可能先实现,Rust 图形驱动未来可期但仍有许多问题待解。
阅读 15
0 条评论