0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

峰會(huì)回顧第10期 | 開源圖形驅(qū)動(dòng)在OpenHarmony上的使用和落地

OpenHarmony TSC ? 來源:OpenHarmony TSC ? 作者:OpenHarmony TSC ? 2023-05-15 09:30 ? 次閱讀

演講嘉賓 | 黃 然

回顧整理 | 廖 濤

排版校對(duì) | 李萍萍

12114eb4-f2c0-11ed-a6d0-dac502259ad0.png

嘉賓簡介

黃然,華為終端BG軟件部資深圖形技術(shù)專家,華為終端游戲標(biāo)準(zhǔn)、工具和分析創(chuàng)始人,GPU Turbo黑科技核心成員,在OpenHarmony社區(qū)上擔(dān)任開源圖形驅(qū)動(dòng)SIG、游戲SIG、兼容性工作組組長等職務(wù)。

內(nèi)容來源

第一屆開放原子開源基金會(huì)OpenHarmony技術(shù)峰會(huì)——OS內(nèi)核及視窗分論壇

正 文 內(nèi) 容

圖形驅(qū)動(dòng)也是一種軟件程序,它串聯(lián)了操作系統(tǒng)和應(yīng)用程序與計(jì)算機(jī)圖形硬件進(jìn)行通信和交互,是發(fā)揮硬件性能為操作系統(tǒng)提供高質(zhì)量圖形顯示的關(guān)鍵環(huán)節(jié)。OpenHarmony在開源圖形驅(qū)動(dòng)的使用和落地上做了哪些工作呢?OpenHarmony游戲SIG組、圖形驅(qū)動(dòng)SIG組組長、華為終端圖形資深技術(shù)專家黃然在第一屆OpenHarmony技術(shù)峰會(huì)上給大家?guī)砹藥c(diǎn)分享。

125998e0-f2c0-11ed-a6d0-dac502259ad0.png

01?

OpenHarmony圖形驅(qū)動(dòng)面臨的挑戰(zhàn)

圖形驅(qū)動(dòng)技術(shù)的演進(jìn)始終跟GPU硬件的發(fā)展相關(guān)。1975年至今,隨著GPU硬件由早期的專業(yè)領(lǐng)域高端圖形工作站發(fā)展到臺(tái)式機(jī)GPU顯卡,再到如今的移動(dòng)終端、云和服務(wù)器GPU顯卡,圖形驅(qū)動(dòng)API也由OpenGL演進(jìn)到了DirectX。

12f11dc8-f2c0-11ed-a6d0-dac502259ad0.png

目前,圖形驅(qū)動(dòng)領(lǐng)域的主流廠商都對(duì)自身的核心代碼閉源,Arm Mali、Qualcomm Adreno和Nvidia等開源圖形驅(qū)動(dòng)也并沒有特別“Open”。

隨著開源運(yùn)動(dòng)的興起和成功,AMD英特爾公司的圖形驅(qū)動(dòng)開源建立了良好的生態(tài),也取得了不錯(cuò)的效果。對(duì)OpenHarmony這樣一個(gè)完全開源的操作系統(tǒng)來說,圖形開源驅(qū)動(dòng)有很好的借鑒和學(xué)習(xí)意義,當(dāng)然也存在著諸多挑戰(zhàn)。掌握開源圖形驅(qū)動(dòng)有多難呢?首先圖形驅(qū)動(dòng)的開發(fā)和研究需要具備扎實(shí)的軟硬件開發(fā)功底,且由于開源圖形驅(qū)動(dòng)在國內(nèi)的發(fā)展很慢,少有開發(fā)者專門從事該項(xiàng)工作,缺乏技術(shù)交流和實(shí)踐經(jīng)驗(yàn)分享。下圖為黃然老師前期在開源驅(qū)動(dòng)領(lǐng)域?qū)W習(xí)和研究所做的筆記:

