我很高興能和大家分享本周實現(xiàn)的一項重要成就:PowerVR開源Vulkan驅(qū)動(自Mesa 26.1起)現(xiàn)已支持Zink。借助這一能力,該驅(qū)動可以支持更為龐大的應(yīng)用程序庫。
Zink:https://docs.mesa3d.org/drivers/zink.html
Zink解決了通過Vulkan運行OpenGL和OpenGL ES應(yīng)用的問題。它是一種轉(zhuǎn)換層,不針對特定GPU架構(gòu),而是生成Vulkan API調(diào)用。通過Zink,原本僅支持Vulkan的設(shè)備也能夠?qū)崿F(xiàn)完整的桌面級OpenGL支持,同時也為移動和嵌入式領(lǐng)域的應(yīng)用開發(fā)者和廠商提供OpenGL ES支持。
在業(yè)界,轉(zhuǎn)換層已成為一種有價值的解決方案,通過基于更先進(jìn)、功能更強(qiáng)大且性能更優(yōu)的圖形API(例如Vulkan)構(gòu)建,從而緩解上一代圖形API的淘汰問題。Zink并非唯一的轉(zhuǎn)換層:例如,谷歌就維護(hù)著名為ANGLE的自有解決方案,以幫助安卓系統(tǒng)應(yīng)對WebGL和OpenGL ES的逐步淘汰。
在軟件圖形行業(yè)中,OpenGL和OpenGL ES自20世紀(jì)90年代初以來一直是無可爭議的里程碑,也是整整一代3D加速應(yīng)用的基礎(chǔ)支柱。其中一些應(yīng)用至今仍在使用,但可能不會被移植到Vulkan平臺。
我們希望開源驅(qū)動能夠為這些基于OpenGL(ES)的應(yīng)用提供硬件加速,但由于該驅(qū)動僅支持Vulkan,因此必須具備向后兼容的能力。引入Zink支持,是Imagination在軟件領(lǐng)域做出的最具前瞻性、面向未來的設(shè)計決策之一。
截至2025年10月,我們工程團(tuán)隊已將所有基于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
在過去的幾個月里,我們?nèi)栽诓粩嗟倪M(jìn)行適配工作,以全面啟用上游對Zink的支持。這項工作包括:
VK_EXT_dynamic_rendering帶來的挑戰(zhàn):它體積龐大、(從代碼角度看)侵入性強(qiáng),且可能導(dǎo)致大量測試出現(xiàn)回歸。我們的目標(biāo)是以一種簡潔的方式添加新代碼,確保這些代碼僅在動態(tài)渲染時被調(diào)用,從而縮小潛在回歸的范圍。未來的改進(jìn)包括移除舊版渲染通道代碼。事實上,得益于Mesa Vulkan運行時中的現(xiàn)有實現(xiàn),我們可以通過動態(tài)渲染提供相同的功能
- VK_EXT_image_drm_format_modifier:在這個擴(kuò)展上的工作真切地證明了開源軟件能夠受益于社區(qū)的貢獻(xiàn)。過去幾個月里,Imagination成功將眾多代碼更新推送到了上游主線中。我們希望在公共領(lǐng)域推動開發(fā)進(jìn)程,而社區(qū)給予的反饋也非常積極——最終,這讓更多人能夠參與到貢獻(xiàn)中來。我們要感謝Icenowy Zheng在基于PowerVR的平臺(如BXM-4-64 GPU)上提供的幫助與協(xié)作,主動測試并將KMSRO相關(guān)的修改推向上游,并分享了VK_EXT_image_drm_format_ modifier的實現(xiàn)。同樣,衷心感謝Erico Nunes為Weston上游合入了Vulkan渲染器,并率先將其與PowerVR驅(qū)動配合使用。
KMSRO相關(guān)的修改:
https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/38810
VK_EXT_image_drm_format_ modifier的實現(xiàn)
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間接需要這個擴(kuò)展,它實際上是VK_EXT_image_drm_format_modifier的一個依賴項。這個YCbCr擴(kuò)展與硬件密切相關(guān),依賴于GPU如何處理全新類型的像素格式及其在內(nèi)存中的布局。
- 我們完成的最后一項重要工作,是擴(kuò)展Zink,使其能夠利用KMSRO(Kernel Mode Setting Render Only)Mesa框架。
隨著所有環(huán)節(jié)就緒,Imagination的開源驅(qū)動程序現(xiàn)在能夠支持Zink。目前,我們已啟動通過Khronos Vulkan 1.2和OpenGL ES一致性測試套件的工作,在未來幾個月內(nèi)我們會隨時向大家更新進(jìn)展。
借此機(jī)會,我要感謝Mesa社區(qū)對Zink框架的設(shè)計、開發(fā)和維護(hù)工作。
這個項目充分展現(xiàn)了開源開發(fā)過程中多方協(xié)作后帶來的成就。我們感激每一位投入時間和精力,通過審閱代碼、提供補丁等方式推動PowerVR向前邁進(jìn)的開發(fā)者!
作者:Luigi Santivetti
英文鏈接:https://blog.imaginationtech.com/powervr-the-path-to-open-source-zink-and-opengl-es-support
聲明:本文為原創(chuàng)文章,轉(zhuǎn)載需注明作者、出處及原文鏈接。
-
驅(qū)動
+關(guān)注
關(guān)注
12文章
1965瀏覽量
88597 -
開源
+關(guān)注
關(guān)注
3文章
4239瀏覽量
46242 -
powervr
+關(guān)注
關(guān)注
0文章
100瀏覽量
31551
發(fā)布評論請先 登錄
Visionfive 2 缺少文件img-gpu-powervr-bin-1.17.6210866.tar.gz怎么解決?
龍芯中科攜手開源鴻蒙,構(gòu)筑縣域高質(zhì)量發(fā)展新基座
支持OpenGL 4.6與Vulkan 1.3,摩爾線程發(fā)布圖形顯卡驅(qū)動v320.130
PowerVR:推動開源 Zink 與 OpenGL ES 支持的發(fā)展路徑
評論