Follow Excellent, Success will Chase you

0%

DRM笔记——基本概念

DRM(Direct Rendering Manager)是linux中主流的图形显示框架,它将GPU的管理驱动和Display驱动,使得软件架构更为统一,方便管理和维护

DRM

DRM主要可以分为3部分:libdrmKMSGEM

libdrm

对linux系统底层接口进行了封装,向上层通过统一的API接口,主要是将驱动的各种ioctl接口的封装

KMS

目的:将不同的像素缓冲区渲染到屏幕上或内存中。

Kernel Mode Setting,所谓Mode setting,其实说白了就两件事:更新画面设置显示参数

  • 更新画面:显示buffer的切换,多图层的合成方式,以及每个图层的显示位置。
  • 设置显示参数:包括分辨率、刷新率、电源状态(休眠唤醒)等。

GEM

Graphic Execution Manager,主要负责显示buffer的分配和释放,也是GPU唯一用到DRM的地方。

基本元素

DRM框架涉及到的元素很多,大致如下:
KMS:CRTCENCODERCONNECTORPLANEFBVBLANKproperty
GEM:DUMBPRIMEfence

参考

-------------本文结束感谢您的阅读-------------
  • 本文作者: Winddoing
  • 本文链接: https://winddoing.github.io/post/195f15d1.html
  • 作者声明: 本博文为个人笔记, 由于个人能力有限,难免出现错误,欢迎大家批评指正。
  • 版权声明: 本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!