2. Qualcomm座舱SoC显示与图形硬件架构

在Qualcomm智能座舱SoC(如SA8155P、SA8295P)中,多屏显示并不是由某一个硬件模块独立完成的,而是由DPU、GPU、VPU、显示接口以及内存子系统协同工作的一条完整数据通路。理解这条通路,是后续做多屏并发、分辨率分配、带宽预算和性能调优的基础。

一、四类核心处理单元的分工

DPU(Display Processing Unit,显示处理单元)是显示通路的“总装配线”。它负责图层合成(Layer Blending)、缩放(Scaling)、色彩空间转换(CSC)、旋转、Gamma/色调映射,并把最终画面按显示时序输出。座舱SoC通常集成多个DPU实例,每个DPU可驱动一路或多路显示控制器,支持多图层叠加,例如仪表盘、中控、副驾屏各自拥有独立图层树。

GPU(图形处理单元)基于Adreno架构,负责3D渲染、UI合成加速、OpenGL ES/Vulkan绘制以及部分2D合成。它把应用层的Surface渲染成纹理或帧缓冲,再交给DPU做最终合成。GPU是算力与带宽消耗大户,尤其在多屏高分辨率、高刷新率场景下。

VPU(Video Processing Unit,视频处理单元)负责视频编解码,如H.264/H.265/VP9的硬件解码。座舱中常见的倒车影像、DMS摄像头、后排娱乐视频都经过VPU解码后送入DPU或GPU合成。VPU的价值在于把CPU从软解中解放出来,同时降低功耗。

显示接口是SoC到屏幕的物理出口,常见包括MIPI DSI、DisplayPort(DP)、eDP以及通过桥接芯片扩展的LVDS/HDMI。接口的通道数(Lane)、每通道速率和像素时钟,直接决定单屏可支持的最大分辨率与刷新率。

二、多屏并发显示的数据通路

典型的一条通路是:应用/视频源 → GPU渲染或VPU解码 → 写入DDR中的帧缓冲 → DPU读取图层 → 合成 → 显示接口 → 屏幕。多屏并发时,多个DPU通道会同时向DDR发起读写请求,内存带宽成为最关键的共享资源。

Qualcomm座舱SoC多屏并发显示数据通路 应用 / UI Surface / Canvas 视频源 H.265 / H.264 摄像头 倒车 / DMS GPU (Adreno) 3D渲染 / 2D合成 VPU 视频硬解码 ISP / 摄像头 图像处理 DDR 帧缓冲 / 图层 共享带宽 LPDDR4x / LPDDR5 DPU 图层合成 / 缩放 CSC / 旋转 / Gamma DPU0 → 仪表 DPU1 → 中控 DPU2 → 副驾 DPU3 → 后排 多通道并行输出 显示接口 MIPI DSI / DP / eDP 屏幕 仪表 / 中控 / 副驾 / 后排 带宽瓶颈点 多DPU并发读写

三、内存带宽:多屏并发真正的约束

多屏并发时,每一路显示都需要持续从DDR读取帧缓冲。以1080p@60Hz、ARGB8888(4字节/像素)为例,单层单屏的读取带宽约为:1920×1080×4×60 ≈ 497 MB/s。若中控屏有4个图层叠加,则仅该屏读取就接近2 GB/s。四屏并发、叠加视频与3D渲染后,总带宽需求很容易超过10 GB/s。

LPDDR4x在典型座舱SoC上的有效带宽约在15~25 GB/s量级,LPDDR5可更高。但要注意,这是整颗SoC共享的带宽,CPU、GPU、VPU、DPU、ISP都在竞争。因此实际工程中必须做带宽预算,而不是只看单屏参数。

经验上,显示子系统(DPU读取)通常占用总带宽的30%~50%,GPU渲染占20%~35%,VPU解码占10%~20%。当多屏并发出现掉帧、撕裂或延迟升高时,优先排查DDR带宽是否饱和,而不是先怀疑DPU本身。

四、多屏并发的关键配置参数

在设备树(Device Tree)和显示驱动中,多屏并发通常需要关注以下参数:

  • 每路DPU的图层数:图层越多,DDR读取次数越多,带宽线性上升。
  • 分辨率与刷新率:像素时钟决定单路带宽,4K@60Hz约为1080p@60Hz的4倍。
  • 像素格式:ARGB8888比RGB565多一倍带宽,能压缩的格式(如AFBC)可显著降低读取量。
  • 显示接口Lane数与速率:MIPI DSI 4-lane、DP 4-lane的速率上限决定单屏能否跑满。
  • DDR频率与通道:决定总带宽上限,也影响延迟。

以SA8155P为例,常见配置是:仪表1080p@60Hz(2图层)、中控1920×1200@60Hz(4图层)、副驾1080p@60Hz(2图层)、后排1080p@60Hz(1图层)。此时显示读取带宽约:

仪表: 1920×1080×4×60×2 ≈ 0.99 GB/s
中控: 1920×1200×4×60×4 ≈ 2.21 GB/s
副驾: 1920×1080×4×60×2 ≈ 0.99 GB/s
后排: 1920×1080×4×60×1 ≈ 0.50 GB/s
显示合计 ≈ 4.69 GB/s

再加上GPU渲染、VPU解码和CPU访问,总需求可能达到8~12 GB/s。若DDR有效带宽为17 GB/s,则余量约30%~50%,属于可接受范围;若余量低于20%,多屏并发时就容易出现卡顿。

五、AFBC与带宽优化

Qualcomm平台广泛使用AFBC(Arm Frame Buffer Compression)对帧缓冲做无损或近无损压缩,可把DPU读取带宽降低30%~50%。启用AFBC后,GPU写入和DPU读取都以压缩块为单位,既省带宽又省功耗。工程上应优先确认:

  1. GPU渲染目标是否分配为AFBC格式;
  2. DPU是否支持并启用了对应AFBC解码;
  3. 视频解码输出是否走AFBC或类似压缩路径。
AFBC并非对所有图层都生效。某些格式(如部分YUV、特殊Alpha混合)可能不支持压缩,此时该图层仍按原始带宽计算。做带宽预算时,应按“最坏情况”估算,而不是按理想压缩比。

六、结果观察与判断依据

多屏并发是否健康,可以从以下现象判断:

观察项正常表现异常表现与可能原因
帧率各屏稳定在目标刷新率掉帧→带宽饱和或DPU图层过多
撕裂无明显撕裂VSync同步失败或DPU时序冲突
延迟触控到显示延迟低且稳定延迟升高→GPU/DPU排队或DDR延迟大
功耗显示子系统功耗平稳功耗异常→带宽竞争导致重传或降频

实际调试中,可借助Qualcomm的显示调试节点、GPU Profiler和DDR带宽计数器,观察各模块的实时占用。若发现DPU读取带宽接近DDR上限,应优先减少图层数、启用AFBC、降低非关键屏刷新率,或把部分合成从GPU转移到DPU,以平衡负载。

理解DPU、GPU、VPU、显示接口与DDR之间的这条数据通路,才能在多屏并发场景下做出合理的分辨率分配、图层规划和带宽预算,避免“单屏能跑、多屏就卡”的典型问题。