哈哈哈哈哈操欧洲电影,久草网在线,亚洲久久熟女熟妇视频,麻豆精品色,久久福利在线视频,日韩中文字幕的,淫乱毛视频一区,亚洲成人一二三,中文人妻日韩精品电影

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

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

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

了解DRM架構(gòu)的形成、功能流程實(shí)現(xiàn)

Linux閱碼場(chǎng) ? 來(lái)源:內(nèi)核工匠 ? 作者:Allen Zhang ? 2022-11-28 09:25 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

1、 DRM簡(jiǎn)介(Direct Rendering Manager)

傳統(tǒng)linux顯示設(shè)備驅(qū)動(dòng)開(kāi)發(fā)時(shí),通常使用FB驅(qū)動(dòng)架構(gòu),隨著顯卡性能升級(jí):顯示覆蓋(菜單層級(jí))、GPU加速、硬件光標(biāo),傳統(tǒng)FB架構(gòu)無(wú)法很好支持,此外,對(duì)于多應(yīng)用的訪問(wèn)沖突也無(wú)法很好控制。在這樣的背景下,DRM應(yīng)用而生。

DRM是linux內(nèi)核中負(fù)責(zé)與顯卡交互的管理架構(gòu),用戶(hù)空間很方便的利用DRM提供的API,實(shí)現(xiàn)3D渲染、視頻解碼和GPU計(jì)算等工作。

1.1 DRM發(fā)展歷史

1999年,Precision Insight公司首次為 XFree86 4.0 Server 開(kāi)發(fā) DRI 顯示框架,用于更好的適配 3DFX 公司顯卡,初版DRM代碼產(chǎn)出后,接下來(lái)的幾年時(shí)間里,DRM 所支持的顯卡列表不斷被擴(kuò)充。

2008年10月,Linux kernel 2.6.27 進(jìn)行了一次重大的源碼重組:DRM 的整套源碼被放到了/drivers/gpu/drm/目錄下,不同的GPU廠商代碼也被放到了各自子目錄下。

2014年6月,Atomic API 被添加到Linux 3.16,許多驅(qū)動(dòng)也都轉(zhuǎn)而使用這些新的 API。

2018年,又有10個(gè)基于 atomic 框架的 DRM 新增驅(qū)動(dòng)被添加到Linux kernel。

1.2 DRM架構(gòu)對(duì)比FB架構(gòu)優(yōu)勢(shì)

DRM是目前Linux的主流圖形顯示框架,相比于傳統(tǒng)FB架構(gòu),DRM允許多個(gè)程序同時(shí)使用視頻硬件資源,管理多個(gè)程序的資源請(qǐng)求、訪問(wèn),綜上所述DRM更能適應(yīng)日益更新的顯示硬件,DRM優(yōu)勢(shì)主要體現(xiàn):

DRM原生支持多圖層合成,F(xiàn)B原生不支持多層合成。

FB不支持VSYNC、DMA-BUF、異步更新和fence機(jī)制,但DRM原生都支持。

DRM統(tǒng)一管理GPU和Display驅(qū)動(dòng),讓軟件升級(jí)、維護(hù)和管理更加方便。

10e71bfa-6eb2-11ed-8abf-dac502259ad0.png

1.3 DRM圖形顯示框架

DRM檢測(cè)到的每個(gè)GPU都作為DRM設(shè)備,并為之創(chuàng)建一個(gè)設(shè)備文件/dev/dri/cardX與之連接,從整體架構(gòu)上來(lái)看主要分為3個(gè)主要部分:

libdrm (接口庫(kù))

對(duì)底層接口進(jìn)行封裝,向上層提供通用的API接口,主要是對(duì)各種IOCTL接口進(jìn)行封裝,便于重用與代碼共享。

KMS (Kernel Mode Setting)

正常工作時(shí),需要設(shè)置顯卡或者圖形適配器的模式,主要體現(xiàn)在以下兩個(gè)方面:

更新畫(huà)面:顯示buffer的切換,多圖層的合成方式控制,以及每個(gè)圖層的顯示位置。

設(shè)置顯示參數(shù):包括分辨率、刷新率、電源狀態(tài)(休眠喚醒)等。

GEM (Graphics Execution Manager)

提供內(nèi)存管理方法,主要負(fù)責(zé)顯示buffer的分配和釋放。

10fa189a-6eb2-11ed-8abf-dac502259ad0.png

