设备:iPad2的 Sofware:OpenGL ES 2.0的C++glDrawElements iOS上
glDrawElements似乎采取了CPU的约25%。使CPU 18ms和GPU每帧10ms。
当我不使用索引缓冲区并使用glDrawArrays时,它会加速并在探查器上显示glDrawArrays大麦。其他一切都是一样的,glDrawArrays有更多的vert,因为我必须在没有索引缓冲区的情况下复制VBO中的vert。
到目前为止:
- 几乎相同的量的两种方法之间的状态变化
- 顶点结构是两个浮体(8个字节)。
- indexbuffer是16bit(32位尝试以及)
- GL_SATIC_DRAW为两个缓冲器
- 缓冲器负载
- 相同VBO后不改变和indexbuffer渲染每个帧中多次,具有不同的偏移量和大小
- 没有opengl错误
所以它看起来像是在做某种软件回退。但我无法弄清楚会导致OpenGL回退的原因。
谢谢!我想我会用抽签的频率做一些测试。我也会用我的个人资料仔细检查苹果,看看有没有看到司机正在做的事。 – myro 2014-10-20 12:55:05