顶点数据的内存带宽可能会成为游戏 GPU 性能的瓶颈。AGI 系统配置文件中有一些计数器可以帮助诊断顶点内存带宽问题。
Qualcomm Adreno 计数器
在搭载 Qualcomm Adreno GPU 的设备上,一些值得注意的计数器包括:
| 计数器 | 说明 |
|---|---|
| 顶点内存读取 | 从外部内存读取的顶点数据的带宽。 |
| 平均字节/顶点数 | 顶点数据的平均大小(以字节为单位)。 |
| 顶点提取停顿 (%) | GPU 阻塞顶点数据的时钟周期所占的百分比。 |
ARM Mali 计数器(正在开发中)
在搭载 ARM Mali GPU 的设备上,一些值得注意的计数器包括:
| 计数器 | 说明 |
|---|---|
| 从外部内存读取的加载/存储节拍数 | 加载/存储单元从外部内存读取的数据节拍数,按着色器核心取平均值。 |
| 从 L2 缓存读取的加载/存储节拍数 | 加载/存储单元从 L2 缓存读取的数据节拍数,按着色器核心取平均值。 |
| [更多] |
如需根据平均读取节拍数计算总带宽,请将计数器值乘以总线宽度(通常为 16 字节)和着色器核心总数。[更多]
计数器分析
如需衡量这些计数器的行为,您可以衡量单个 GPU 帧的平均带宽和峰值带宽,这些带宽可以用连续的 GPU 利用率 块来划分。
我们建议峰值顶点内存读取带宽不超过 1.5 GBps,平均带宽不超过 500 MBps。较高的值表示存在以下几个常见问题之一:
- 顶点大小过大:顶点可能具有较大的顶点属性或大量的顶点属性,从而严重影响顶点着色时间。
- 顶点属性流未拆分:顶点属性交织到单个缓冲区中,降低了缓存效率。
- 每个帧提交的顶点过多:复杂的模型和/或大量的模型可能会占用更多带宽,并需要更长时间进行着色。
您还可以通过 Average Bytes / Vertex 轨道诊断顶点大小问题,我们建议该轨道的值不超过 32 字节或顶点。
诊断您可能面临的这些问题的最佳方法是进行帧配置文件跟踪,以分析顶点格式。