Is 440k triangles/second good?

Member
Posts: 95
Joined: 2009.09
Post: #1
Hey there,

now that I tested VBO's and realized I have a second generation iPod, I wonder whether the 440000 trangles/second that I consistently get with my 3D engine using OpenGL ES is a good or bad value.
I mean I did turn on 4-sample multisampling and gl_Normalize which both means more computation and I use texCoords, normals and colors.

What do you guys think?

The full report with the results table can be found here.
Quote this message in a reply
Sage
Posts: 1,482
Joined: 2002.09
Post: #2
The non-3GS class hardware supports multisampling? I thought that was a 3GS and up feature? To answer your question, that sounds about what I've topped out at with triangle strips. About 6-7k triangles per frame at 60fps.

Scott Lembcke - Howling Moon Software
Author of Chipmunk Physics - A fast and simple rigid body physics library in C.
Quote this message in a reply
Member
Posts: 95
Joined: 2009.09
Post: #3
(Jul 23, 2010 07:08 AM)Skorche Wrote:  The non-3GS class hardware supports multisampling? I thought that was a 3GS and up feature? To answer your question, that sounds about what I've topped out at with triangle strips. About 6-7k triangles per frame at 60fps.

Yes it sure does, they even said it in the WWDC 415 talk. It's just that the MBX is not super-efficient doing this, using multisampling costs me about 5% performance.
On the SGX it might be essentially cost-less.
Though you do need iOS4 installed on the device.
Quote this message in a reply
Member
Posts: 54
Joined: 2010.10
Post: #4
We're mananging about 8000 triangles at 60 on iPad and have been battling to get that number up for a few weeks now. That's with a very simple shader and a tiny texture look up. We seem to be able to shove a shitload more than that before dropping below 40 though, so I'm thinking there are some fixed costs we've not found yet.

So it's good in that you're in the right ballpark, but bad in a sense that this chip can go a lot faster than this in theory.

Paul Johnson
Great Little War Game
Quote this message in a reply
Member
Posts: 260
Joined: 2005.05
Post: #5
Triangles/second is one measure, but how about fill rate, fragments per second? Have you measured that? What can the iPhone perform in that respect?
Quote this message in a reply
Member
Posts: 54
Joined: 2010.10
Post: #6
My biz partner has been up to all that stuff, but in this case I strongly suspect that fill rate is more important than vertex throughput, though obviously nothing is limitless.

When we get a bit further down our current investigations, I'll get some benchmarking together and post the results.

Paul Johnson
Great Little War Game
Quote this message in a reply
Member
Posts: 440
Joined: 2002.09
Post: #7
(Oct 9, 2010 01:46 AM)Applewood Wrote:  I strongly suspect that fill rate is more important than vertex throughput...

On iOS this is definitely the case - it's easy to hit fill rate limits even with simple 2D stuff. A few big alpha blends and yer done.
Quote this message in a reply
Member
Posts: 260
Joined: 2005.05
Post: #8
(Oct 9, 2010 01:46 AM)Applewood Wrote:  My biz partner has been up to all that stuff, but in this case I strongly suspect that fill rate is more important than vertex throughput, though obviously nothing is limitless.
Exactly my point. Fragment processing is generally considered the most important bottleneck.
Quote this message in a reply
Member
Posts: 142
Joined: 2002.11
Post: #9
(Jul 23, 2010 03:56 AM)Bersaelor Wrote:  Hey there,

now that I tested VBO's and realized I have a second generation iPod, I wonder whether the 440000 trangles/second that I consistently get with my 3D engine using OpenGL ES is a good or bad value.
I mean I did turn on 4-sample multisampling and gl_Normalize which both means more computation and I use texCoords, normals and colors.

What do you guys think?

The full report with the results table can be found here.

I would say it's good. On my iPhone 4 I can draw about 1.2 million triangles / second using a relatively short vertex shader, moderate pixel shader (normal mapping), and 4x MSAA using the VBO route. I would reckon that the 2nd generation iPod should yield lower results since it has a PowerVR MBX instead of SGX. As others have stated, the number of pixels processed is much more of an issue. The best thing you can do to increase pixel throughput is to use pvrtc compressed textures and enable mip mapping (though make sure you don't blend between mip map levels).

The only way to improve vertex performance if you are already using index triangle lists is to try to optimize triangle ordering for the best locality. Imagination technologies (creator of the PowerVR chip) recommends that you use indexed triangle lists, but order the triangles as they would be if they were processed as triangle strips. Strangely Apple says to use triangle strips instead of indexed triangle lists. I'm going to trust PowerVR on this one.

Be sure to follow best practices as outlined by imagination technologies:
http://www.imgtec.com/factsheets/SDK/POW...ternal.pdf
Quote this message in a reply
Post Reply