Hi Piyush,for point 3 - how are you measuring this? Because the Mali GPU uses a deferred architecture, it is sometimes not unusual to see a seemlingly large amount of time in eglSwapBuffers(). The way the deferred architecture works, the driver collects all of the draw commands during the frame, but just adds them to a queue - it does not do actual rendering at the time of the glDraw*() call like an immediate mode renderer would. Instead, when the end of the frame is reached as indicated by eglSwapBuffers(), the driver will then work out the required drawing operations and execute them.Could this be what you are seeing?HTH, Pete