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 支持多个显示流水线,每个流水线可以独立处理一个显示场景。

关键概念: 每个 DPU 流水线(Pipeline)包含一组专用的硬件资源,包括 Layer Mixer、Mixer、Display Controller 等。多流水线架构允许同时驱动仪表盘(Cluster)、中控屏(IVI)和副驾娱乐屏(PFD)等独立显示设备。
DPU 整体流水线架构 DPU 整体流水线架构(SA8155) GPU 帧缓冲 VPU 视频帧 Layer Mixer 图层合成 Alpha 混合 Z-order 排序 Mixer 多流水线混合 背景填充 全局 Alpha Display Ctrl 时序生成 色彩管理 HDR 元数据 显示 接口 说明: 每个 Pipeline 包含独立的 Layer Mixer 和 Mixer,支持多图层叠加。 Display Controller 负责最终的时序控制和 HDR 元数据注入。 Writeback 模块(未在图中显示)可捕获最终合成帧用于回录或截屏。

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 元数据随图层传递
调试要点: 在 HDR 显示场景中,Layer Mixer 需要正确处理 SDR 和 HDR 图层的混合。通常 SDR 图层(如 UI 元素)需要先经过色调映射(Tone Mapping)再与 HDR 图层混合,否则会导致亮度异常。

2.3 Mixer(多流水线混合器)

Mixer 位于 Layer Mixer 之后,负责将多个 Layer Mixer 的输出(即多个中间合成帧)进行最终的混合。在 SA8155 中,一个 Mixer 可以接收来自多个 Layer Mixer 的输入,并生成一个完整的显示帧。

  • 多流水线聚合: 支持将仪表盘流水线和中控流水线的输出混合到一个显示设备(如全景天幕显示)。
  • 背景色填充: 当某些区域没有图层覆盖时,Mixer 使用配置的背景色填充。
  • 全局 Alpha: 支持对整个 Mixer 输入进行全局透明度调整,用于淡入淡出效果。
  • 裁剪与缩放: 每个 Mixer 输入可以独立配置裁剪区域和缩放比例。
Mixer 多输入混合示意图 Mixer 多输入混合示意图 Layer Mixer 0 Layer Mixer 1 Layer Mixer 2 Mixer 多流水线聚合 背景填充 全局 Alpha 裁剪/缩放 合成帧输出 → Display Ctrl

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 等串行接口协议
常见问题: HDR 元数据注入失败通常表现为显示器无法正确识别 HDR 信号,导致画面过暗或色彩失真。调试时应使用示波器或协议分析仪检查 Vblank 区域的 Data Island 是否正确携带了 HDR 信息。

2.5 Writeback 模块(回写模块)

Writeback 模块是 DPU 中的一个特殊功能单元,它可以将经过 Mixer 合成后的最终帧数据写回到系统内存中,而不是直接输出到显示接口。这个功能在以下场景中非常有用:

  • 屏幕截取(Screen Capture): 捕获当前显示内容用于截图或录屏,无需经过 GPU 回读。
  • 画中画(PiP)回录: 将某个显示区域的内容回写到内存,供编码器进行视频编码。
  • 内容验证: 在调试阶段,通过 Writeback 获取原始合成帧,与预期输出进行像素级对比。
  • 多显示同步: 将一个流水线的输出回写后,作为另一个流水线的输入,实现内容复制或转换。
Writeback 模块工作流程 Writeback 模块工作流程 Mixer 输出 合成帧 Display Ctrl → 显示接口 Writeback 模块 系统内存 Writeback 应用场景: • 屏幕截取与录屏 • 画中画回录 • 调试像素级验证

2.6 模块协作流程总结

在 SA8155 的 DPU 中,一个典型的显示帧处理流程如下:

  1. 图层提交: 应用层通过 DRM/KMS 接口提交多个图层(Layer)到 DPU。
  2. Layer Mixer 合成: 每个 Layer Mixer 将所属的图层按 Z-order 进行 Alpha 混合,生成中间帧。
  3. Mixer 聚合: 多个 Layer Mixer 的输出在 Mixer 中进一步混合,生成最终显示帧。
  4. Display Controller 输出: 最终帧经过色彩管理、时序生成和 HDR 元数据注入后,发送到显示接口。
  5. Writeback(可选): 在需要时,Mixer 的输出被 Writeback 模块捕获并写入系统内存。
调试视角: 当 HDR 显示异常时,应逐级排查:先确认 Layer Mixer 的 HDR 图层配置是否正确,再检查 Mixer 的全局色彩空间设置,最后验证 Display Controller 的 HDR 元数据注入是否完整。Writeback 功能可以用于捕获中间帧,帮助定位问题发生在哪一级。