Why is my iPad game so slow?

I already went down the path of trying indexed triangle lists. It was probably close to a year ago, so I don't remember specifics, but I settled on strips over lists, and I'm pretty sure it was the right thing to do. Apple's own doc (the one I just referred you to) seems to favor strips over lists, although they don't come right out and say "don't use lists". (See page 62).

I tried to read the whole thread, so forgive me if this has been asked.

But, are you running in the simulator or the device?

When beginning iPad development I had to run only in the simulator because the iPad hadn't been released yet. My simple OpenGL ES 2.0 game ( http://web.me.com/t.c.micka/Main/Indie_G...re01_1.jpg ) ran at about 10-12 fps in the simulator but jumped to 45-50 on the device.

I've heard the simulator uses software rasterization, but that could have changed in the latest SDK.

Since you're not maxing out the CPU it's unlikely that it's hitting software emulation in some way. The other thing that I'd look at is reducing your texture usage to only 2 for the sake of testing - you may find that's as fast as 1, I don't recall if the iPad GPU is one of the dual-texel ones.

Another thing to look at is if/how you use streams... Certainly under directx with older desktop hardware (very close to these current mobile gpu's) there used to be significant performance penalties associated with using multiple streams from seperate memory locations, rather than one stream of appropriately configured vertices.