To VBO or not to VBO ?

As I mentioned in the last post, a friend lend me an iPod 3G to test its hardware. I already compared CPU for its performance in filling the interleaved vertex array.

Now I’m going to have a look at the GPU, specifically the advantages of using Vertex Buffer Objects on the new PowerVR SGX chip.

On the old iPod 2G I own, I tested GPU performance in this post and also confirmed that there was no performance advantage for using VBO’s.

Now the Analysis of my Engine on the SGX: (First without using VBO’s)

triangles FPS triangles/second
22558 23.3 525k
23554 23.3 548k
27046 22.2 600k
28750 21.9 629k
33423 20.5 685k
37087 14.8 548k
39917 14.8 590k

Whats interesting to note here is the appearent drop of FPS after I cross 35k triangles. I must have hit some bottleneck at this size of the matrix.


Using Vertex Buffer Objects yields a huge performance increase, I am able to draw the same amount of triangles that used 15fps before at 30 fps!
So I doubled the fps for the appropriate map size!

triangles FPS triangles/second
37031 30 1110k

Comparison of 2G vs 3G:

triangles/second no VBO’s VBO
iPod 2G ~440k ~440k
iPod 3G ~600k >1000k

Now this performance increase obviously only happens, because my geometry array is static as long as the player doesn’t move a unit. But even this movement is just a discrete one-time update of the VBO and therefore doesn’t change user-feeling.

Leave a Reply

Fill in your details below or click an icon to log in: Logo

You are commenting using your account. Log Out /  Change )

Google photo

You are commenting using your Google account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s

%d bloggers like this: