PowerVR:推动开源 Zink 与 OpenGL ES 支持的发展路径

我很高兴能和大家分享本周实现的一项重要成就:PowerVR 开源 Vulkan 驱动(自 Mesa 26.1 起)现已支持 Zink。借助这一能力,该驱动可以支持更为庞大的应用程序库。

Zink:https://docs.mesa3d.org/drivers/zink.html

Zink 解决了通过 Vulkan 运行 OpenGL 和 OpenGL ES 应用的问题。它是一种转换层,不针对特定 GPU 架构,而是生成 Vulkan API 调用。通过 Zink,原本仅支持 Vulkan 的设备也能够实现完整的桌面级 OpenGL 支持,同时也为移动和嵌入式领域的应用开发者和厂商提供 OpenGL ES 支持。

在业界,转换层已成为一种有价值的解决方案,通过基于更先进、功能更强大且性能更优的图形API(例如Vulkan)构建,从而缓解上一代图形API的淘汰问题。Zink并非唯一的转换层:例如,谷歌就维护着名为ANGLE的自有解决方案,以帮助安卓系统应对WebGL和OpenGL ES的逐步淘汰。

在软件图形行业中,OpenGL 和 OpenGL ES 自 20 世纪 90 年代初以来一直是无可争议的里程碑,也是整整一代 3D 加速应用的基础支柱。其中一些应用至今仍在使用,但可能不会被移植到 Vulkan 平台。

我们希望开源驱动能够为这些基于 OpenGL(ES)的应用提供硬件加速,但由于该驱动仅支持 Vulkan,因此必须具备向后兼容的能力。引入 Zink 支持,是 Imagination 在软件领域做出的最具前瞻性、面向未来的设计决策之一。

截至 2025 年 10 月,我们工程团队已将所有基于 Vulkan 1.2 的工作已合并到上游 Mesa 项目中;

https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/36412

https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/37512

https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/37761

在过去的几个月里,我们仍在不断的进行适配工作,以全面启用上游对 Zink 的支持。这项工作包括:

  • VK_EXT_dynamic_rendering 带来的挑战:它体积庞大、(从代码角度看)侵入性强,且可能导致大量测试出现回归。我们的目标是以一种简洁的方式添加新代码,确保这些代码仅在动态渲染时被调用,从而缩小潜在回归的范围。未来的改进包括移除旧版渲染通道代码。事实上,得益于 Mesa Vulkan 运行时中的现有实现,我们可以通过动态渲染提供相同的功能

  • VK_EXT_image_drm_format_modifier:在这个扩展上的工作真切地证明了开源软件能够受益于社区的贡献。过去几个月里,Imagination 成功将众多代码更新推送到了上游主线中。我们希望在公共领域推动开发进程,而社区给予的反馈也非常积极------最终,这让更多人能够参与到贡献中来。我们要感谢 Icenowy Zheng 在基于PowerVR的平台(如BXM-4-64 GPU)上提供的帮助与协作,主动测试并将KMSRO相关的修改推向上游,并分享了 VK_EXT_image_drm_format_ modifier 的实现。同样,衷心感谢 Erico Nunes 为Weston上游合入了Vulkan渲染器,并率先将其与PowerVR驱动配合使用。

KMSRO相关的修改:

https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/38810

VK_EXT_image_drm_format_ modifier 的实现

https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/38991

Vulkan渲染器

https://gitlab.freedesktop.org/wayland/weston/-/merge_requests/1679

  • 还要感谢Ella Stanforth在 VK_KHR_sampler_ycbcr_conversion 上提供的帮助,Zink间接需要这个扩展,它实际上是 VK_EXT_image_drm_format_modifier 的一个依赖项。这个YCbCr扩展与硬件密切相关,依赖于GPU如何处理全新类型的像素格式及其在内存中的布局。

  • 我们完成的最后一项重要工作,是扩展 Zink,使其能够利用 KMSRO(Kernel Mode Setting Render Only)Mesa 框架。

随着所有环节就绪,Imagination 的开源驱动程序现在能够支持Zink。目前,我们已启动通过 Khronos Vulkan 1.2 和 OpenGL ES 一致性测试套件的工作,在未来几个月内我们会随时向大家更新进展。

借此机会,我要感谢 Mesa 社区对 Zink 框架的设计、开发和维护工作。

这个项目充分展现了开源开发过程中多方协作后带来的成就。我们感激每一位投入时间和精力,通过审阅代码、提供补丁等方式推动PowerVR向前迈进的开发者!

作者:Luigi Santivetti

英文链接:https://blog.imaginationtech.com/powervr-the-path-to-open-source-zink-and-opengl-es-support

声明:本文为原创文章,转载需注明作者、出处及原文链接。

END

欢迎加入Imagination GPU与人工智能交流2群

入群请加小编微信:eetrend89

(添加请备注公司名和职称)

成功案例:象帝先计算技术与Imagination合作------面向现代图形与计算工作负载的专业GPU

专家洞察:功率而非面积:边缘GPU设计为何迎来新纪元

Imagination Technologies 是一家总部位于英国的公司,致力于研发芯片和软件知识产权(IP),基于Imagination IP的产品已在全球数十亿人的电话、汽车、家庭和工作场所中使用。获取更多物联网、智能穿戴、通信、汽车电子、图形图像开发等前沿技术信息,欢迎关注 Imagination Tech!

相关推荐
孙启超26 分钟前
Token太贵自己写了一个mac版开源AI编程工具
人工智能·macos·开源·llm·agent·ai编程·ai应用开发
ERD Online1 小时前
我们怎么设计 good first issue:让第一个 PR 两小时内合入
数据库·git·后端·开源·issue
ltl2 小时前
红芯浏览器与「国产内核」往事:披皮事件的工程复盘
开源
河南三丰环保设备有限公司11 小时前
商丘梁园区PV、PC、PVC等材料炼油推荐
开源
2401_8949155315 小时前
GEO 源码部署如何实现精准地域分发?核心配置参数深度讲解
java·运维·服务器·后端·开源
TunerT_TQ16 小时前
Valhalla 静态工程审阅 |Sim 源码证据驱动评测【开源基础设施特辑】
开源·#推荐系统·#typescript·#开源供应链安全·#agent构建
fthux20 小时前
装闭 RenoPit 源码解析(02):AI装修闭坑系统数据库与模型设计
人工智能·ai·开源·github·open source·renopit
破晓单片机20 小时前
096、STM32项目分享开源:蓝牙智能手环
stm32·单片机·嵌入式硬件·开源
FIT2CLOUD飞致云21 小时前
操作教程丨在千问办公中使用Cordys CRM Skills技能,落地AI CRM
ai·开源·crm·销售管理·cordys crm·千问办公
元岳数字人小元21 小时前
数字人开源技术优势解析,助力智能交互普及落地
运维·人工智能·开源·人机交互·交互