我一直在尝试进行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许可证)可用供您下载和测试。在当前配置中,每次加载新的分子结构时都会启动一个小型基准测试,并将三角形/秒输出到控制台。
在我的测试中,当我在Instruments中针对正在运行的设备运行OpenGL ES性能工具时,我看到“Tiler Utilization”统计数据在渲染我的基准测试时接近100%,但“Renderer Utilization”仅达到约30%。这可能提供了有关显示过程瓶颈的线索,但我不知道这些值的含义,并且我没有找到任何关于它们的文档。是否有人能够对iPhone OpenGL ES仪器中的这个和其他统计数据进行良好的描述?我知道iPhone 3G中的PowerVR MBX Lite是一个基于瓦片的延迟渲染器,但我不确定该架构中Renderer和Tiler之间的区别是什么。
如果有帮助的话,该应用程序的源代码(BSD许可证)可用供您下载和测试。在当前配置中,每次加载新的分子结构时都会启动一个小型基准测试,并将三角形/秒输出到控制台。