iPad2需要多少个像素着色器周期

时间:2012-05-30 23:38:14

标签: ios glsl opengl-es-2.0 ipad-2

使用PVRUniScoEditor来分析我们的像素着色器,我发现我们的碎片着色器大约在20个周期内进入大多数多边形,6-8个用于粒子。在获得不错的性能方面,这似乎是我们的黄油区,但我现在想知道我是否通过使这些着色器尽可能简单来掩盖其他问题。我很高兴能在这些家伙中获得更多功能。我们正在渲染一个大约120k多边形的场景,并且使顶点着色器更重,对性能几乎没有影响。

所以我想我想知道一个非常频繁使用的碎片着色器有多少太多,而对于30fps多少多分多少。

1 个答案:

答案 0 :(得分:1)

没有一个正确的答案。虽然PVRUniScoEditor是一个很好的相对估计着色器性能的工具,但你不能只说一个消耗X个估计周期的片段着色器将导致给定设备上的Y帧率。

特定着色器的重量可能只是拼图中的一个部分。屏幕上会覆盖多少个碎片?您的性能瓶颈是否在片段处理方面(OpenGL ES驱动程序中的渲染器利用率接近100%)?是否启用了混合?所有这些因素都会影响渲染帧所需的时间。

iOS上基于图块的延迟渲染器也具有一些有趣的性能特征,其中调整特定片段着色器的循环次数不会导致渲染时间的线性变化,即使对于填充率受限的应用程序也是如此。你可以在this question of mine中看到一个这样的例子,我在那里遇到了突然的性能变化,片段着色器略有不同。在这种情况下,调整着色器不是主要的解决方案,防止混合不必要的碎片。

除了分析器报告的直接循环计数是纹理带宽的限制,以及我发现缓存未命中的严重影响可以在这些着色器中使用。

我想说的是,了解应用程序中着色器性能的唯一真正方法是运行它们并查看。有一些通用的提示可以用来调整不够快的东西,但是有很多变量,每个解决方案都是特定于应用程序的。