iPhone OpenGL ES工具中的Tiler利用率统计意味着什么?

25
我一直在尝试进行OpenGL ES性能优化,以提高我在iPhone应用程序中渲染的每秒三角形数量,但是我遇到了瓶颈。我已经尝试将我的OpenGL ES数据类型从固定点转换为浮点数(按照苹果公司的建议),交错我的顶点缓冲对象,并最小化绘图状态的更改,但是这些更改都没有影响渲染速度。无论如何,我似乎无法将我的应用程序推向在运行3.0操作系统的iPhone 3G上320,000个三角形/秒以上。根据这个基准测试,我应该能够使用我正在使用的平滑着色在这个硬件上达到687,000个三角形/秒。
在我的测试中,当我在Instruments中针对正在运行的设备运行OpenGL ES性能工具时,我看到“Tiler Utilization”统计数据在渲染我的基准测试时接近100%,但“Renderer Utilization”仅达到约30%。这可能提供了有关显示过程瓶颈的线索,但我不知道这些值的含义,并且我没有找到任何关于它们的文档。是否有人能够对iPhone OpenGL ES仪器中的这个和其他统计数据进行良好的描述?我知道iPhone 3G中的PowerVR MBX Lite是一个基于瓦片的延迟渲染器,但我不确定该架构中Renderer和Tiler之间的区别是什么。
如果有帮助的话,该应用程序的源代码(BSD许可证)可用供您下载和测试。在当前配置中,每次加载新的分子结构时都会启动一个小型基准测试,并将三角形/秒输出到控制台。

你的三角形有多大?我认为其中一个统计数据更多关注像素数量,另一个则关注三角形数量。如果你将屏幕缩小以至于不再填满整个屏幕,相对利用率的数字是否会发生变化? - David Maymudes
1
它会根据我加载的模型而变化,但它们往往非常小。无论模型的缩放级别如何,数字似乎都保持不变。此外,我已经尝试将OpenGL视图大小减少到现在的一半,但没有效果,这似乎排除了填充率限制。 - Brad Larson
2个回答

27
瓦片利用率和渲染器利用率分别测量顶点处理硬件和片段处理硬件的工作循环百分比。在MBX上,瓦片利用率通常随着发送到GPU的顶点数据量(无论是每个顶点发送的顶点数还是属性大小方面)的增加而增加,片段利用率通常随着重绘和纹理采样而增加。
针对您的情况,最好的做法是减少发送的每个顶点的大小。首先,我建议您按颜色将原子和键分组,并使用固定颜色发送每个分组,而不是使用数组。我还建议您调查一下,在适当的缩放下,是否适合将位置和法线缩短为shorts。如果shorts的缩放提供的精度不能覆盖所需范围,则在这种情况下,您可能还需要按位置进行分组。这些技术可能需要额外的绘制调用,但我认为顶点吞吐量的改进将超过每个绘制调用的额外CPU开销。
请注意,通常有益于(在MBX和其他地方)确保每个顶点属性从32位边界开始,这意味着如果将它们切换到短整型,则应将位置和法线填充到4个分量。 MBX平台的特殊性质也意味着在这种情况下,您实际上需要在调用glVertexPointer时包括位置的W分量。
您还可以考虑为您的多边形数据探索DOT3等备选照明方法,尤其是对于球体,但需要特别注意确保不使渲染片段受限或无意中发送比以前更多的顶点数据。

2
这与我最初提出问题时的经验一致。我将我的顶点和法线数据缩短为shorts,并填充了额外的组件以达到32位边界,这将渲染性能提高了30%。剔除背面并调整深度测试又增加了10%。我会看看颜色分组对此有什么影响。感谢详细的回答。 - Brad Larson
1
我有一个愚蠢的问题......在Pivot的回答中,动词“bin”是什么意思? - Andrew Garrison
3
在这种情况下,它的意思是将某种类型的项分组。当他说“按颜色将原子和键进行分组”时,他的意思是我应该将所有共享相同颜色的项的顶点分组,然后只为该颜色提交一次这些项。这样可以避免为每个顶点指定颜色,从而减小发送的几何体积。 - Brad Larson
2
作为对此的另一个跟进,我最终实现了分色箱以进行分子渲染。这导致要传递到GPU的几何体积大小减少了约20%,并且我观察到每个OpenGL ES帧的渲染加速了17%。我认为这是一个胜利。 - Brad Larson
回答得很好,但我想指出按颜色分组应谨慎使用。这将增加绘制调用的数量。当绘制调用超过大约200个时,iPhone将超载其CPU。 - Bram

7

很好的回答,@Pivot!参考这篇Apple文档定义了以下术语:

  • 渲染器利用率%。 GPU花费在片段处理上的时间百分比。
  • 瓦片化器利用率%。 GPU花费在顶点处理和瓦片化上的时间百分比。
  • 设备利用率%。 GPU花费在任何瓦片化或渲染工作上的时间百分比。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接