衡阳派盒市场营销有限公司

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

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

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

VSync的起源是什么

麥辣雞腿堡 ? 來(lái)源:OPPO內(nèi)核工匠 ? 作者:Phil ? 2023-11-21 16:01 ? 次閱讀

VSync的起源

顯示屏上一幀畫面的顯示過(guò)程,是像素自上而下逐行掃描的過(guò)程,如果在上一幀的掃描還沒(méi)有結(jié)束的情況下,屏幕又開(kāi)始掃描下一幀的像素,那么就會(huì)出現(xiàn)如下圖中撕裂(tearing)的情況。

圖片

這個(gè)問(wèn)題最初是在PC上被重視和解決的,GPU廠商開(kāi)發(fā)出了一種防止屏幕被撕裂的技術(shù)方案,全稱Vertical Synchronization(中文名垂直同步,簡(jiǎn)稱VSync)。基本思路就是在屏幕刷新之前向外提供一個(gè)信號(hào),主機(jī)端根據(jù)此信號(hào)選擇合適的策略完成畫面的刷新,避免數(shù)據(jù)刷新和屏幕掃描不匹配(撕裂)的情況發(fā)生。所以VSync信號(hào)也叫做TE信號(hào)或VBlank信號(hào)。

下圖展示了開(kāi)啟與關(guān)閉Vsync的狀態(tài)下,屏幕畫面的不同顯示情況。這里需要先說(shuō)明一下傳統(tǒng)的顯示架構(gòu),主要有三部分組成,第一部分負(fù)責(zé)渲染,包含CPU,GPU及一些系統(tǒng)模塊;第二部分叫做幀緩沖,實(shí)質(zhì)上是一塊內(nèi)存塊,渲染完的數(shù)據(jù)會(huì)被保存在這塊內(nèi)存中;第三部分是屏幕,用來(lái)繪制幀緩沖上的數(shù)據(jù)。一般來(lái)說(shuō)幀緩沖會(huì)有兩塊,一塊叫做backbuffer,用來(lái)寫入渲染數(shù)據(jù),一塊叫做frontbuffer,用來(lái)把渲染數(shù)據(jù)送給屏幕。這兩塊buffer的狀態(tài)是不斷變化的,也就是說(shuō)當(dāng)backbuffer被寫入完數(shù)據(jù)等待顯示時(shí),它就變成了frontbuffer,而當(dāng)frontbuffer的數(shù)據(jù)被顯示完畢之后,它就變成了backbuffer。

VSync off:

圖片

VSync on:

圖片

具體來(lái)說(shuō),硬件視角中的VSync其實(shí)就是一個(gè)電平信號(hào),Panel上有一個(gè)單獨(dú)的引腳,主機(jī)端需要有一個(gè)單獨(dú)的GPIO與之相連,獲取其信號(hào)變化;軟件視角中的VSync其實(shí)就是一個(gè)GPIO的中斷,一般是上升沿的中斷,軟件根據(jù)此中斷完成相應(yīng)的顯示邏輯。

圖片

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

    關(guān)注

    12

    文章

    3945

    瀏覽量

    127927
  • PC
    PC
    +關(guān)注

    關(guān)注

    9

    文章

    2102

    瀏覽量

    154656
  • 信號(hào)
    +關(guān)注

    關(guān)注

    11

    文章

    2804

    瀏覽量

    77099
