★ TouchArcade needs your help. Click here to support us on Patreon.

iPad: OpenGL ES 1 or 2?

02-04-2010, 05:02 PM
#1
Joined: Feb 2010
Posts: 4
iPad: OpenGL ES 1 or 2?

I am looking at creating an iPad-only turn-based game. I generally prefer the workflow using shaders (not complicated, just "tweaked" fixed function), but I haven't explored the relative performance differences on the iPhone hardware as I don't own a 3GS, only a 3G.

From a performance point of view, are there any major differences between the fixed function pipeline and the shader pipeline (using simple shaders similar to fixed function) on the 3GS/Touch? Would I be making a mistake targeting OpenGl ES 2? The models I use are generally very simple (100 triangles top), rarely multi textured.

I have done work using OpenGL ES 1.1 (on the iPhone) and OpenGL 2.1 (desktop).

And as the first post to touch arcade, hi! Long timer lurker, first time poster.
02-04-2010, 06:22 PM
#2
Joined: Jan 2010
Posts: 174
The hardware on the iPad is different, as far as I can tell there is only speculation about what is on there.

With the work we did with GL ES for NBA Live, I'd say you don't have anything to worry about. The performance is fine, especially since you can omit stages in your shader that the fixed function pipeline has. In addition, the FFP on the 3GS is emulated through shaders, so it definitely won't be worse, unless you write really inefficient shaders

If that is all you are targeting, then shaders is the way to go.
02-09-2010, 04:38 PM
#3
Joined: Feb 2010
Posts: 4
Shaders it is then - thanks for the help

It does make sense that the ES 1.1 pipeline would be implemented using shaders on 2.0 class hardware, which does remove quite a bit of concern.

Are there any changes to the efficiency of draw calls on the 3GS class hardware? The 3G has a definite upper bound.
02-09-2010, 06:28 PM
#4
Joined: Jan 2010
Posts: 174
We haven't done specific testing or benchmarks, but the same rule holds (as with any hardware), the fewer calls/state changes, the better. No matter what you're drawing, if you can draw it with fewer calls, it will be faster

There was, however, a HUGE difference in performance with buffer objects on the 3GS versus the first gen. I don't remember all the details exactly, but I'm pretty sure it worked best when you drew everything from one buffer object and then everything from the other and to only use dynamic VBOs when you absolutely have to. The performance boost was significant once they were working properly.