当前位置: 首页 > news >正文

android display 笔记(十一)surfaceflinger 如何将图层传到lcd驱动的呢?

SurfaceFlinger->>HWC: 提交所有图层(Layer)
HWC->>DRM/KMS: 硬件合成(Overlay)或 GPU 合成
DRM/KMS->>LCD Driver: 配置显示控制器(CRTC/Encoder)
LCD Driver->>Display: 通过 MIPI-DSI/RGB 输出像素数据

详细步骤解析
步骤 1:图层收集与准备
SurfaceFlinger 从应用通过 BufferQueue 获取图层的图形缓冲区(GraphicBuffer)。

计算每个图层的属性(位置、透明度、变换矩阵等)。

步骤 2:合成策略决策(HWC 参与)
SurfaceFlinger 调用 HWC::validate(),询问 HWC 能否硬件合成每个图层:

支持硬件合成的图层:标记为 HWC2::Composition::Device(由显示控制器直接处理)。

需 GPU 合成的图层:标记为 HWC2::Composition::Client,由 SurfaceFlinger 通过 OpenGL ES/Vulkan 渲染到临时缓冲区。

步骤 3:合成执行
硬件合成路径(Overlay):

HWC 通过 DRM/KMS 驱动 配置显示控制器的 Overlay Plane:

将图层直接送入显示控制器的硬件叠加层(避免 GPU 参与)。

LCD 驱动 从显存(Framebuffer)或 Overlay 缓冲区读取像素数据,通过 MIPI-DSI/RGB 接口 输出到屏幕。

GPU 合成路径:

SurfaceFlinger 将 GPU 渲染的结果写入 Framebuffer。

DRM/KMS 驱动将该 Framebuffer 设置为 Primary Plane,由显示控制器扫描输出。

步骤 4:显示控制器(CRTC)与时序控制
DRM/KMS 驱动 负责:

配置 CRTC(显示控制器)的时序参数(VSync/HSync/像素时钟)。

通过 Mode Setting(drm_mode_setcrtc)绑定 Framebuffer 和显示管线。

LCD 驱动(如 MIPI-DSI 控制器):

将像素数据按协议(如 DSI 数据包)发送到屏幕。

处理屏幕初始化序列(通过 DSI 命令或 GPIO 控制)。

步骤 5:VSync 同步
HWC 监听 VSync 信号(来自硬件或软件模拟),确保帧在正确时机切换。

SurfaceFlinger 根据 VSync 调度下一帧合成。

http://www.dtcms.com/a/130465.html

相关文章:

  • 指针入门C++
  • wkhtmltopdf 实现批量对网页转为图片的好工具,快速实现大量卡片制作
  • 数学建模学习资料免费分享:历年赛题与优秀论文、算法课程、数学软件等
  • Java基础自学(1):一个简单的Java程序
  • 如何使用PyCharm自动化测试
  • 医药采购系统平台第4天03:实现根据用户的角色显示不同用户的权限菜单编写拦截器实现权限拦截模块的开发流程和测试流程小节
  • FileReader 详细解析与记忆方法
  • DataEase同比环比
  • 微信小程序实战案例 - 餐馆点餐系统 阶段 2 – 购物车
  • 嵌入式常见概念的介绍
  • C++ 重构muduo网络库
  • FPGA 37 ,FPGA千兆以太网设计实战:RGMII接口时序实现全解析( RGMII接口时序设计,RGMII~GMII,GMII~RGMII 接口转换 )
  • 微信小程序跳4
  • RT-2论文深度解读:视觉-语言-动作统一模型的机器人泛化革命
  • AI NAS:当网络存储与人工智能深度融合的技术路径与未来展望
  • nvm使用手册
  • java零基础教学笔记
  • 02核心-EffectSpec,EffectContext
  • RV1106 OCR 识别算法
  • 代码随想录算法训练营day3(链表)
  • 流与分组的共生关系
  • vue + uniapp 实现仿百度地图/高德地图/美团/支付宝 滑动面板 纯css 实现
  • Matlab个性化绘图第10期—滑珠进度柱状图
  • 富文本编辑器的内容导出html,并保留图片
  • 【第41节】windows的中断与异常及异常处理方式
  • 【第四十周】文献阅读:用于检索-增强大语言模型的查询与重写
  • 精品整理 | 云安全知识证书 (CCSK) v5 备考学习资源汇总
  • Reinforcement Learning-Autonomous car-useful
  • 【数学建模】(智能优化算法)粒子群优化算法(PSO)详解与Python实现
  • 【STM32】STemWin库,使用template API