收藏 人收藏

    評(píng)論

    相關(guān)推薦

    RISC--V的起源是什么?

    突然有個(gè)想法 RISC--V的起源是什么?
    發(fā)表于 05-24 08:03

    無(wú)鉛焊接的起源

    無(wú)鉛焊接的起源:由于環(huán)境保護(hù)的要求,特別是ISO14000的導(dǎo)入,世界大多數(shù)國(guó)家開(kāi)始禁止在焊接材料中使用含鉛的成分。 日本在2004年禁止生產(chǎn)或銷售使用有鉛材料焊接的電子生產(chǎn)設(shè)備。歐美在2006年
    發(fā)表于 08-11 14:21

    混沌與控制的起源

    一點(diǎn)關(guān)于混沌與控制起源的資料與大家分享。
    發(fā)表于 03-01 22:06

    VSYNC、HSYNC、DOTCLOCK是如何計(jì)算的?

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

    CDMA技術(shù)的起源

    CDMA技術(shù)的起源 擴(kuò)頻技術(shù)的起源要追溯到二戰(zhàn)時(shí)期,這種思想的初衷是防止敵方對(duì)己方通訊的干擾。我們知道,由于窄帶通訊采用的帶寬只有幾十kHz,只
    發(fā)表于 06-01 20:25 ?1811次閱讀

    CDMA技術(shù)的起源

    CDMA技術(shù)的起源 擴(kuò)頻技術(shù)的起源要追溯到二戰(zhàn)時(shí)期,這種思想的初衷是防止敵方對(duì)己方通訊的干擾。我們知道,由于窄帶通訊采用的帶寬只
    發(fā)表于 06-15 09:40 ?994次閱讀

    DIY的歷史起源

    DIY的歷史起源 DIY起源與用法DIY是英文Do It Yourself的縮寫,可以正式譯為自己動(dòng)手做,但通常不需詳譯人們也大都能理解其意義。DIY原
    發(fā)表于 01-21 10:47 ?3490次閱讀

    雙層索引的起源圖查詢方法

    為解決現(xiàn)有的起源圖查詢效率低和資源占用率高的問(wèn)題,考慮起源信息和數(shù)據(jù)本身之間的關(guān)聯(lián)關(guān)系以及起源信息內(nèi)部結(jié)構(gòu)特點(diǎn),提出了一種基于雙層索引結(jié)構(gòu)的起源圖查詢方法。首先,面向
    發(fā)表于 12-07 10:04 ?0次下載
    雙層索引的<b class='flag-5'>起源</b>圖查詢方法

    基于圖的服務(wù)起源追蹤機(jī)制

    針對(duì)服務(wù)起源數(shù)據(jù)存儲(chǔ)在關(guān)系型數(shù)據(jù)庫(kù)和文檔型數(shù)據(jù)庫(kù)中無(wú)法提供高效的服務(wù)追蹤以及采用圖形數(shù)據(jù)庫(kù)存儲(chǔ)無(wú)法進(jìn)行快速聚合運(yùn)算等問(wèn)題,提出了一種基于圖的服務(wù)起源追蹤機(jī)制。該機(jī)制以圖形數(shù)據(jù)庫(kù)存儲(chǔ)服務(wù)起源數(shù)據(jù)為
    發(fā)表于 12-17 10:58 ?0次下載
    基于圖的服務(wù)<b class='flag-5'>起源</b>追蹤機(jī)制

    PCB經(jīng)驗(yàn)分享之噪聲的起源

    PCB經(jīng)驗(yàn)分享之噪聲的起源
    發(fā)表于 02-11 15:15 ?0次下載

    簡(jiǎn)述Vsync信號(hào)和View繪制流程之間的關(guān)系

    vsync是有兩個(gè)信號(hào)的, 一個(gè)是vsync-app用于生成當(dāng)前幀的數(shù)據(jù);(CPU計(jì)算和GPU渲染) 一個(gè)用于消費(fèi)數(shù)據(jù)(合成圖像到Display上,vsync-surface) 。
    的頭像 發(fā)表于 02-02 11:18 ?904次閱讀

    Andriod中Vsync的背景

    Android的顯示系統(tǒng)一直使用雙緩沖和VSync來(lái)防止屏幕畫面發(fā)生撕裂現(xiàn)象,這也是其他系統(tǒng)的常規(guī)操作。Android的不同之處是將VSync運(yùn)用到繪制系統(tǒng)中,作為黃油計(jì)劃(Project
    的頭像 發(fā)表于 11-21 16:13 ?381次閱讀
    Andriod中<b class='flag-5'>Vsync</b>的背景

    VSync的虛擬化與同步

    VSync的虛擬化 由上面的介紹可以知道,VSync其實(shí)起源于顯示屏,但是想想如果每個(gè)App和SurfaceFlinger都去從硬件驅(qū)動(dòng)中直接監(jiān)聽(tīng)VSync,那未免有點(diǎn)太復(fù)雜了,而且耦
    的頭像 發(fā)表于 11-21 16:23 ?775次閱讀
    <b class='flag-5'>VSync</b>的虛擬化與同步

    Andriod中VSync的分發(fā)

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

    VSync offset定義的方法

    VSync-offset/duration 虛擬化后的VSync還有一個(gè)好處,就是可以對(duì)VSync進(jìn)行一些定制操作,offset就是其中之一。 接下來(lái)就是offset的定義,offset 分為兩大類
    的頭像 發(fā)表于 11-21 16:57 ?1206次閱讀
    <b class='flag-5'>VSync</b> offset定義的方法
    黄金城百家乐下载| 缅甸赌场| 百家乐官网投注外围哪里好| 百家乐游戏厅| 月华百家乐官网的玩法技巧和规则 | 真人百家乐官网的玩法技巧和规则| 大发888娱乐城范本| 百家乐官网赌博大全| 大发888登陆器下载| 金道百家乐游戏| 百家乐官网21点| 皇宝国际网站| 网上百家乐软件大全酷| 百家乐官网打印机破解| 柳江县| 太阳城二手房| 打百家乐纯打庄的方法| 艮山坤向 24山| 战神百家乐官网的玩法技巧和规则| 乐透世界| 亿酷棋牌室| 大发888娱乐85战神版| 深圳百家乐的玩法技巧和规则| 百家乐官网网上真钱赌场娱乐网规则 | 青岛人家棋牌室| 火箭百家乐的玩法技巧和规则| 百家乐最佳投注法下载| 百家乐官网笑话| 百家乐官网投注信用最好的| 德州扑克玩法说明| 大发888真人娱乐场游戏平台| 大发888娱乐场网址| 威尼斯人娱乐城网址| 赌百家乐的高手| 红树林百家乐官网的玩法技巧和规则 | 大发888下载 大发888游戏平台| 威尼斯人娱乐城好玩吗| 百家乐路子分| 百家乐微笑打法| 月亮城百家乐的玩法技巧和规则| 南宁百家乐赌|