2. DPU 核心概念:DPU 流水线、Mixer、Layer Mixer、Display Controller、Writeback 模块
在高通 SA8155 平台中,DPU(Display Processing Unit)是负责图像合成、图层混合、色彩校正及最终显示输出的核心硬件单元。理解 DPU 的内部架构是进行 HDR 显示调试的基础。本章将深入剖析 DPU 流水线(Pipeline)以及 Mixer、Layer Mixer、Display Controller、Writeback 等关键模块的功能与协作关系。
2.1 DPU 整体流水线架构
DPU 的流水线是一个高度可编程的硬件处理链,通常包含多个阶段,从接收 GPU/VPU 的帧缓冲区数据开始,到最终输出到物理显示接口(如 DSI、DP)结束。SA8155 的 DPU 支持多个显示流水线,每个流水线可以独立处理一个显示场景。
2.2 Layer Mixer(图层混合器)
Layer Mixer 是 DPU 流水线中的第一级合成单元,负责将多个输入图层(Layer)按照 Z-order 顺序进行 Alpha 混合,生成一个中间合成帧。每个 Layer Mixer 可以处理多个图层(通常为 4~8 个)。
| 属性 | 说明 |
|---|---|
| 输入图层数 | 每个 Layer Mixer 支持 4~8 个图层(取决于具体配置) |
| 混合模式 | 支持预乘 Alpha、非预乘 Alpha、覆盖(Coverage)等模式 |
| Z-order | 通过寄存器配置图层的堆叠顺序,值越大越靠上 |
| 格式支持 | RGB888、ARGB8888、YUV420、P010(10-bit HDR)等 |
| HDR 相关 | 支持 PQ/HLG 曲线传递,HDR 元数据随图层传递 |
2.3 Mixer(多流水线混合器)
Mixer 位于 Layer Mixer 之后,负责将多个 Layer Mixer 的输出(即多个中间合成帧)进行最终的混合。在 SA8155 中,一个 Mixer 可以接收来自多个 Layer Mixer 的输入,并生成一个完整的显示帧。
- 多流水线聚合: 支持将仪表盘流水线和中控流水线的输出混合到一个显示设备(如全景天幕显示)。
- 背景色填充: 当某些区域没有图层覆盖时,Mixer 使用配置的背景色填充。
- 全局 Alpha: 支持对整个 Mixer 输入进行全局透明度调整,用于淡入淡出效果。
- 裁剪与缩放: 每个 Mixer 输入可以独立配置裁剪区域和缩放比例。
2.4 Display Controller(显示控制器)
Display Controller 是 DPU 流水线的最后一环,负责将 Mixer 输出的合成帧转换为符合显示接口规范的时序信号,并注入必要的 HDR 元数据。
| 功能模块 | 职责描述 |
|---|---|
| 时序生成器 | 生成 VESA/CEA 标准时序(如 Vblank、Hblank、像素时钟) |
| 色彩管理单元 | 执行 Gamma 校正、3D LUT、色域映射(如 BT.2020 → DCI-P3) |
| HDR 元数据注入 | 在 Vblank 区域插入 HDR Static Metadata(SMPTE ST 2086)或 Dynamic Metadata(HDR10+) |
| DSC 压缩 | 支持 Display Stream Compression(DSC)1.2a,用于高分辨率高色深输出 |
| 接口适配 | 将并行像素数据转换为 DSI、DP、eDP 等串行接口协议 |
2.5 Writeback 模块(回写模块)
Writeback 模块是 DPU 中的一个特殊功能单元,它可以将经过 Mixer 合成后的最终帧数据写回到系统内存中,而不是直接输出到显示接口。这个功能在以下场景中非常有用:
- 屏幕截取(Screen Capture): 捕获当前显示内容用于截图或录屏,无需经过 GPU 回读。
- 画中画(PiP)回录: 将某个显示区域的内容回写到内存,供编码器进行视频编码。
- 内容验证: 在调试阶段,通过 Writeback 获取原始合成帧,与预期输出进行像素级对比。
- 多显示同步: 将一个流水线的输出回写后,作为另一个流水线的输入,实现内容复制或转换。
2.6 模块协作流程总结
在 SA8155 的 DPU 中,一个典型的显示帧处理流程如下:
- 图层提交: 应用层通过 DRM/KMS 接口提交多个图层(Layer)到 DPU。
- Layer Mixer 合成: 每个 Layer Mixer 将所属的图层按 Z-order 进行 Alpha 混合,生成中间帧。
- Mixer 聚合: 多个 Layer Mixer 的输出在 Mixer 中进一步混合,生成最终显示帧。
- Display Controller 输出: 最终帧经过色彩管理、时序生成和 HDR 元数据注入后,发送到显示接口。
- Writeback(可选): 在需要时,Mixer 的输出被 Writeback 模块捕获并写入系统内存。