PanCSF,Collabora 推出的用於 Mali GPU 的新 Linux 驅動程序

泛腦脊液

PanCSF:用於基於 Mali CSF 的 GPU 的新 DRM 驅動程序

幾天前 Collabora 展示了發布會 控制者 泛CSF DRM (Direct Rendering Manager),工作在 Linux 內核級別。

控制器 PanCSF DRM 專為與 Mali GPU 一起使用而設計 第十代(G710+),採用CSF(Command Stream Frontend)技術,在固件旁邊帶來了一些驅動功能,以減輕CPU的負載,並提供了一種組織GPU工作的新模式。

正如命運所願,本月早些時候推出了適用於最新 Mali GPU 的新 DRM 驅動程序。 這在 DRM 子系統的世界中有點奇怪,在 DRM 子系統中,對新硬件的支持通常被添加到支持老一代硬件的 GPU 驅動程序中。

關於 PanCSF DRM 驅動程序

最初, 試圖實現對基於 CSF 的 Mali GPU 的支持 在 Panfrost 驅動程序中,但開發人員得出的結論是,這將導致現有驅動程序變得非常複雜,並且 CSF 創建一個使用不同架構創建的新驅動程序將是最佳選擇。

提議進行測試的新 PanCSF 驅動程序 實現了一個全新的 uAPI, 新的作業調度邏輯和新的 MMU/GPU-VA 控制邏輯。 現有的 Panfrost 代碼用作新控制器的基礎。

而正是在新一代的GPU Mali中, 作業管理器調度程序替換為 CSF 接口 (命令流前端),它使用基於命令流的模型,在固件端使用命令流隊列調度,而不是基於作業流的模型。

我們不會詳細描述 CSF 是如何工作的,但值得注意的是 CSF 接口有一個專用的指令集和一堆用於傳遞數據或維護內部狀態的寄存器。 有提交作業(計算、鑲嵌和分塊作業)的指令,還有一些指令可以做更瑣碎的事情,比如讀/寫內存、等待作業完成、等待柵欄、跳轉/分支……

有人提到 為了組織程序員的工作,集成了一個 Cortex-M7 微控制器 在 GPU 上分開,並提供一個特殊的命令執行單元來執行 CSF 指令。 這些功能需要從根本上不同的組織來將工作從用戶空間轉移到 GPU。

控制器 PanCSF 借用了典型的控制器初始化模板, 頻率管理和電源管理,這可能會隨著新 Mali GPU 上的一些電源管理功能轉移到固件而改變。

如果 CSF 只是簡單地擺脫基於描述符的作業提交方法,我們就可以通過最少數量的內核更改來擺脫困境,並壓縮 CSF 對現有內核驅動程序的支持。

值得注意的是,對於那些不熟悉圖形 API 的人來說,值得記住的是,Vulkan 試圖通過顯式顯示圖形管道的大部分管理來將控制權交還給用戶,而 OpenGL 則試圖隱藏一些東西給用戶,讓他們自己過日子更輕鬆。

最後要提到的是 未來的開發者 請注意,此 RFC 雖然至少部分起作用(到目前為止僅在基本 GLES2 工作負載上進行了測試),但遠未準備就緒並提及 有一些事情需要解決: 就像嘗試使用 drm_sched 而不是實現基於分時的調度程序,具有適當的緩衝區對象驅逐機制來優雅地處理系統處於內存壓力下的情況。

此外,還提到 目前缺乏對電源管理的支持, 設備頻率縮放和可能其他有用的功能,如性能計數器,但與編程和內存管理邏輯相比,它們應該相對容易實現。

最後但並非最不重要的, 預計很快就會發布更改 使用新的驅動程序 在表中。

如果你是 有興趣了解更多關於它的信息, 您可以查看詳細信息 在下面的鏈接中。


發表您的評論

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

*

*

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