小编myr*_*yro的帖子

glDrawElements在iOS上大量使用cpu

硬件:iPad2软件:OpenGL ES 2.0 C++

glDrawElements似乎占用了大约25%的cpu.使CPU 18ms和GPU每帧10ms.

当我不使用索引缓冲区并使用glDrawArrays时,它会加速并且glDrawArrays大麦会显示在探查器上.其他一切都是一样的,glDrawArrays有更多的顶点因为我必须在没有索引缓冲区的情况下复制VBO中的顶点.

至今:

  • 这两种方法之间的状态变化几乎相同
  • 顶点结构是两个浮点数(8个字节).
  • indexbuffer是16bit(尝试32位)
  • 两个缓冲区的GL_SATIC_DRAW
  • 缓冲区在加载后不会改变
  • 相同的VBO和indexbuffer每帧渲染多次,具有不同的偏移和大小
  • 没有opengl错误

所以看起来它正在做某种类型的软件回退.但我无法弄清楚会导致OpenGL回退的原因.

iphone opengl-es ipad ios opengl-es-2.0

5
推荐指数
1
解决办法
773
查看次数

标签 统计

ios ×1

ipad ×1

iphone ×1

opengl-es ×1

opengl-es-2.0 ×1