Like most embedded GPUs Mali only starts rendering when you call eglSwapBuffers - it's more power efficient to buffer things up and submit it all to the hardware in one big batch, so what you are actually doing is forcing a big gap between your GL commands and the hardware starting.The following is far more commonwhile( true ) Do game behavior update Call glClear ( COLOR | DEPTH | STENCIL ) Do all GL commands according to the game behavior update Call eglSwapBuffers Remember eglSwapBuffers is asynchronous and doesn't actually swap anything, it just tells the driver "I'm done with this window surface". The actual window system update happens "later" under driver control.
while( true ) Do game behavior update Call glClear ( COLOR | DEPTH | STENCIL ) Do all GL commands according to the game behavior update Call eglSwapBuffers