We have developed an engine for a device using PowerVR SGX 535 chipset using OpenGL ES 2.0 At this point in time the engine performs satisfactorily, however we are working towards various optimisations. Being a tile based renderer, I heard on an Apple video that you should sort and render your renderables based on their position relative to screen tiles. Can anyone tell me whether this is indeed a important optimisation when developing for a tile based renderer? If so, how much of a performance gain could/would we achieve from such an optimisation?
This is an optimisation that can see advantages in extreme cases, but generally the hassle of sorting draw calls in this way is unjustified. An example of where this could be a benefit is for a particle effect that covers the entire screen. By ordering the render so particles near each other are drawn one after another, the hardware can benefit from data related to the particles being nearby in memory. Even in this case, the performance gain is likely to be minor.
Do you have a link to the Apple video that you can post here? It would be interesting to understand the use cases they’ve suggested for this optimisation