Linux DRM 理解

本文从如下几个部分介绍

    • 1. DRM 概念介绍
    • 2. 对比HW结构分析
    • 3. code分析

1. DRM 概念介绍

DRM 是Direct Render Manager的缩写:

  • Linux 显示子系统结构框架
    • 向上提供标准API给到应用使用
    • 管理GPU和Display模块
  • 相较于原来的framebuffer结构,DRM将更多的硬件模块抽象并管理起来,所以更加的灵活方便;

包含如下模块:

  • GEM(Graphics Execution Manager) 用于管理显示buffer的申请和释放
    • DUMB:只支持连续的物理内存,基于Linux底层的CMA内存管理实现,多用于小分辨率的场景
    • PRIME:可以支持连续 & 非连续内存,基于DMA-BU机制,可以实现buffer共享,多用于大内存复杂场景
    • FENCE:buffer同步机制,基于dma_fence实现,解决buffer控制不同步而出现的撕裂、抖帧、回帧等现象
  • KMS (Kernel Mode Sstting)用于设置显示相关配置,显示画面
    • 硬件模块划分
      • CRTC:配置timing、resolution等参数
      • ENCODER:将data数据转换为输出数据格式的模块
      • Connector:连接器,显示数据传输模块,比如LVDS TX / MIPI DSI / HDMI
      • Panels:物理屏幕,同时也包含硬件模块中Overlay的图层;
      • <

你可能感兴趣的:(#,Display,linux,drm)