Thursday, October 7, 2010

iPhone 4 sucks, in a developers perspective

And why is this? Let me explain. As you know we are currently developing a game for iOS here at VisualDreams. And for sure we thought that our game would have the best performance on iPhone 4. But thats not the case. iPhone 3gs runs with about 20 more frames per second, 60 fps against about 40 fps on the iPhone 4.

All this because iPhone 4 has a higher screen resolution. The problem is that iPhone 3gs and iPhone 4 have the same GPU, and this means that when rendering 2D textures, iPhone 4 has to render 4 times as many pixels to the screen and thus have a much higher fillrate.

So now I'm working hard to optimize the rendering on iPhone 4. The thing is that there isnt that much to do when you are fillrate bound except from optimizing all the textures. As for now we dont use sprite atlases, maybe we could gain a few fps by lowering number of drawcalls.

In a worse case scenario we would have to go with the same resolution as iPhone 3gs. But hopefully this problem will be solved in a near future. I will let you know how it goes..

/Kristofer, Coder


  1. - Use PVR textures
    - Use VBO's
    - Use texture atlases
    - Draw in batches

  2. We draw everything as batches. And we are experimenting with pvr. Pvr is probably our best card on increasing framerate for the iphone 4. Spriteatlases Will also be implemented but the question is if that will do any for performance, when its clearly à fillrate problem?

  3. Hi,

    If you know that you are 100% fillrate bound it doesn't help to reduce draw calls etc.
    Do you have any overdraw? In that case you could draw front to back and use z-buffer depth culling to reduce it.