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!

相关推荐
ZStack开发者社区7 小时前
ZSvirt 开源月报第 1 期 · Around the World
开源·云计算·vmware·虚拟化
冬奇Lab7 小时前
一天一个开源项目(第224篇):ARTEMIS —— 谷歌开源的移动端 AI 自动化框架,让 AI 助手像人一样操作手机
人工智能·开源·测试
caoerzhong9 小时前
JeeWMS 开源仓库管理系统全景解读:一套 Java WMS 如何把 WMS/OMS/BMS/TMS 装进同一个系统
java·开源
星核0penstarry12 小时前
从“一次生成“到“持续进化“:自进化社媒 Agent 的工作流拆解
人工智能·开源·agent
行者全栈架构师15 小时前
大模型运维准确率不到 50%?我们用 DeepSeek V4 测了 5 大场景,结果出人意料
linux·人工智能·开源
Erishen18 小时前
tsm-hub:把 LLM、Tools、MCP、Skills 收进一个统一网关
架构·开源·agent
辰域电子18 小时前
STM32项目开源:实验室消防预警控制系统(代码 + 原理图 + 仿真)
stm32·单片机·嵌入式硬件·开源·proteus
m4Rk_19 小时前
【论文阅读】Agent 记忆机制(76):SEEM——从碎片检索到完整事件重建
论文阅读·人工智能·学习·开源·github
魔众19 小时前
3 步让 LinkAndroid 投屏用电脑键盘打中文
开源
企业数字化笔记20 小时前
低代码、开源系统、定制开发怎么选?用资产管理案例做技术取舍
低代码·开源