我很高兴能和大家分享本周实现的一项重要成就: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
声明:本文为原创文章,转载需注明作者、出处及原文链接。
-
驱动
+关注
关注
12文章
1989浏览量
88683 -
开源
+关注
关注
3文章
4325浏览量
46427 -
powervr
+关注
关注
0文章
100浏览量
31569
发布评论请先 登录
开源鸿蒙与RISC-V深度融合构建万物智联新底座
Visionfive 2 缺少文件img-gpu-powervr-bin-1.17.6210866.tar.gz怎么解决?
龙芯中科携手开源鸿蒙,构筑县域高质量发展新基座
支持OpenGL 4.6与Vulkan 1.3,摩尔线程发布图形显卡驱动v320.130
PowerVR:推动开源 Zink 与 OpenGL ES 支持的发展路径
评论