圖1.1 DRM圖形顯示框架總覽

1.4 DRM圖形顯示框架涉及元素

本章節(jié)介紹DRM框架中的一些重點(diǎn)模塊的功能與在顯示鏈路中的作用,下圖為APP調(diào)用DRM到屏幕顯示的流程框圖。

110cbc5c-6eb2-11ed-8abf-dac502259ad0.png

圖1.2 DRM圖形顯示框架框圖

下表對(duì)DRM中KMS和GEM兩個(gè)模型的不同組件進(jìn)行概述性說(shuō)明,輔以高通平臺(tái)代碼層級(jí)的對(duì)應(yīng)關(guān)系說(shuō)明,以加深架構(gòu)與流程之間的對(duì)應(yīng)聯(lián)系。

112339aa-6eb2-11ed-8abf-dac502259ad0.png

2 、DRM驅(qū)動(dòng)框架

2.1 DRM驅(qū)動(dòng)對(duì)象介紹

DRM內(nèi)部的Objects是組成DRM框架的核心,下圖中藍(lán)色部分為物理硬件的抽象,棕色部分則為軟件的抽象,其中GEM結(jié)構(gòu)體為:drm_gem_object,其余部分位于結(jié)構(gòu)體drm_mode_object中.

PS:drm_panel不屬于object范疇,只是為了降低LCD驅(qū)動(dòng)與encoder驅(qū)動(dòng)間的耦合,是一堆回調(diào)函數(shù)集合。

113469c8-6eb2-11ed-8abf-dac502259ad0.png

圖2.1 DRM核心組件介紹

2.2 DRM抽象硬件如何關(guān)聯(lián)DRM Object

DRM的objects并不難理解,重要的是如何將實(shí)際的硬件與這些object進(jìn)行關(guān)聯(lián),下面會(huì)以MIPI DSI接口為例進(jìn)行介紹軟件架構(gòu)與DRM object的對(duì)應(yīng)關(guān)系。

114ae324-6eb2-11ed-8abf-dac502259ad0.png

圖2.2 典型MIPI DSI接口硬件連接圖

1159d8f2-6eb2-11ed-8abf-dac502259ad0.png

圖2.3 硬件與DRM Objects對(duì)應(yīng)圖

其中組件說(shuō)明:

1168b0c0-6eb2-11ed-8abf-dac502259ad0.png

3 、DRM簡(jiǎn)單示例

DRM代碼非常龐大,顯卡邏輯也非常復(fù)雜,在學(xué)習(xí)DRM架構(gòu)時(shí),需要通過(guò)實(shí)踐對(duì)DRM的流程進(jìn)行理解,以達(dá)到事半功倍的效果。

下面會(huì)以模式設(shè)置案例,對(duì)DRM架構(gòu)的流程進(jìn)行解析。modeset主要流程如下:

1189c012-6eb2-11ed-8abf-dac502259ad0.png

圖3.1 DRM Modeset流程總覽

3.1 打開(kāi)DRM設(shè)備文件

DRM框架成功加載后,會(huì)創(chuàng)建一個(gè)設(shè)備文件/dev/dri/card0,上層用戶(hù)應(yīng)用可以通過(guò)該文件節(jié)點(diǎn),獲取顯卡的各種操作。

119f06ac-6eb2-11ed-8abf-dac502259ad0.png

3.2 獲取顯卡資源句柄

打開(kāi)DRM設(shè)備文件后,通過(guò)以下函數(shù)獲取顯卡的資源句柄,進(jìn)而進(jìn)行顯卡資源的操作。

11a93668-6eb2-11ed-8abf-dac502259ad0.png

3.3 獲取connectorId

獲取了drmModeRes后,獲取它的連接對(duì)象。

11b545ca-6eb2-11ed-8abf-dac502259ad0.png

3.4 創(chuàng)建FrameBuffer

創(chuàng)建FrameBuffer后,然后映射一片內(nèi)存,對(duì)這塊內(nèi)存進(jìn)行像素?cái)?shù)據(jù)填充。

11c13d8a-6eb2-11ed-8abf-dac502259ad0.png

3.5 設(shè)置Crtc模式

FB創(chuàng)建成功并進(jìn)行清0操作,可以在里面填充任何數(shù)據(jù),然后設(shè)置CRTC后,F(xiàn)B的內(nèi)容就可以顯示在屏幕。

