DRM学习

DRM

DRM是Linux下的一个驱动架构,全称直接渲染架构。引入之初是为了display显示数据的传输,现在广泛应用于嵌入式领域,并且为显卡GPU提供一部分服务。显卡上具有一些接口如HDMI、VGA等,所以相应的就包含了他们的驱动。

DRM可分为三部分:

  • libdrm 将控制底层硬件的ioctl做成API给用户空间用。位于中间层。
  • KMS(Kernel Mode Setting)内核模式设置(KMS)是在内核空间(而不是用户空间)设置显示分辨率和深度的方法,还可显示画面,显示buffer的切换,多图层的合成方式,以及每个图层的显示位置。
  • GEM (Graphic Execution Manager)主要负责显存的申请释放 (Framebuffer managing) ,显存共享机制 (Memory sharing objects), 及显存同步机制 (Memory synchronization)。

KMS还包括了很多结构体元素

  • crtc (struct drm_crtc)对显示buffer进行扫描,并产生时序信号的硬件模块,framebuffer切换,通常指Display Controller

  • encoder (struct drm_encoder)负责将CRTC输出的timing时序转换成外部设备所需要的信号的模块,如HDMI转换器或DSI Controller

  • connecter (struct drm_connecter)连接物理显示设备的连接器,如HDMI、DisplayPort、DSI总线,通常和Encoder驱动绑定在一起

  • plane (struct drm_plane)硬件图层,有的Display硬件支持多层合成显示,但所有的Display Controller至少要有1个plane

  • FB (struct drm_framebuffer)Framebuffer,单个图层的显示内容,唯一一个和硬件无关的基本元素

  • property (struct drm_property)任何你想设置的参数,都可以做成property,是DRM驱动中最灵活、最方便的Mode setting机制

  • vblank 软件和硬件的同步机制,RGB时序中的垂直消影区,软件通常使用硬件VSYNC来实现

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值