GPU 时间分析:stat gpu 与可视化

GPU 瓶颈的定位和 CPU 完全不同:靠的是把渲染管线拆开看。

stat gpu:管线段的 Stop Watch

它按渲染的阶段报告时间(示意):

InitViews:           0.8ms
ShadowDepths:        1.6ms
BasePass:            1.2ms
Translucency:        1.8ms   ← 半透明很贵
PostProcessing:      0.9ms

阅读方法:找最粗的那段。半透明(Translucency)通常是特效重项目的第一名——这个数字直接对应第 4 章要讲的 overdraw 优化。

GPU Visualizer(GPU 可视化器)

控制台 profilegpu 打开 GPU Visualizer,它把每帧的 GPU 工作画成层级条形图:

  • 每条代表一个 Pass,长度是耗时,父子关系是管线结构;
  • 点击展开能看材质 / 特效维度的细分。

这是回答"GPU 时间花在哪"最直接的工具。看到"某个全屏后处理 Pass 占 3ms"时,你才会理解为什么画质选项里"泛光"是第一刀。

热点模式

GPU 热点 典型原因 对应优化
ShadowDepths 高 阴影级联多、光源多 降阴影距离 / 换级联数
Translucency 高 半透明特效 / 烟雾堆叠 见渲染章 overdraw 节
BasePass 高 高面数、Nanite 之外的大网格 Nanite / LOD
PostProcessing 高 多个全屏特效叠加 砍效果 / 合并
全屏着色器贵 材质复杂度高 简化材质 / 改算法

移动端(尤其 OpenGL/Vulkan 前向渲染)的管线不同:看到 Frame 时间高但 GPU 各段都不高,可能是带宽瓶颈——移动 GPU 的内存带宽比算力更容易满。