iPad 3上的CPU绑定渲染

时间:2013-02-07 01:10:34

标签: ios performance opengl-es vertex-buffer

我在iO6 / iPad3上获得了一些令人惊讶的结果渲染大型模型(大约130K顶点)。

以下是背景资料:

  1. 使用glDrawElements绘制的5批中130k顶点,非交错(我知道不好)
  2. Verts是GL_STATIC_DRAW维多利亚州的位置(3个浮点数),正常值(3个字节),彩色(4个字节)。
  3. 在帧开始时使用VAO设置顶点状态。
  4. 在帧的开头调用glClear。
  5. App正在使用GLKViewController来处理GL框架。
  6. 结果,Xcode个人资料视图报告:

    1. 约3 fps。
    2. GPU利用率约为7%。 Tiler为2%,Renderer为5%。
    3. CPU时间为每帧360毫秒,GPU为25. Youch!
    4. 使用仪器进行进一步分析报告称内部GL函数glRunVertexSubmitARM(从glDrawElements调用)占用大部分时间。这里发生了什么?我的输入数据是如此糟糕以至于GL花费时间将每一帧都改成一个漂亮的格式吗?

1 个答案:

答案 0 :(得分:3)

这正是发生的事情。确保所有顶点属性都以4字节边界开始(向法线添加填充字节)。