presentRenderBuffer: blocking

  • Currently, driving game loop using CADisplaylink
  • Takes 1-2ms to process frame, and call presentRenderBuffer:
  • presentRenderBuffer:, for the most part, completes in under 2-3ms ("fast mode")
  • Seeminly randomly, however, something switches in the graphics system, and presentRenderBuffer: begins taking ~16ms ("slow mode")
  • Once entering this "slow mode", the graphics system does not seem to be able to recover until the system stops issuing OpenGL calls for awhile (ex. once app enters inactive/background)


Does anyone know what's going on here? It almost seems like presentRenderBuffer: is blocking due to vsync in "slow mode". This causes problems when on the main thread, since UIKit starts not processing/sending along UIEvents.


  • iPhone 6
  • OpenGLES 2.0
  • Very light graphics load

Replies

I would run OpenGL ES Analysis Template in instruments. Perhaps, it will show activity.