此外,對(duì)于OpenHarmony來說,當(dāng)前大部分的小廠商無法獲得閉源GPU廠商的支持,導(dǎo)致視覺流暢體驗(yàn)較差,限制了非常多OpenHarmony產(chǎn)品的商用,在一定程度上也阻礙了OpenHarmony生態(tài)的推廣。

02?

開源圖形驅(qū)動(dòng)架構(gòu)介紹

由于從驅(qū)動(dòng)角度,OpenHarmony富設(shè)備的內(nèi)核是基于Linux的,故首先介紹下Linux開源驅(qū)動(dòng)的整體架構(gòu)。整個(gè)驅(qū)動(dòng)的架構(gòu)可以分為2D和3D兩個(gè)部分,2D部分的比較老的框架是基于X11,而比較新的框架是基于Wayland。

3D的部分驅(qū)動(dòng)通過mesa,將OpenGLES或者Vulkan的API以及shader轉(zhuǎn)化為硬件的ISA。而2D的DDX驅(qū)動(dòng)通過glamor也可以走到mesa層,這樣避免了2D和3D分岔的驅(qū)動(dòng)路線(過去曾經(jīng)是分岔的,2D走DDX)。

整體的驅(qū)動(dòng)是UMS+KMS結(jié)構(gòu),UMS負(fù)責(zé)用戶層驅(qū)動(dòng)的解析,而KMS用來做顯示和硬件渲染,通過libdrm和DRM來形成UMS到KMS的傳遞。

1347dd7a-f2c0-11ed-a6d0-dac502259ad0.png

在圖形驅(qū)動(dòng)中有幾個(gè)關(guān)鍵概念:

一是LLVM、TGSI和Gallium。TGSI是一種用于描述著色器的中間語言,是所有驅(qū)動(dòng)程序使用的唯一中間表示,所有的Shader都會(huì)轉(zhuǎn)化為中間的IR。而Gallium是LLVM的后端,能夠基于不同硬件進(jìn)行不同硬件的ISA繪制,如圖中的radeonsi就是AMD的radeon的后端渲染。

13930106-f2c0-11ed-a6d0-dac502259ad0.png

二是ISA。ISA由控制流(CF)指令、ALU指令、通過紋理緩存提取的指令和通過頂點(diǎn)緩存提取的指令組成,其中控制流程序通過使用控制流指令(條件跳轉(zhuǎn)、循環(huán)和子例程)來指導(dǎo)程序子句的流,包括內(nèi)存分配指令和其他指令,這些指令可以指定頂點(diǎn)和幾何程序何時(shí)完成相關(guān)操作,類似CPU匯編語言。

三是Fence。Fence能夠讓GPU和CPU協(xié)調(diào)工作,提高圖像顯示的速度。通過Fence機(jī)制產(chǎn)生的GPU的事件,能夠保證用戶態(tài)程序下發(fā)的渲染命令被順序執(zhí)行,從而保證上層應(yīng)用程序渲染相關(guān)數(shù)據(jù)的一致性。

13aa541e-f2c0-11ed-a6d0-dac502259ad0.png

03?

開源圖形驅(qū)動(dòng)在OpenHarmony上的移植

OpenHarmony驅(qū)動(dòng)框架支持多種接入模式,能夠?qū)崿F(xiàn)南向硬件的快速部署。其中,顯示框架支持Display_Gralloc、Display_Gfx和Device HDI的3類南向接口,其中,Display_Gralloc負(fù)責(zé)內(nèi)存分配;Display_Gfx負(fù)責(zé)圖形硬件2D繪制,可以用于離線合成;Device HDI負(fù)責(zé)顯示設(shè)備特性管理,包括屏幕顯示,在線及離線硬件合成,硬件Vsync,顯示設(shè)備色彩管理等。在開發(fā)板能力支持方面,RK3568和HI3516dv300支持DRM內(nèi)存分配、DRM送顯以及硬件離線合成,HI3751V350支持支持FbDev 和DmaBuf-Heap、支持FbDev顯示,不支持硬件離線合成。

13b66844-f2c0-11ed-a6d0-dac502259ad0.png

