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. 权利:您可以随时限制,恢复和删除您的信息。