Android Display整体架构
Android 图形组件
Android Graphic analyze
display:高通display overview
MDP(mobile display processor) 简介
[RK3399][Android7.1] Display中的DRM模块介绍

Application
显示流程为在APP侧的主要流程为,当启动一个新的activity时,会创建一个窗口并在WindowManager service(WMS)中注册,当这个app切换到“最前台”时,WMS会要求SurfaceFlinger为这个window创建一个surface用来绘图。SurfaceFlinger创建一个“layer“(surface),这个layer的核心部分既是一个BufferQueue,这时候app就可以在这个layer上render了。

Framework

frameworks/native/services/surfaceflinger
SurfaceFlinger:当系统中存在多个应用程序时,这能保证它们都可以获得一个“本地窗口”,并且这些窗口最终也能显示到屏幕上,SurfaceFlinger会收集所有程序的显示需求,对它们做统一的图像混合操作。

Surface:SurfaceView中有独立与应用窗口的Surface,能直接显示在终端屏幕上的,Surface从中介BufferQueue申请一个bufferdequeueBuffer(例如Camera就是GraphicBuffer),最终会丢给SurfaceFlinger。

BufferQueue:BufferQueue是一个服务中心,producer和consumer必须要通过它来管理buffer。

Surface 表示缓冲区队列中的生产方,而缓冲区队列通常会被 SurfaceFlinger 消耗。在 Android 平台上创建的每个窗口都由 Surface 提供支持。所有被渲染的可见 Surface 都被 SurfaceFlinger 合成到屏幕。

Hardware Abstraction Layer
vendor/qcom/proprietary/display
hardware/libhardware/modules/gralloc

硬件混合渲染器 (HWC) HAL 用于确定通过可用硬件来合成缓冲区的最有效方法。假设有一部普通 Android 手机屏幕,其屏幕方向为纵向,状态栏在顶部,导航栏在底部,其他区域显示应用内容。每个层的内容都在单独的缓冲区中。您可以使用以下任一方法处理合成:

(1) 将应用内容渲染到暂存缓冲区中,然后在其上渲染状态栏,再在其上渲染导航栏,最后将暂存缓冲区传送到显示硬件。
(2) 将三个缓冲区全部传送到显示硬件,并指示它从不同的缓冲区读取屏幕不同部分的数据。

显然后一种方法可以显著提高效率,所以HWC用于将SurfaceFlinger 接收的图层进行合成,从而减少 OpenGL ES (GLES) 和 GPU 执行的合成量,其工作方式表现为为

(1) SurfaceFlinger 向 HWC 提供一个完整的层列表,并询问“您希望如何处理这些层?”
(2) HWC 的响应方式是将每个层标记为设备或客户端合成。
(3) SurfaceFlinger 会处理所有客户端,将输出缓冲区传送到 HWC,并让 HWC 处理其余部分。

HAL层的gralloc库负责了申请图形缓冲区的所有工作,HAL层之上的Surface、BufferQueue最终都是调用gralloc库去申请图形缓冲区。

Kernel Space

DRM(direct rendering manager)
各模块的位置及功能:
Plane:        一个Plane代表一个image layer, 最终的image由一个或者多个Planes组成。

CRTC:       主要用于显示控制,如display timings,resolution的配置,将framebuffer内容送到display,更新framebuffer等。

Encoder:    将数据转换成合适的格式,送给connector,比如HDMI需要TMDS信息, encoder就将数据转成HDMI需要的TMDS格式。

Connector: 代表具体外部接口,如edp, hdmi, mipi等。用于传输信号给外部硬件显示设备,探测外部显示设备接入。

对应dtsi中的qcom,mdss-dsi-display-timings中
    qcom,display-topology = <1 0 1>;  //Layer Mixer, DSC encoder, DSI MDP处理模块的数量
    qcom,default-topology-index = <0>;

SDE/MDP(mobile display processor)
DRM处理架构中的对应的硬件模块
SSPP(Source Surface Processor Pipes):Format conversion and quality improvement for source surface(video graphics)
Layer Mixer(LM):Blend and mix source surface together
DSPP(Destination Surface Processor Pipes):Conversion correction and adjustment based on panel charactersistics
Display interface:Timing generate and interface connectiong the display perpheral

