在线观看www成人影院-在线观看www日本免费网站-在线观看www视频-在线观看操-欧美18在线-欧美1级

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

Andriod中Vsync的背景

麥辣雞腿堡 ? 來源:OPPO內核工匠 ? 作者:Phil ? 2023-11-21 16:13 ? 次閱讀

Android的顯示系統一直使用雙緩沖和VSync來防止屏幕畫面發生撕裂現象,這也是其他系統的常規操作。Android的不同之處是將VSync運用到繪制系統中,作為黃油計劃(Project Butter)的一部分,用以提升系統的流暢度。

VSync:

Android中VSync的作用是統一系統繪制與顯示節奏(Apps和SurfaceFlinger),大家各司其職,確保在VSync來的時候干活,這樣系統理論上就絲滑了。

如下圖,在沒有VSync的情況下,系統渲染的節奏與屏幕刷新的節奏不一致,如果某一幀系統渲染的比較晚,那么就會出現屏幕兩次刷新都顯示同一份內容的情況,也就是Jank(掉幀)。

圖片

有了VSync的話,系統會在VSync到來時進行繪制,與屏幕的刷新節奏保持一致,這樣就大大降低了jank的概率。

圖片

那么問題來了,怎么讓Apps根據VSync的節奏來進行繪制呢?App依賴系統的繪制系統,所以必須讓繪制系統聽命令才行,這就是Choreographer出現的原因。

Choreographer:

Choreographer(編舞者)的作用在源碼的注釋中已經寫得很明白,是用來接收定時脈沖信號來控制繪制的模塊。也就是說,有了Choreographer,apps就能夠根據Vsync信號來進行周期性的繪制工作。

圖片

以上兩者配合就基本上完成了Android中VSync的改造,但是還有一個造成Jank的原因也是不容忽視的,這就是雙buffer機制帶來的jank風險。

Triple Buffer:

如下圖,理想情況下的雙buffer是沒有問題的,這個理想狀態是指繪制工作(可以粗略地理解為一幀CPUGPU執行的總耗時)在一個VSync周期內完成,這樣的情況下,不會發生jank。

圖片

遺憾的是,事情的發展不會總是按我們的預期來進行的,如果繪制時長超過了一個VSync周期,那么就必然會發生jank。如下圖所示,有兩幀的繪制超過了一個VSync周期,那么就會發生兩次Jank。

圖片

三Buffer機制實際上就是在上述backbuffer和frontbuffer的基礎上,再添加一塊buffer進行輪轉。在這樣的情況下,同樣假設有兩幀的繪制就是大于一個VSync周期,那么只會造成一次Jank。

圖片

三buffer機制雖然能降低jank的概率,但是也會帶來Touch響應慢和內存消耗高的負面影響,只不過相對于它帶來的效果,這些負面影響被忽略了。

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • Android
    +關注

    關注

    12

    文章

    3966

    瀏覽量

    129660
  • 系統
    +關注

    關注

    1

    文章

    1029

    瀏覽量

    21731
