Panfrost已在ARM的Midgard和Bifrost框架GPU上完成了对OpenGL ES 3.1的支持

原文链接:Panfrost now supports OpenGL ES 3.1 on Midgard (Mali T760 and newer) and Bifrost (Mali G31, G52, G76) GPUs 由Jean-Luc Aufranc撰写。

2020 年 2 月,Collabora开源组织完成了Panfrost(ARM Mali GPU的开源驱动项目)对OpenGL ES 3.0的实验性支持,且在当年 12 月发布了支持Panfrost 的 Mesa 20.3版本(Mesa即OpenGL 的一个开源实现)。

虽然Collabora开源组织现已开始研究Panvk —— Panfrost  Vulkan(即OpenGL的下一代版本)驱动程序了,但这并不意味着他们对OpenGL ES 的支持工作就已终止。该公司在2021年6月份曾发表过一篇关于 Panfrost 支持 OpenGL ES 3.1 的博客文章

Panfrost支持OpenGL ES 3.1
Panfrost支持OpenGL ES 3.1

Panfrost 的项目负责人Alyssa Rosenzweig解释说:“Panfrost 对 OpenGL ES 3.1 的支持范围已经扩大到Arm GPU旧框架的Midgard框架 GPU(也就是Mali T760 版本和更新版本和Arm GPU新框架的 Bifrost 框架GPU上了 比如:Mali-G31、Mali-G52 和 Mali-G76

与 OpenGL ES 3.0 相比,OpenGL ES 3.1 添加了计算着色器、间接绘制和无附加帧缓冲区。Boris Brezillon、Italo、Nicola、Alyssa 和更广泛的 Mesa 开源社区贡献者们都特别注重在采用 Bifrost框架的 Mali-G52 GPU 适配上工作,该GPU的Panfrost 驱动程序基本上通过了所有 drawElements 质量计划和 Khronos 一致性测试,它的最终目标是具有正式 OpenGL ES 3.1 的一致性。在Bifrost 框架上进行工作的同时也帮助 了Midgard框架 的Panfrost 驱动程序适配,例如, Mali T860通过了大约99.5%的OpenGL ES 3.1一致性测试。

对 Panfrost 驱动程序所做的包括向 Bifrost 编译器添加指令调度程序和“脏跟踪”的实现在内的其他修改,都是一种常见图形驱动程序的优化。这种优化可以更改跟踪状态,从而监控“脏”(已修改)和“干净”(未修改)的状态,以便仅为“脏状态”发出命令时,减少 CPU 消耗和工作所需用到的 GPU 。Panfrost 中的“脏跟踪”将一个未命名合成基准中的每秒绘制次数提高了约 400%。

展望未来,将于2021年7月发布的 Mesa 21.2 会完善 Panfrost 对OpenGL ES 3.1 的支持。随后还会进行一些 Bifrost 性能的改进,如引入对 Arm Valhall GPU(Mali G77和更新的版本)的支持等。

分享这篇文章
订阅评论
提醒
0 评论
内联反馈
查看所有评论