針對(duì)上述OpenHarmony驅(qū)動(dòng)框架的整體情況,開源GPU驅(qū)動(dòng)的適配工作主要分為以下3個(gè)階段進(jìn)行:(1)驗(yàn)證內(nèi)核panfrost驅(qū)動(dòng)和用戶態(tài)panfrost驅(qū)動(dòng)可以正常工作;(2)開源GPU驅(qū)動(dòng)適配OpenHarmony(Flutter+weston)舊框架;(3)開源GPU驅(qū)動(dòng)適配OpenHarmony(RenderService)新框架。目前,越來越多的興趣開發(fā)者參與到了OpenHarmony的開源圖形驅(qū)動(dòng)適配和移植的工作中,近期有一些用戶已經(jīng)成功將高通開源驅(qū)動(dòng)移植到移動(dòng)終端上,使其能夠運(yùn)行一些2D和3D的應(yīng)用。這意味著開源驅(qū)動(dòng)在OpenHarmony上生態(tài)正在朝著良好的方向發(fā)展。

從GLmark2跑分情況來看,OpenHarmony開源驅(qū)動(dòng)在2D的紋理處理等方面表現(xiàn)比閉源驅(qū)動(dòng)優(yōu)異,在關(guān)鍵的著色和陰影、地形等偏3D的方面表現(xiàn)還較差。即便如此,在2D和3D開源圖形驅(qū)動(dòng)上的性能提升已經(jīng)足以滿足絕大多數(shù)產(chǎn)品的需求。

當(dāng)然,在這個(gè)過程中,還有一些伙伴參考當(dāng)前的工作,把高通的freedreno開源驅(qū)動(dòng)也完成了移植,并且可以在小米等手機(jī)上可以運(yùn)行和使用開源驅(qū)動(dòng),如下:

13cb5a24-f2c0-11ed-a6d0-dac502259ad0.png

未來我們還會(huì)在X86基礎(chǔ)的AMD以及Intel GPU上使能開源驅(qū)動(dòng),服務(wù)于OpenHamrony,也希望更多的小伙伴可以一起加入社區(qū)微信群SIG-OpenGfxDrv共建圖形驅(qū)動(dòng),對(duì)應(yīng)的gitee鏈接為:https://gitee.com/openharmony/third_party_mesa3d

04?

總結(jié)&展望

真正想做好圖形競(jìng)爭力,就要了解GPU的工作機(jī)制和圖形驅(qū)動(dòng)原理,OpenHarmony社區(qū)正是一個(gè)交流和學(xué)習(xí)的良好平臺(tái);OpenHarmony開源圖形驅(qū)動(dòng)是未來趨勢(shì),也會(huì)是歷史最終選擇,希望有越來越多的興趣開發(fā)者能夠參與到開源圖形驅(qū)動(dòng)的適配和移植工作中來,共建OpenHarmony生態(tài)。

E N D

點(diǎn)擊下方閱讀原文獲取演講PPT。

關(guān)注我們,獲取更多精彩。


審核編輯黃宇


聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • 開源
    +關(guān)注

    關(guān)注

    3

    文章

    3189

    瀏覽量

    42251
  • OpenHarmony
    +關(guān)注

    關(guān)注

    25

    文章

    3613

    瀏覽量

    15987
