演講嘉賓 | 陳秋林
回顧整理 | 廖 濤
排版校對(duì) | 李萍萍
嘉賓簡(jiǎn)介
陳秋林,華為終端OS資深架構(gòu)師、菲爾茲Lab主任,長(zhǎng)期從事終端OS研發(fā),先后負(fù)責(zé)LiteOS、安卓性能優(yōu)化、HMS框架、OpenHarmony視窗系統(tǒng)等架構(gòu)設(shè)計(jì)和技術(shù)開(kāi)發(fā)。
文章內(nèi)容來(lái)源
第一屆開(kāi)放原子開(kāi)源基金會(huì)OpenHarmony技術(shù)峰會(huì)——OS內(nèi)核及視窗分論壇
正 文 內(nèi) 容
視窗繪制是圖形操作系統(tǒng)的基礎(chǔ)能力,它決定終端應(yīng)用圖形界面的顯示性能和質(zhì)量,以及用戶操作的響應(yīng)快慢和流暢體驗(yàn)。在萬(wàn)物智聯(lián)的新場(chǎng)景下,視窗繪制技術(shù)的發(fā)展有哪些挑戰(zhàn),技術(shù)上又有哪些演進(jìn)趨勢(shì)呢?華為終端OS資深架構(gòu)師陳秋林在第一屆OpenHarmony技術(shù)峰會(huì)上,分享了幾點(diǎn)思考。
01?
終端視窗繪制面臨的新挑戰(zhàn)
視窗系統(tǒng)(Windowing system/window system)是圖形操作系統(tǒng)的重要子系統(tǒng)之一,負(fù)責(zé)將應(yīng)用的功能界面以圖形顯示給用戶,并支持用戶對(duì)其通過(guò)觸摸、鍵盤鼠標(biāo)、語(yǔ)音等方式進(jìn)行交互和操控。視窗系統(tǒng)由桌面環(huán)境、GUI框架、顯示服務(wù)以及窗口管理器等4大部分組成,分別負(fù)責(zé)提供應(yīng)用及其入口管理、應(yīng)用開(kāi)發(fā)框架和SDK、圖形界面繪制和顯示、窗口管理和操作控制等功能。
視窗系統(tǒng)
1.1??
高分辨率和高刷新率的普及,帶來(lái)更高的 GUI 繪制挑戰(zhàn)
視窗繪制的計(jì)算負(fù)載由屏幕分辨率、幀率以及畫面質(zhì)量等因素決定。隨著終端軟硬件發(fā)展,屏幕分辨率、幀率以及畫面質(zhì)量不斷提升,視窗繪制負(fù)載不斷升高。如6k分辨率@240Hz屏幕的視窗繪制負(fù)載比2k分辨率@60Hz增長(zhǎng)30多倍。240Hz的刷新率要求CPU&GPU在4ms內(nèi)完成一幀的繪制,屏幕分辨率每提升1倍,GPU負(fù)載和DDR帶寬將提高4倍。
1.2??
跨設(shè)備協(xié)同和跨系統(tǒng)生態(tài)融合,對(duì)視窗的跨設(shè)備和跨系統(tǒng)能力提出挑戰(zhàn)
萬(wàn)物智聯(lián)新場(chǎng)景下,用戶終端設(shè)備種類多,需要支持以用戶中心的多設(shè)備協(xié)同體驗(yàn)。要求視窗系統(tǒng)提供分布式窗口的能力,以支持窗口級(jí)跨設(shè)備流轉(zhuǎn)。此外,PC上不可避免生態(tài)兼容問(wèn)題,如PC上要兼容Linux應(yīng)用、windows應(yīng)用或安卓應(yīng)用。這要求視窗系統(tǒng)具備多源窗口融合管理的能力。這兩方面體驗(yàn)與用戶期望還存在較大差距,需要進(jìn)一步思考在視窗系統(tǒng)上如何做創(chuàng)新。
1.3??
智能座艙等場(chǎng)景 2D/3D UI 融合,對(duì)視窗繪制提出新的性能挑戰(zhàn)
目前,智能座艙的架構(gòu)從“多芯多屏”向“一芯多屏”+“跨域融合”發(fā)展。該趨勢(shì)下,上層應(yīng)用將變得更加復(fù)雜:
(1)儀表域中2D儀表和3D酷炫車體融合顯示;
(2)中控域360AR全景顯示,2D菜單按鈕與3D AR內(nèi)容融合顯示;
(3)HUD域顯示信息與3D場(chǎng)景融合顯示。
在硬件總體算力下降但視窗繪制負(fù)載大幅提升的情況下,視窗系統(tǒng)如何實(shí)現(xiàn)“一芯多屏”、2D/3D UI融合的流暢體驗(yàn)?zāi)兀?/p>
“一芯多屏”架構(gòu)
1.4??
沉浸式場(chǎng)景,帶來(lái)新的交互變化,對(duì)視窗提出新訴求。
沉浸式XR應(yīng)用,與普通終端應(yīng)用在顯示和交互上均有顯著區(qū)別。沉浸式應(yīng)用面對(duì)的是2D、3D融合空間,需要用2D屏幕觸控操控3D對(duì)象,操控點(diǎn)可能在三維空間或三維模型上的某一個(gè)不規(guī)則面上,如何確定操作對(duì)象呢?這涉及三維空間焦點(diǎn)定義問(wèn)題。沉浸式場(chǎng)景,對(duì)視窗系統(tǒng)提出了虛實(shí)融合顯示、3D空間新交互范式以及空間感知等新訴求。
多樣化沉浸式設(shè)備
02?
Linux、安卓和 iOS 視窗繪制架構(gòu)的演進(jìn)
2.1??
Linux 視窗架構(gòu)
Linux視窗架構(gòu)是圍繞性能和生態(tài)兼容兩條線演進(jìn)的。早期使用X11協(xié)議進(jìn)行圖形渲染,后來(lái)采用DRI方式加速繪制,再到Wayland中將Render和窗口管理器集成在一起。在生態(tài)兼容方面,有Xwayland解決X11應(yīng)用與Wayland的兼容,Glamor解決與圖形API兼容等問(wèn)題。
Linux視窗架構(gòu)
2.2??
Android 視窗架構(gòu)
Android視窗架構(gòu)主要圍繞性能演進(jìn)。
第1階段,即Android 3.0之前,使用CPU方式渲染UI;
第2階段,即Android 4.0開(kāi)始,開(kāi)啟硬件加速(GPU渲染);
第3階段,即Android 4.1,引入VSYNC和Triple Buffer;
第4階段,即Android 5.0,實(shí)現(xiàn)了Render線程和UI線程分離。
Android視窗架構(gòu)主要特點(diǎn):
(1)采用分離渲染架構(gòu),每個(gè)應(yīng)用獨(dú)立執(zhí)行動(dòng)畫、渲染;
(2)采用多Buffer輪轉(zhuǎn),來(lái)盡量地規(guī)避丟幀卡頓現(xiàn)象;
(4)2D渲染由Skia圖形庫(kù)承載。
Android視窗架構(gòu)
2.3??
iOS 視窗架構(gòu)
iOS視窗架構(gòu)的演進(jìn)主要聚焦在Metal和AR上的創(chuàng)新,如基于Metal的MPS及AR Kit等。與Linux和安卓上的不同點(diǎn):
(1)采用統(tǒng)一渲染架構(gòu),窗口內(nèi)控件動(dòng)效及跨窗口聯(lián)動(dòng)動(dòng)效統(tǒng)一處理;
(2)近年來(lái)大力發(fā)展AR圖形生態(tài),以AR場(chǎng)景應(yīng)用推動(dòng)3D渲染技術(shù)演進(jìn),并通過(guò)各種Kit提供外掛式3D能力;
(3)圍繞自研GPU及新一代Metal API進(jìn)行垂直整合(軟硬協(xié)同);
(4)各類SDK及開(kāi)發(fā)工具深度整合,各個(gè)Kit間互操作性好,從底層能力到系統(tǒng)框架形成整體解決方案。
iOS視窗架構(gòu)
總的來(lái)說(shuō),Linux視窗架構(gòu)圍繞性能和兼容性持續(xù)演進(jìn),Android視窗架構(gòu)圍繞性能演進(jìn),iOS視窗架構(gòu)演進(jìn)聚焦于統(tǒng)一渲染,垂直整合,與開(kāi)發(fā)工具深度整合。
03?
視窗繪制新技術(shù)和趨勢(shì)
3.1??
高能效 GUI 繪制
以Android為主的當(dāng)代視窗中,GUI繪制與顯示管線的架構(gòu)復(fù)雜,流程冗長(zhǎng),涉及多次進(jìn)程間協(xié)同,并行化低,導(dǎo)致性能及功耗問(wèn)題。此外,2D繪制的CPU與GPU間交互調(diào)用Driver Overhead高,GPU overdraw問(wèn)題嚴(yán)重。針對(duì)上述傳統(tǒng)2D管線現(xiàn)存問(wèn)題,需探索數(shù)據(jù)驅(qū)動(dòng)2D極簡(jiǎn)管線架構(gòu):CPU負(fù)責(zé)生成2D圖元數(shù)據(jù),通過(guò)繪制指令提交到GPU中,GPU對(duì)2D圖元數(shù)據(jù)進(jìn)行預(yù)處理、光柵化以及著色,實(shí)現(xiàn)高性能UI繪制。在實(shí)際的實(shí)驗(yàn)中,相比于傳統(tǒng)2D管線,數(shù)據(jù)驅(qū)動(dòng)2D極簡(jiǎn)管線的CPU負(fù)載下降50%+,同時(shí)大幅簡(jiǎn)化了GPU驅(qū)動(dòng)。
數(shù)據(jù)驅(qū)動(dòng)2D極簡(jiǎn)管線
3.2??
分布式窗口和異構(gòu)窗口融合
多屏協(xié)同場(chǎng)景中,現(xiàn)有基于投屏的方案存在傳輸數(shù)據(jù)量大,功耗高、時(shí)延大以及幀率低等缺陷。需探索分布式窗口技術(shù),拉通設(shè)備間的窗口運(yùn)行環(huán)境,將用戶界面窗口顯示和應(yīng)用邏輯解耦,實(shí)現(xiàn)窗口可在設(shè)備間自由流轉(zhuǎn),自適應(yīng)新設(shè)備顯示環(huán)境,且功耗/時(shí)延/刷新率優(yōu)于投屏。此外,生態(tài)應(yīng)用運(yùn)行在虛擬機(jī)/容器中時(shí),容器應(yīng)用窗口與Host系統(tǒng)原生窗口沒(méi)有統(tǒng)一管理,兩者操控體驗(yàn)完全割裂,需要探索多源窗口融合技術(shù),實(shí)現(xiàn)統(tǒng)一管理,體驗(yàn)一致。
異構(gòu)窗口融合架構(gòu)
3.3??
2D&3D 融合的 UI 框架
在車載智能駕駛艙場(chǎng)景,3D圖形結(jié)合2D UI展示各種信息,為駕駛者提供準(zhǔn)確和沉浸式駕駛體驗(yàn)已成為趨勢(shì)。當(dāng)前UI開(kāi)發(fā)框架對(duì)2D&3D融合場(chǎng)景支持仍不足,主要表現(xiàn)為:OS視窗的GUI框架以支持2D界面開(kāi)發(fā)為主,缺乏3D的動(dòng)態(tài)光影效果和空間深度感;而純3D界面開(kāi)發(fā)框架(如Kanzi和各種游戲引擎框架)開(kāi)發(fā)難度大,門檻高。因此,需進(jìn)一步探索高性能、輕量化的2D&3D融合的UI框架,以實(shí)現(xiàn)2D&3D混合UI開(kāi)發(fā),需具備以下功能:
(1)提供3D場(chǎng)景控件,加載3D場(chǎng)景模型,支持真實(shí)性渲染;
(2)可將2D UI嵌入到3D場(chǎng)景,與3D模型子表面進(jìn)行關(guān)聯(lián)顯示;
(3)支持將2D UI控件與3D場(chǎng)景屬性雙向關(guān)聯(lián);
(4)2D&3D渲染管線無(wú)縫切換。
2D&3D融合UI框架
3.4??
新一代人機(jī)交互及顯示
在XR、Metaverse等新場(chǎng)景下,用戶交互界面是3D空間,傳統(tǒng)2D平面交互范式已無(wú)法適用。OS視窗需額外提供位姿、環(huán)境感知系統(tǒng),虛實(shí)融合顯示系統(tǒng)和新型UI組件。
人機(jī)交互及顯示方案
總的來(lái)說(shuō),在未來(lái)新場(chǎng)景下,視窗架構(gòu)需要圍繞:(1)極簡(jiǎn)UI繪制管線;(2)分布式窗口,多源窗口融合;(3)2D&3D融合UI框架;(4)沉浸式場(chǎng)景的新的交互范式的4個(gè)趨勢(shì)進(jìn)行探索和演進(jìn)。
04?
總結(jié)
應(yīng)用場(chǎng)景及用戶需求的變化是視窗繪制技術(shù)演進(jìn)的主要驅(qū)動(dòng)力,期待大家一起關(guān)注和參與視窗繪制技術(shù)創(chuàng)新,共同助力OS視窗更好地使能萬(wàn)物互聯(lián)新場(chǎng)景。
E N D
審核編輯黃宇
-
Android
+關(guān)注
關(guān)注
12文章
3939瀏覽量
127640 -
Linux
+關(guān)注
關(guān)注
87文章
11326瀏覽量
209961 -
OpenHarmony
+關(guān)注
關(guān)注
25文章
3731瀏覽量
16425
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論