他們提議為 Apple AGX G13 和 G14 實施用 Rust 編寫的 GPU 驅動程序

Linux蘋果生鏽

這是適用於 Apple AGX G13 和 G14 系列 GPU 的相當全面的驅動程序。
今天的控制器與 SoC 兼容

該新聞是最近發布的 已提議初步實施 drm-asahi 驅動程序 對於系列 GPU Apple M13 和 M14 芯片中使用的 Apple AGX G1 和 G2 在 Linux 內核開發者郵件列表上。

控制器是用 Rust 編寫的 加, 包括一組關於 DRM 子系統的通用鏈接 (直接渲染管理器)可用於在 Rust 中開發其他圖形驅動程序。

發布的補丁集 到現在 僅供討論 由核心開發人員 (RFC) 提出,但在審查完成並確定的缺陷得到修復後,可能會被核心團隊接受。

這是我的第一個 DRM Rust 抽象版本 子系統。 包括抽象本身,一些次要的 C 端的先決條件更改以及 drm-asahi GPU 驅動程序 (用於參考如何使用抽象,但不一定 打算一起著陸)。

這些補丁應用在 [1] 中樹的頂部,這是基於 6.3-rc1 添加了很多抽象/Rust 支持提交 多於。 其中大多數不是 DRM 抽象的先決條件。 他們自己,但只能來自司機。

自 XNUMX 月起,控制器包含在 內核包 適用於 Asahi Linux 發行版 並已通過該項目的用戶進行測試。

該驅動程序可用於 Linux 發行版以 在 d 中組織圖形環境配備 SoC M1、M1 Pro、M1 Max、M1 Ultra 和 M2 的 Apple 設備。 在開發驅動程序時,不僅嘗試通過最大限度地減少在 CPU 端執行的代碼中使用內存時的錯誤來提高安全性,還嘗試部分防止與固件交互時出現的問題。

特別是 驅動程序為共享內存結構提供某些綁定 固件中用於與控制器交互的複雜指針字符串不安全。 建議的驅動程序與 asahi Mesa 驅動程序結合使用,後者提供用戶空間 OpenGL 支持並通過 OpenGL ES 2 兼容性測試。 並且幾乎準備好支持 OpenGL ES 3.0。

同時,工作在內核層的驅動程序 最初開發時考慮到未來對 Vulkan API 的支持,與用戶空間交互的編程接口在設計時考慮了新的英特爾 Xe 驅動程序提供的 UAPI。

已知的問題 提到以下內容:

  • 現有的 Rust 集成目前不支持將抽象構建為模塊,因此 Rust 抽象僅適用於嵌入式 DRM 組件。
  • DRM 在很大程度上依賴於控制器對象的“子類化”模式,而這與 Rust 不相適應。
  • 目前,只實現了控制器所必需的(加上少量的
    明顯的附加功能,更好的 API 完整性是有意義的)。
  • drm::mm 最終需要一個內置於抽像中的互斥體,而不是
    使用通常的 Rust 可變性規則將其委託給用戶。
    這是因為可以隨時刪除節點,而那些操作
    它需要同步。
  • 在 Mesa 端,你目前擁有 Gallium 驅動程序,它大部分已經在上游(UAPI 位大多缺失)和
    通過 dEQP GLES2/EGL 測試,大部分 GLES3.0 通過
    上游分支工作正在進行中。 這是一個社區驅動逆向工程,所以提到這方面還有很多工作要做。

最後,如果你是 有興趣了解更多,您可以在中查看詳細信息 以下鏈接。


發表您的評論

您的電子郵件地址將不會被發表。 必填字段標有 *

*

*

  1. 負責資料:AB Internet Networks 2008 SL
  2. 數據用途:控制垃圾郵件,註釋管理。
  3. 合法性:您的同意
  4. 數據通訊:除非有法律義務,否則不會將數據傳達給第三方。
  5. 數據存儲:Occentus Networks(EU)託管的數據庫
  6. 權利:您可以隨時限制,恢復和刪除您的信息。