Panfrost現在具有對Mali GPU的OpenGL 3.1支持

Collabora開發人員並未停止工作,這是最近幾個月來他們有很多要談論的話題,這次也不例外,因為最近 宣布他宣佈在Panfrost驅動程序中實現OpenGL 3.1支持 適用於Midgard GPU(Mali-T6xx,Mali-T7xx,Mali-T8xx)和Bifrost GPU(Mali G3x,G5x,G7x),以及對Bifrost GPU的OpenGL ES 3.0支持。

這些變化 預計將包含在Mesa 21.0版本中,目前處於啟動候選階段。

應當記住,Collabora開發人員已經為表的控制器的實現工作了很長時間,而這的一個例子就是過去 鎵桌面控制器, 實現中間層 組織OpenCL 1.2和OpenGL 3.3 API 有關支持DirectX 12(D3D12)的驅動程序,以及其源代碼是根據MIT許可證發布的。

建議的控制器 允許您在設備上使用Mesa 最初不兼容 與OpenCL和OpenGL 並作為移植OpenGL / OpenCL應用程序以在D3D12上運行的起點。

在新的Panfrost驅動程序方面,可以觀察到GPU Midgard和Bifrost共享共同的數據結構 用於固定功能,但是 Bifrost使用了完全不同的指令集,這使得同步執行GPU數據功能變得困難。

從結構上講,Bifrost與Midgard共享了大多數固定功能數據結構,但是引入了一組新的指令。 我們將OpenGL ES 3.0引入Bifrost的工作反映了這一劃分。

某些實例化功能(例如實例化和變換反饋)無需任何特定的Bifrost更改即可工作,就像我們在Midgard中所做的那樣。 其他著色器功能(例如統一的緩衝區對象)需要Bifrost編譯器中的“從頭開始”實現,這是編譯器成熟的中間表示形式以及一流的構建支持使這項任務變得容易的事情。

例如: 已為Midgard實現的固定功能例如“轉換反饋”, 可以直接轉移到Bifrost, 而諸如多個渲染目標(MRT)之類的功能僅限於某些特定的Bifrost更改。

同時,其他著色器操作(例如統一緩衝區對象)需要對Bifrost著色器編譯器進行臨時實現。

在此之前,Midgard於今年夏天推出了對OpenGL ES 3.0的支持,以及最近為Bifrost首次推出的OpenGL ES 2.0最初的支持。 OpenGL ES 3.0現在已在Mesa的持續集成中的Mali G52上進行了測試,在相應的DrawElements Quality Program測試中通過率達到99.9%。

但是,其他功能(例如多個渲染目標)需要Bifrost提供特定的代碼,同時還要利用與Midgard共享的其他代碼。 儘管如此,第二次工作進展得更快,這證明了共享代碼的強大功能。 但是您不必將交換限制為僅使用Panfrost GPU。 開源驅動程序可以在供應商之間共享代碼。

另外,在公告中提到 通過在編譯器中使用中間表示,避免了某些重複工作, 與共享代碼一起,可以大大加快開發速度,並且通過這種方法,該代碼不僅可以用於一系列GPU,而且還可以用於不同的控制器。

特別是,開發人員提到,為了在桌面系統上實現OpenGL,Panfrost驅動程序需要使用現成的Mesa組件,而Mali的專有驅動程序僅限於僅支持OpenGL ES。

但是,通過利用通用基礎結構,作為上游Mesa控制器,桌面OpenGL 3.1支持幾乎是“免費”的。

最後, 如果您有興趣了解更多信息 關於Collabora開發人員提議的新Panfrost實施,您可以查看詳細信息 在下面的鏈接中。


發表您的評論

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

*

*

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