收藏 人收藏

    評(píng)論

    相關(guān)推薦

    高燃回顧|第三屆OpenHarmony技術(shù)大會(huì)精彩瞬間

    第三屆OpenHarmony技術(shù)大會(huì)圓滿落幕 全球開源精英齊聚 共同展示OpenHarmony技術(shù)、生態(tài)、人才的最新進(jìn)展 見證OpenHarmony南北向生態(tài)繁榮 共繪
    發(fā)表于 10-16 18:47

    開放原子開源生態(tài)大會(huì)OpenHarmony生態(tài)主題演講報(bào)名開啟

    展示OpenHarmony的技術(shù)創(chuàng)新和產(chǎn)業(yè)落地成果,分享開源社區(qū)生態(tài)進(jìn)展。 誠邀全球開源操作系統(tǒng)產(chǎn)業(yè)伙伴、技術(shù)大咖和學(xué)術(shù)專家,共同見證開源
    發(fā)表于 09-19 22:02

    第二屆大會(huì)回顧25 | OpenHarmony的Python設(shè)備應(yīng)用開發(fā)

    Python以其簡單、易學(xué)和功能強(qiáng)大而聞名,有著廣泛的用戶群體。采用Python開發(fā)有助于降低OpenHarmony的學(xué)習(xí)門檻。如何在OpenHarmony用Python開發(fā)設(shè)備應(yīng)用,有哪些關(guān)鍵技術(shù)?電
    的頭像 發(fā)表于 08-27 11:53 ?414次閱讀
    第二屆大會(huì)<b class='flag-5'>回顧</b><b class='flag-5'>第</b>25<b class='flag-5'>期</b> | <b class='flag-5'>OpenHarmony</b><b class='flag-5'>上</b>的Python設(shè)備應(yīng)用開發(fā)

    OpenHarmony城市技術(shù)論壇10——上海站圓滿舉辦

    2024年8月18日下午,OpenHarmony城市技術(shù)論壇(以下簡稱“技術(shù)論壇”)10——上海站于上海交通大學(xué)徐匯校區(qū)圓滿舉辦。本次技術(shù)論壇以“通用智能、通用機(jī)器人和通用操作系統(tǒng)
    的頭像 發(fā)表于 08-21 09:35 ?208次閱讀
    <b class='flag-5'>OpenHarmony</b>城市技術(shù)論壇<b class='flag-5'>第</b><b class='flag-5'>10</b><b class='flag-5'>期</b>——上海站圓滿舉辦

    第二屆大會(huì)回顧24 | 面向OpenHarmony的軟件工程研究:機(jī)遇與挑戰(zhàn)

    隨著萬物智聯(lián)時(shí)代的到來,OpenHarmony作為一個(gè)開源的智能終端設(shè)備操作系統(tǒng)的框架和平臺(tái),將會(huì)遇到哪些機(jī)遇和挑戰(zhàn)?北京航空航天大學(xué)教授、OpenHarmony技術(shù)俱樂部主任黎立
    的頭像 發(fā)表于 08-07 18:14 ?798次閱讀
    第二屆大會(huì)<b class='flag-5'>回顧</b><b class='flag-5'>第</b>24<b class='flag-5'>期</b> | 面向<b class='flag-5'>OpenHarmony</b>的軟件工程研究:機(jī)遇與挑戰(zhàn)

    OpenHarmony城市技術(shù)論壇8——廈門站圓滿落幕

    2024年4月20日上午,OpenHarmony城市技術(shù)論壇(以下簡稱“技術(shù)論壇”)8——廈門站,廈門大學(xué)翔安校區(qū)信息學(xué)院圓滿落幕。此次論壇從“終端操作系統(tǒng)十大技術(shù)挑戰(zhàn)”出發(fā),以
    的頭像 發(fā)表于 04-22 10:38 ?312次閱讀
    <b class='flag-5'>OpenHarmony</b>城市技術(shù)論壇<b class='flag-5'>第</b>8<b class='flag-5'>期</b>——廈門站圓滿落幕

    OpenHarmony城市技術(shù)論壇——6(武漢站)圓滿舉辦

    點(diǎn)擊藍(lán)字 ╳ 關(guān)注我們 開源項(xiàng)目 OpenHarmony 是每個(gè)人的 OpenHarmony 2023年12月23日下午,OpenHarmony城市技術(shù)論壇(以下簡稱“技術(shù)論壇”)——
    的頭像 發(fā)表于 12-26 21:20 ?675次閱讀
    <b class='flag-5'>OpenHarmony</b>城市技術(shù)論壇——<b class='flag-5'>第</b>6<b class='flag-5'>期</b>(武漢站)圓滿舉辦

    【堅(jiān)果派】JS開源庫適配OpenHarmony系列——第一實(shí)操

    由于OpenHarmony應(yīng)用是基于ArkTS開發(fā),而ArkTS是保持TypeScript(簡稱TS)基礎(chǔ)語法風(fēng)格的基礎(chǔ),對(duì)TS的動(dòng)態(tài)類型特性施加更嚴(yán)格的約束,引入靜態(tài)類型。因此
    的頭像 發(fā)表于 12-26 10:48 ?976次閱讀
    【堅(jiān)果派】JS<b class='flag-5'>開源</b>庫適配<b class='flag-5'>OpenHarmony</b>系列——第一<b class='flag-5'>期</b>實(shí)操

    第二屆大會(huì)回顧6 | OpenHarmony游戲生態(tài)建設(shè)

    Turbo黑科技核心成員,OpenHarmony社區(qū)擔(dān)任開源圖形驅(qū)動(dòng)SIG、游戲SIG、兼
    的頭像 發(fā)表于 12-26 08:36 ?351次閱讀
    第二屆大會(huì)<b class='flag-5'>回顧</b><b class='flag-5'>第</b>6<b class='flag-5'>期</b> | <b class='flag-5'>OpenHarmony</b>游戲生態(tài)建設(shè)

    OpenHarmony開源GPU庫Mesa3D適配說明

    ,對(duì)下使用Gallium框架,屏蔽驅(qū)動(dòng)差異。RK3568中,panfrost對(duì)ARM GPU提供了非常好的開源驅(qū)動(dòng)支持。 二、適配方法
    發(fā)表于 12-25 11:38

    潤開鴻基于高性能RISC-V開源架構(gòu)DAYU800通過OpenHarmony兼容性測(cè)評(píng)

    的平板電腦、邊緣計(jì)算網(wǎng)關(guān)及云桌面終端,助推產(chǎn)業(yè)應(yīng)用及落地。 潤開鴻于2023 RISC-V中國峰會(huì)發(fā)布三款基于RISC-V 架構(gòu)和 OpenHarmony操作系統(tǒng)的終端新品 RISC-V的
    發(fā)表于 12-14 17:33

    上海站報(bào)名啟動(dòng)! 2023年開源產(chǎn)業(yè)生態(tài)大會(huì)OpenHarmony生態(tài)分論壇

    趨勢(shì),解讀開源應(yīng)用成功案例,為行業(yè)提供借鑒。重點(diǎn)議題包括OpenHarmony商用車座艙、交通、智慧城市、金融、醫(yī)療、制造等行業(yè)落地的成功案例以及商業(yè)化最新進(jìn)展等,精彩內(nèi)容不容錯(cuò)過。
    發(fā)表于 11-24 14:55

    精彩預(yù)告 | OpenHarmony即將亮相MTSC 2023

    MTSC 2023 12 屆中國互聯(lián)網(wǎng)測(cè)試開發(fā)大會(huì)(深圳站)即將于 2023 年 11 月 25 日,深圳登喜路國際大酒店舉辦,大會(huì)將以“1 個(gè)主會(huì)場(chǎng)+4 個(gè)平行分會(huì)場(chǎng)”的形式呈現(xiàn),聚集一眾
    發(fā)表于 11-22 10:28

    高能回顧 | 首屆OpenHarmony競(jìng)賽訓(xùn)練營精彩瞬間

    點(diǎn)擊藍(lán)字 ╳ 關(guān)注我們 開源項(xiàng)目 OpenHarmony 是每個(gè)人的 OpenHarmony 首屆OpenAtom OpenHarmony(以下簡稱“
    的頭像 發(fā)表于 11-11 21:10 ?450次閱讀

    OpenHarmony社區(qū)運(yùn)營報(bào)告(2023年10月)

    為開發(fā)者數(shù)據(jù)分享帶來了全新的統(tǒng)一數(shù)據(jù)管理框架。另外,該版本媒體、安全和隱私保護(hù)等方面也得到了進(jìn)一步增強(qiáng)。 ● 10月,基于OpenHarmony打造的智慧隧道解決方案江西高速老營盤
    發(fā)表于 11-09 08:42