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