glReadPixels is slow


I am using opengl es 2.0/1.0 with SGX540 and facing that glReadPixels is slow. Can we know optimized version of glReadPixels?

Can we use SGX for improving glReadPixels function for copying the data from in the function SpanPackARGB8888toABGR8888 (which is actually called by glReadPixels)?

Also can change the framebuffer’s memory area to be cache area only in glReadPixels() processing?