CRTC模式設(shè)置函數(shù):drmModeSetCrtc(),參數(shù)為:fd、crtc句柄、FB句柄、XY坐標(biāo)等。

11ce38dc-6eb2-11ed-8abf-dac502259ad0.png

3.6 資源清理工作(非必需)

顯示完成后,GUI會(huì)一直運(yùn)行,一般不必實(shí)施資源清理工作。

11d5fc52-6eb2-11ed-8abf-dac502259ad0.png

本章小結(jié)

本文介紹了DRM架構(gòu)的發(fā)展歷史、驅(qū)動(dòng)框架以及簡(jiǎn)單示例,旨在幫助讀者了解DRM架構(gòu)的形成、功能流程實(shí)現(xiàn),DRM代碼龐大且復(fù)雜,想要深入理解它的內(nèi)涵,最好的辦法就是根據(jù)實(shí)際需求來(lái)進(jìn)行代碼流程梳理,后續(xù)章節(jié)也會(huì)對(duì)該部分進(jìn)行展開(kāi)講解。

此外,DRM架構(gòu)符合功能日益強(qiáng)大的現(xiàn)代顯示設(shè)備,但仍有很多老的設(shè)備以及軟件需要FB支持,在目前DRM框架中,會(huì)存在模擬FB設(shè)備的代碼。

審核編輯:郭婷

聲明:本文內(nèi)容及配圖由入駐作者撰寫(xiě)或者入駐合作網(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)投訴
  • Linux
    +關(guān)注

    關(guān)注

    88

    文章

    11817

    瀏覽量

    219549
  • API
    API
    +關(guān)注

    關(guān)注

    2

    文章

    2476

    瀏覽量

    67020
  • DRM
    DRM
    +關(guān)注

    關(guān)注

    0

    文章

    48

    瀏覽量

    15660

原文標(biāo)題:DRM架構(gòu)介紹(一)

文章出處:【微信號(hào):LinuxDev,微信公眾號(hào):Linux閱碼場(chǎng)】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。