收藏 人收藏

    評論

    相關推薦
    熱點推薦

    DLPC7541是如何設定TSTP輸出Vsync訊號?

    目前想確認Vsync、CW、PW追轉狀態, DDP442X可以從DLP Composer 將TSTP設定Vsync輸出進行訊號模擬, 但我查看DLPC7541 Composer,無法知道可以從哪裡
    發表于 02-18 08:15

    【Raspberry Pi 3申請】andriod系統開發APP

    申請理由:公司項目前期測試項目描述:主要功能能夠實現andriod系統,在這個基礎之上開發一些小的APP功能,通過有線網絡或者無線網絡與其他設備或者網頁進行通信等等。
    發表于 04-05 13:50

    智訊系列培訓課程:Andriod事件、數據、網絡

    現將智訊專業資料《Andriod事件、數據、網絡》分享給大家,僅供參考交流! 智訊(武漢)科技有限公司在移動互聯網、物聯網、嵌入式等技術領域有近十年的積累,專業為高校電子類、物聯網工程、嵌入式、軟件工程等高校院系提供實驗室設
    發表于 08-18 10:03

    如何駕駛所有五個R,G,B,HSYNC和VSYNC?

    你好我打算在sp605實現sobel邊緣檢測(我有這個開發板)我想去尋找簡單的vga驅動程序我可以將R,G,B和HSYNC連接到J55可用的四個I / O,但不能連接VGA所需的VSYNC,因為J55只有四個I / O.請建
    發表于 10-29 08:13

    logcat如何查看Andriod log系統日志?

    logcat會輸出系統哪些信息呢?如何學習logcat命令?logcat如何查看Andriod log系統日志?如何查看Andriod log系統日志?
    發表于 03-03 06:15

    VSYNC、HSYNC、DOTCLOCK是如何計算的?

    與 LCDIFv2。 這是唯一的變化嗎-VIDEO_MUX->VID_MUX_CTRL.SET = VIDEO_MUX_VID_MUX_CTRL_PARA_LCD_SEL_MASK;VSYNC、HSYNC、DOTCLOCK 是如何計算的?
    發表于 03-14 09:42

    三星手機andriod系統軟件

    三星手機andriod系統軟件
    發表于 01-14 14:58 ?18次下載

    背景/蒙太奇,背景/蒙太奇是什么意思

    背景/蒙太奇,背景/蒙太奇是什么意思 背景 畫面主體背后的景物。背景包括后景、遠景
    發表于 04-12 10:26 ?2161次閱讀

    Dragon?Board?410c板基于Andriod?5.1,

    Dragon?Board?410c板基于Andriod?5.1,Linux,Windows10三種操作系統開發特點介紹,我上傳了很多相關資料,感興趣的可以去我上傳的資料里看看哈。
    發表于 06-30 15:03 ?4次下載

    Andriod Phone通過藍牙控制的機器人汽車

    電子發燒友網站提供《由Andriod Phone通過藍牙控制的機器人汽車.zip》資料免費下載
    發表于 11-11 14:48 ?0次下載
    由<b class='flag-5'>Andriod</b> Phone通過藍牙控制的機器人汽車

    簡述Vsync信號和View繪制流程之間的關系

    vsync是有兩個信號的, 一個是vsync-app用于生成當前幀的數據;(CPU計算和GPU渲染) 一個用于消費數據(合成圖像到Display上,vsync-surface) 。
    的頭像 發表于 02-02 11:18 ?1115次閱讀

    VSync的起源是什么

    VSync的起源 顯示屏上一幀畫面的顯示過程,是像素自上而下逐行掃描的過程,如果在上一幀的掃描還沒有結束的情況下,屏幕又開始掃描下一幀的像素,那么就會出現如下圖中撕裂(tearing)的情況。 這個
    的頭像 發表于 11-21 16:01 ?1871次閱讀
    <b class='flag-5'>VSync</b>的起源是什么

    VSync的虛擬化與同步

    VSync的虛擬化 由上面的介紹可以知道,VSync其實起源于顯示屏,但是想想如果每個App和SurfaceFlinger都去從硬件驅動中直接監聽VSync,那未免有點太復雜了,而且耦合性太高,不行
    的頭像 發表于 11-21 16:23 ?992次閱讀
    <b class='flag-5'>VSync</b>的虛擬化與同步

    AndriodVSync的分發

    App與SurfaceFlinger是不同的進程,它們之間傳遞VSync的話涉及到進程間通信,而且VSync頻率很高,App很多,所以VSync的分發效率要很高才行。Linux進程間通信方式總共
    的頭像 發表于 11-21 16:32 ?1199次閱讀
    <b class='flag-5'>Andriod</b><b class='flag-5'>中</b><b class='flag-5'>VSync</b>的分發

    VSync offset定義的方法

    ,可以看到,每一個vsync-app都比對應的TE信號晚了1.2ms,因此這份trace的app-offset為+1200000(ns為單位) 同樣的,每一個vsync-sf都比對應的TE早了3.6ms,因此sf-offset
    的頭像 發表于 11-21 16:57 ?1615次閱讀
    <b class='flag-5'>VSync</b> offset定義的方法
    主站蜘蛛池模板: 大香交伊人 | 69xxxⅹxxxxxx日本 | 888xxxx免费视频| 在线天堂中文有限公司 | 亚洲va国产日韩欧美精品色婷婷 | 美女屁屁免费视频网站 | 天堂网在线最新版www中文网 | 99热最新在线观看 | 青青伊人91久久福利精品 | 九九免费久久这里有精品23 | 成人欧美一区二区三区白人 | 四虎影院在线视频 | 五月情网 | 免费国产午夜在线观看 | 日韩欧美不卡片 | 国产精品青草久久 | 琪琪see色原网一区二区 | 伊人免费网 | 久久99国产精品免费观看 | 免费在线公开视频 | 色多网站免费视频 | www.天堂.com| 五月激情综合 | 亚洲欧美国产五月天综合 | 国产精品天天操 | 欧美一区二区三区视频在线观看 | 成年黄网站免费大全毛片 | 足控免费视频xxav | 免费在线视频播放 | 免费大片黄国产在线观看 | 四虎国产一区二区三区 | 黄视频网站免费看 | 激情五月婷婷久久 | 久久久久激情免费观看 | 久久大香线蕉综合爱 | 日本最新免费网站 | 大香线蕉97久久 | 久久久久国产一级毛片高清片 | 久久www免费人成高清 | 久热精品视频 | 四色成人网 |