Recommendations for optimizing the following scenario

  • One frame has several dozen drawcalls.
  • Drawcalls are grouped by blending, stencil etc. state
  • Some uniforms change after every drawcall (glDrawArrays)
  • Program is only changed once per frame
  • Vertex buffer changes after every drawcall, but the same vertex buffer is used every n draw calls.

Attachment is a command dump of one frame.

It seems we have a large cpu overhead in a function called WritePDSVertexShaderProgramInternal. I suspect this has to do with vertex buffer changes.

Do you have tips on optimizing this? I have GLES 3.1, eventually I will upgrade to 3.2.glloggingcommandonly.txt (754.8 KB)


can you please provide us with a PVRTrace recording so we can profile this application against our drivers?

thank you,