views:

669

answers:

1

As a result of the search for an answer of this question, I ran into a rather uncomfortable finding.

It seems that rendering only glClearColor() at 60 fps pushes the iPhone at 27% render utilization.

That means that doing hardly anything at all - only refreshing the screen - makes the iPhone use more than a quarter of its render capacity.

Is this to be expected?

The POWERVR should hit around 270 megapixels/second at least, according to the documentation. As unwind correctly stated below, 480×320 at 60 fps equals about 9.2 megapixels/second, putting the total performance at around 40 megapixels/second, wich is suspicious.

+1  A: 

This just means that you should design your rendering to fill all pixels every frame with actual content, so you don't need to clear the framebuffer at all. That is, at least, the classic "solution" to the bottleneck of clearing: don't do it.

In typical first-person engines, for instance, this is achieved by rendering a skybox and a ground "plane", that always cover the entire viewport.

I haven't read up on the details of the iPhone's rendering subsystem, but it does seem to indicate a very low fill-rate. 480×320 at 60 fps equals about 9.2 megapixels/second, putting the total performance at around 40. Sounds suspicious.

unwind
It does. I'm still wondering if that's to be expected. Nevertheless, even when rendering every frame with actual content, this behaviour means dissapointing performance.
Kriem
My conclusion is: yes, it's to be expected. So, the iPhone has a low fill rate.
Kriem
unwind
I don't buy this answer. I get an extra 5fps clearing the buffer and then drawing my opaque 480x320 bg texture.
Rhythmic Fistman