91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

DRM中的Plane概念

發布時間:2020-06-30 01:28:08 來源:網絡 閱讀:1656 作者:suokin 欄目:軟件技術
  1. 簡介 1
    1.1 Plane的歷史 1
    1.2 Plane的功能 1
    1.3 Plane的類型 1
    1.4 Plane的測試用例 2

1.簡介
在DRM(Direct Rendering Manager)中,學習了drmModePageFlip和drmModeSetCrtc的用法。但是這兩個接口都只能全屏顯示Framebuffer的內容,如何才能在屏幕上只顯示framebuffer的一部分內容呢?本篇將介紹DRM另一個重要的刷圖接口:drmModeSetPlane。
首先來了解一下,什么是Plane?簡單描述Plane的概念,即硬件圖層。而詳細了解下Plane的概念,即DRM中的Plane和我們常見的YUV/YCbCr圖形格式中的Plane完全是兩個不同的概念。YUV圖形格式中的Plane指的是圖像數據在內存中的排列形式,一般Y通道占一段連續的內存塊,UV通道占另一段連續的內存塊,稱之為YUV-2Plane (也叫YUV 2平面),屬于軟件層面。而DRM中的Plane指的是Display Controller中用于多層合成的單個硬件圖層模塊,屬于硬件層面。二者概念上不要混淆。
1.1Plane的歷史
隨著軟件技術的不斷更新,對硬件的性能要求越來越高,在滿足功能正常使用的前提下,對功耗的要求也越來越苛刻。本來GPU可以處理所有圖形任務,但是由于它運行時的功耗實在太高,設計者們決定將一部分簡單的任務交給Display Controller去處理(比如合成),而讓GPU專注于繪圖(即渲染)這一主要任務,減輕GPU的負擔,從而達到降低功耗提升性能的目的。于是,Plane(硬件圖層單元)就誕生了。
1.2Plane的功能
Plane是連接FB與CRTC的紐帶,是內存的搬運工。
Plane的參數含義:
當 SRC_X/Y 和 CRTC_X/Y 不相等時,就實現了平移的效果;
當 SRC_W/H 和 CRTC_W/H 不相等時,就實現了縮放的效果;
當 SRC_W/H 和 FB_W/H 不相等時,就實現了裁剪的效果;
簡單代碼圖 2.1所示

圖 2.1 Plane的代碼實現
1.3Plane的類型
在DRM框架中,Plane又分為如下3種類型:Cursor(光標圖層,一般用于PC系統,用于顯示鼠標)、Overlay(疊加圖層,通常用于YUV格式的視頻圖層)、Primary(主要圖層,通常用于僅支持RGB格式的簡單圖層)。需要注意的是,并不是所有的Display Controller都支持Plane,從前面Single-Buffer 案例中的drmModeSetCrtc函數也能看出,即使沒有plane_id,屏幕也能正常顯示。比如s3c2440這種ARM9 SoC,它的LCDC就沒有Plane的概念。但是DRM框架規定,任何一個CRTC,必須要有1個Primary Plane。 即使像S3C2440這種不帶真實Plane硬件的Display Controller,也需要認為它的Primary Plane就是LCDC本身,因為它實現了從Framebuffer到CRTC的數據搬運工作,而這正是一個Plane最基本的功能。
1.4Plane的測試用例
在Google Android工程中external/libdrm/tests/planetest/planetest.c文件,為了演示方便,僅僅實現了一個最簡單的drmModeSetPlane()調用。需要注意的是,該函數調用之前,必須先通過drmModeSetCrtc()初始化整個顯示鏈路,否則Plane設置將無效。程序運行后,屏幕顯示全屏白色;當輸入回車后,屏幕將FrameBuffer中的(100,150)的矩形,顯示到屏幕的(50,50)位置;再次輸入回車后,程序退出。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

巫山县| 海淀区| 东莞市| 增城市| 宝兴县| 临潭县| 蒙自县| 夏邑县| 禹城市| 福鼎市| 玛沁县| 衢州市| 页游| 玉林市| 武夷山市| 泊头市| 岳西县| 建水县| 高碑店市| 姚安县| 竹北市| 南汇区| 罗田县| 绵阳市| 噶尔县| 育儿| 怀仁县| 喀喇| 墨脱县| 吴川市| 林口县| 新巴尔虎左旗| 武清区| 咸宁市| 青浦区| 板桥市| 华安县| 孟村| 余江县| 金阳县| 庄河市|