Android Qcom lcd display 学习(3)相关推荐

  1. Android Qcom lcd display 学习(1)

    LCD的结构 TFT-LCD屏幕构造组成原理 Android LCD(一):LCD基本原理篇 LCD: 奇景光电 (hx8399) .敦泰 (ft8719) .京东方 .联咏等IC厂商 由于TFT-L ...

  2. Android Qcom lcd display 学习(4)

    DRM Linux DRM(二)基本概念和特性 DRM(Direct Rendering Manager)学习简介 DRM 的诞生就是用来处理多个程序对 Video Card 资源的协同使用问题,通过 ...

  3. Android Qcom USB Driver学习(二)

    该系列文章总目录链接与各部分简介: Android Qcom USB Driver学习(零) BC v1.2充电规范 Battery Charging Specification USB port 如 ...

  4. Android Qcom USB Driver学习(八)

    该系列文章总目录链接与各部分简介: Android Qcom USB Driver学习(零) 因为要看usb charging的问题,所以需要补充一下battery的相关知识,算是入门吧 BAT SC ...

  5. Android Qcom USB Driver学习(一)

    该系列文章总目录链接与各部分简介: Android Qcom USB Driver学习(零) USB接口类型 Android终端上常用的USB接口:TypeC(现在的主流),MicroB(以前的设备) ...

  6. Android Qcom USB Driver学习(六)

    该系列文章总目录链接与各部分简介: Android Qcom USB Driver学习(零) 眼图基础知识与详解 10分钟教会你看眼图 USB2.0 HUB眼图调试经验总结 一篇文章教你如何全面了解眼 ...

  7. Android Qcom USB Driver学习(四)

    该系列文章总目录链接与各部分简介: Android Qcom USB Driver学习(零) VID/PID识别USB设备 CDC-ACM驱动介绍   CDC-ACM(Communication De ...

  8. Android Qcom Audio架构学习

    总结: Android Audio不简单呀,一个人摸索入门不容易的,研究了一段时间,感觉还不是很懂,但以下的知识对入门还是有帮助的. Audio架构中的名词 FE(Front End) 提供pcm的设 ...

  9. Android Qcom USB Driver学习(九)

    该系列文章总目录链接与各部分简介: Android Qcom USB Driver学习(零) 高通的某些平台将电源管理移植到了ADSP Subsystem, 分析一下其中比较关心的部分 Archite ...

最新文章

  1. 矩阵计算在计算机科学中,开发者必读:计算机科学中的线性代数(附论文)
  2. 词袋模型(bag of words)构建并使用主题模型(topic models)特征进行文本聚类分析(clustering analysis)实战
  3. Django 知识补漏单例模式
  4. ue4材质节点怎么用_济南装修:阳台储物柜用什么材质好?怎么保养阳台储物柜?...
  5. 看嵌入式大神直播,送开发板!
  6. 完美日记:实现高弹性高稳定电商架构
  7. 21.和和instance of
  8. spring加载application.xml异常
  9. ASP.NET TextBox 当鼠标点击后清空默认提示文字
  10. 今年暑假不AC 贪心
  11. 8VC Venture Cup 2016 - Final Round (Div. 2 Edition)
  12. Oracle学习之路-- 案例分析实现行列转换的几种方式
  13. 计算机接口论文摘要,计算机接口技术论文_计算机接口技术
  14. 可作为工质状态参数的是_§2工质的热力状态及其基本状态参数
  15. EXCEL 根据超链接直接显示图片
  16. 魔兽世界服务端源码各个重要文件详细情况说明开服一条龙
  17. 五险一金和个人所得税
  18. 计算机组成原理DROM,最新版 计算机组成原理试题及答案a
  19. 【行业案例分享】平安云加速银行数字化转型!
  20. GSL----积分部分(翻译+精简)

热门文章

  1. C#线程中使用委托方式设置控件属性
  2. 特征选择-包裹式选择
  3. Marioの《计算机程序设计艺术》读书笔记:数、幂与对数
  4. ai人工智能的数据服务_AI和数据科学的傻瓜与同学聊天
  5. 磁芯存储器应用在第几代计算机上,晶体管计算机属于第几代计算机
  6. android ts格式,MPEG2TS文件格式概述
  7. RS485通讯---Modbus数据链路层与应用层(二)
  8. rssi参数获取_rssi定位算法及读取RSSI值程序分享
  9. 转行不必从0开始,7成积累能迁移
  10. 攻防世界-misc-warmup题解