收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評(píng)論

    相關(guān)推薦
    熱點(diǎn)推薦

    ISO 26262功能安全落地全流程解析

    、HVAC模塊、座椅調(diào)節(jié)模塊等),如今也被要求提供安全設(shè)計(jì)證據(jù)才能融入整車(chē)安全架構(gòu)。 提升開(kāi)發(fā)質(zhì)量和效率。遵循功能安全流程的產(chǎn)品開(kāi)發(fā),在需求追溯、設(shè)計(jì)驗(yàn)證和測(cè)試覆蓋等方面更加系統(tǒng)化,有助于降低后期缺陷
    發(fā)表于 04-24 17:23

    如何確保微電網(wǎng)標(biāo)準(zhǔn)化架構(gòu)設(shè)計(jì)流程的完整性?

    當(dāng)前,微電網(wǎng)建設(shè)普遍存在設(shè)計(jì)流程碎片化、環(huán)節(jié)銜接不暢、標(biāo)準(zhǔn)執(zhí)行不到位、成果追溯缺失等問(wèn)題,導(dǎo)致架構(gòu)設(shè)計(jì)與實(shí)際需求脫節(jié)、工程落地困難、運(yùn)維成本偏高,甚至影響系統(tǒng)長(zhǎng)期穩(wěn)定運(yùn)行。GB/T
    的頭像 發(fā)表于 04-24 11:19 ?42次閱讀
    如何確保微電網(wǎng)標(biāo)準(zhǔn)化<b class='flag-5'>架構(gòu)</b>設(shè)計(jì)<b class='flag-5'>流程</b>的完整性?

    借助安森美PRISM模塊簡(jiǎn)化成像產(chǎn)品原型構(gòu)建流程

    本教程圍繞安森美(onsemi) 圖像傳感器模塊參考設(shè)計(jì)(PRISM)展開(kāi),聚焦成像設(shè)備從設(shè)計(jì)到制造的全流程優(yōu)化需求,系統(tǒng)介紹 PRISM 方案的核心架構(gòu)、功能模塊、性能特性及生態(tài)接入方式,為成像
    的頭像 發(fā)表于 03-16 16:30 ?664次閱讀
    借助安森美PRISM模塊簡(jiǎn)化成像產(chǎn)品原型構(gòu)建<b class='flag-5'>流程</b>

    【「芯片設(shè)計(jì)基石——EDA產(chǎn)業(yè)全景與未來(lái)展望」閱讀體驗(yàn)】--EDA了解與發(fā)展概況

    客戶(hù)粘性鞏固寡頭地位。另外這三家公司非常注重EDA生態(tài)系統(tǒng)建設(shè),這種生態(tài)系統(tǒng)建設(shè)有助于吸引更多的用戶(hù)和合作伙伴,形成良性發(fā)展的態(tài)勢(shì)。 通過(guò)學(xué)習(xí),對(duì)EDA專(zhuān)業(yè)技術(shù)概念、設(shè)計(jì)流程、工具有了進(jìn)一步認(rèn)識(shí)。對(duì)行業(yè)EDA發(fā)展情況有了整體全局的了解
    發(fā)表于 01-19 21:45

    電能質(zhì)量在線(xiàn)監(jiān)測(cè)裝置的多級(jí)告警閾值功能是如何實(shí)現(xiàn)的?

    與設(shè)備耐受度。以下從技術(shù)架構(gòu)、實(shí)現(xiàn)流程、核心機(jī)制三方面詳細(xì)解析: 一、技術(shù)架構(gòu):分層實(shí)現(xiàn)多級(jí)告警能力 多級(jí)告警閾值
    的頭像 發(fā)表于 12-10 14:32 ?621次閱讀
    電能質(zhì)量在線(xiàn)監(jiān)測(cè)裝置的多級(jí)告警閾值<b class='flag-5'>功能</b>是如何<b class='flag-5'>實(shí)現(xiàn)</b>的?

    RDMA設(shè)計(jì)5:RoCE V2 IP架構(gòu)

    ,系統(tǒng)控制模塊設(shè)計(jì)了對(duì)應(yīng)的功能控制單元及相應(yīng)的寄存器,并將這些寄存器抽象為 AXI-Lite 從機(jī)端接口,使得本數(shù)據(jù)傳輸系統(tǒng)可以簡(jiǎn)易地集成進(jìn)用戶(hù)環(huán)境。同時(shí)通過(guò) AXI-Lite 接口,用戶(hù)可以高效的與本數(shù)據(jù)傳輸系統(tǒng)進(jìn)行交互,實(shí)現(xiàn)對(duì)系統(tǒng)
    發(fā)表于 11-25 10:34

    RK?平臺(tái)?Vendor Storage?開(kāi)發(fā)指南:基礎(chǔ)知識(shí)、流程與實(shí)用技巧

    備可靠性校驗(yàn)、掉電恢復(fù)等關(guān)鍵特性,是保障設(shè)備身份標(biāo)識(shí)、功能授權(quán)等核心信息安全的重要組件。本文將從基礎(chǔ)知識(shí)、開(kāi)發(fā)流程、使用途徑三方面,為開(kāi)發(fā)者梳理完整的開(kāi)發(fā)邏輯。 一、核心基礎(chǔ)知識(shí):了解?Vendor Storage?是什么? 1
    的頭像 發(fā)表于 11-22 07:11 ?1180次閱讀
    RK?平臺(tái)?Vendor Storage?開(kāi)發(fā)指南:基礎(chǔ)知識(shí)、<b class='flag-5'>流程</b>與實(shí)用技巧

    AG32 內(nèi)置的CPLD 的DMA功能如何實(shí)現(xiàn)?

    一、在AGM 的AG32 CPLD中實(shí)現(xiàn)DMA(直接內(nèi)存訪問(wèn))功能,其核心邏輯如下: 1、系統(tǒng)架構(gòu)?采用主從架構(gòu):MCU作為主設(shè)備,CPLD作為從設(shè)備?交互方式:MCU通過(guò)訪問(wèn)寄
    發(fā)表于 10-31 15:42

    DRM Kit數(shù)字版權(quán)保護(hù)服務(wù)介紹

    DRM Kit (Digital Rights Management Kit,數(shù)字版權(quán)保護(hù)服務(wù))提供了DRM加密節(jié)目授權(quán)解密的功能,包括DRM插件管理、
    的頭像 發(fā)表于 10-15 13:58 ?1174次閱讀
    <b class='flag-5'>DRM</b> Kit數(shù)字版權(quán)保護(hù)服務(wù)介紹

    閂鎖效應(yīng)的形成原理和測(cè)試流程

    在CMOS電路中,存在寄生的PNP和NPN晶體管,它們相互影響在VDD與GND間產(chǎn)生一低阻通路,形成大電流,燒壞芯片,這就是閂鎖效應(yīng),簡(jiǎn)稱(chēng)latch-up。
    的頭像 發(fā)表于 07-03 16:20 ?4866次閱讀
    閂鎖效應(yīng)的<b class='flag-5'>形成</b>原理和測(cè)試<b class='flag-5'>流程</b>

    HarmonyOS實(shí)戰(zhàn):高德地圖定位功能完整流程詳解

    完整的定位功能流程,建議點(diǎn)贊收藏! 需求分析 要想實(shí)現(xiàn)一個(gè)完整的定位需求流程,就必須要做好準(zhǔn)備工作,了解實(shí)現(xiàn)需求的具體步驟。 權(quán)限申請(qǐng) 檢查
    的頭像 發(fā)表于 06-09 15:23 ?1325次閱讀

    小鵬汽車(chē)斬獲兩項(xiàng)國(guó)際頂級(jí)安全認(rèn)證 ISO 26262功能安全流程認(rèn)證和ISO 21448預(yù)期功能安全(SOTIF)流程認(rèn)證

    2025年5月,小鵬汽車(chē)順利通過(guò)全球權(quán)威安全認(rèn)證機(jī)構(gòu)雅析exida 功能安全(ISO 26262)ASIL D 流程認(rèn)證和 預(yù)期功能安全(ISO 21448)SOTIF 流程認(rèn)證,成為
    的頭像 發(fā)表于 06-07 19:00 ?5243次閱讀
    小鵬汽車(chē)斬獲兩項(xiàng)國(guó)際頂級(jí)安全認(rèn)證 ISO 26262<b class='flag-5'>功能</b>安全<b class='flag-5'>流程</b>認(rèn)證和ISO 21448預(yù)期<b class='flag-5'>功能</b>安全(SOTIF)<b class='flag-5'>流程</b>認(rèn)證

    GPU架構(gòu)深度解析

    、游戲娛樂(lè)等領(lǐng)域。本文將深入探討GPU架構(gòu)的演變歷程、核心組件以及其在不同應(yīng)用場(chǎng)景中的優(yōu)勢(shì)。1、GPU架構(gòu)的演變?cè)缙诘腉PU采用固定功能流水線(xiàn)架構(gòu),專(zhuān)為圖形渲染任務(wù)而
    的頭像 發(fā)表于 05-30 10:36 ?2023次閱讀
    GPU<b class='flag-5'>架構(gòu)</b>深度解析

    技術(shù)分享 | 如何在2k0300(LoongArch架構(gòu))處理器上跑通qt開(kāi)發(fā)流程

    技術(shù)分享 | 如何在2k0300開(kāi)發(fā)板(LoongArch架構(gòu))處理器上跑通qt開(kāi)發(fā)流程
    的頭像 發(fā)表于 05-20 11:05 ?1020次閱讀
    技術(shù)分享 | 如何在2k0300(LoongArch<b class='flag-5'>架構(gòu)</b>)處理器上跑通qt開(kāi)發(fā)<b class='flag-5'>流程</b>

    PanDao:通過(guò)可生產(chǎn)性調(diào)控實(shí)現(xiàn)光學(xué)設(shè)計(jì)流程的動(dòng)態(tài)優(yōu)化

    [1,2])。未來(lái)下一步發(fā)展應(yīng)該就是在光學(xué)設(shè)計(jì)階段就集成生產(chǎn)制造分析功能,甚至是將其直接嵌入光學(xué)設(shè)計(jì)軟件中。本文首次嘗試在光學(xué)設(shè)計(jì)的早期階段動(dòng)態(tài)應(yīng)用PanDao軟件,探索在早期光學(xué)設(shè)計(jì)流程中集成生產(chǎn)制造
    發(fā)表于 05-09 08:49
    政和县| 武清区| 长春市| 营口市| 安平县| 怀柔区| 都江堰市| 叙永县| 柘荣县| 任丘市| 四川省| 蒙城县| 格尔木市| 会东县| 梅河口市| 察隅县| 瑞安市| 合作市| 安化县| 容城县| 郸城县| 景泰县| 东兴市| 军事| 许昌市| 西贡区| 浦江县| 丹巴县| 家居| 铜陵市| 蒲江县| 玉田县| 繁昌县| 鄂州市| 绥德县| 永年县| 永嘉县| 株洲市| 汉阴县| 米泉市| 宁河县|