iPad 2D & 3D slow with GLB v8 beta

Previous topic - Next topic


Been having some fun with the new v8 beta while developing my latest game for the iPad. Howver, I've come across some serious speed issues with the iPad side of things :(

3D slowness

A simple 1500 poly object rotating around all 3 axis, one ambient light, one camera, basically the bear essentials. On the iPhone this runs at 60 fps solid, but change resolution to 1024x768 and install for iPad the framerate drops to 37.

2D slowness

I wouldn't say the 2D side is slow on the iPad but there is an issue when it comes to fullscreen goodness. Using polyvector only there appears to be no way to do 60 fps with a full resolution background and 20+ small sprites.

Using the same methods on the iPhone you are able to shunt around dozens and dozens of sprites (with polyvector) with a fullscreen image no problems.

I've tried splitting the background draw into 2, 4, 8, 16 quads but no drastic increase in speed. I have managed to get full screen with 10 sprites at 60 fps but that's the max limit before the fps drops.

My thoughts are the iPad has to draw a hell of a lot of data compared to the iPhone so for 2D is there anything that can be done to speed up fullscreen background drawing?

My main concern is the 3D side of things though. Has anyone else used the latest v8 beta with the iPad and found speed issues?



I got same problems moving Noid for iPhone to iPad (same code, bigger graphics, but double processor on iPad).

On iPhone got 60 fps constants; on Ipad only 40 fps :S.

Kinda Strange.

King Regards, fjsantos.
Francisco Santos Belmonte founder of Tip Tap Games.
Website: www.tiptapgames.com
Twitter: www.twitter.com/tiptapgames
Facebook: http://dld.bz/dYVd
iPhone News & Sales: www.gamesappetizer.com


Let's hope the OpenGL ES Enhancements to OS4 for iPad will help also.  :bed:

Kitty Hello

iPad really gets slow when you're forced to render to a screen nd rotate tha then.
I think a call to glRotate of the projection matrix is a better idea. I'll post code when I find time.


That'll be great, Kitty, any speed boosting tips & code most appreciated  =D

I also found out tonight that the ipads GPU is the same as the iPhone 3GS which helps to explain a lot of speed issues considering the iPad has to fill 5x the amount of pixels for full screen.

With that I revisited my 3d code, set it for 30 fps and added some nice little time stepping code  :good: so now it runs very well at 30 fps and in busy busy scenes adjusts accordingly to keep things flowing well. I should of done this from the beginning but I expected the iPad to out perform the iPhone 3GS, which it does but I miss calculated the huge difference in pixel real-estate the iPad has to do. 


The iPad has a faster core and a 64 bit data bus for the SGX, it's quite a bit faster than the 3GS, when running raw OpenGL natively, even with the larger screen.

GLB seems to be running a little slow for me too on the iPad I am afraid.




"It is practically impossible to teach good programming style to students that have had prior exposure to BASIC.  As potential programmers, they are mentally mutilated beyond hope of regeneration."
(E. W. Dijkstra)


I might suggest something about the IPad slowness...

I've used GLBasic and now using Objective-C + Cocos2d on our games and in Cocos2D world, trying to have a one piece background image causes slow framerate on IPad as well. It seems this is related with the GPU's fill rate. The solution at there is to break the image into 4 pieces and than draw each of them at the appropriate positions to make the whole image drawn.

Don't know if it'll be helpfull but somebody might give it a try to let us all know? ;)


Don't know if it'll be helpfull but somebody might give it a try to let us all know?

Already tried that (see my 1st post) and found that (via polyvector) splitting it into 256x256 chunks worked quicker than 4 512x384 chunks which worked the best for those using cocos2d iPhone.

I hope there's some tweaking Kitty can come up with to aid in both 2D and 3D side of GLB  :good:


Perhaps problem with the dualcore support ?
Maybe only one core used ?
"Sugar makes the world go 'round. Caffeine makes it spin faster."


Or perhaps rendering needs to be done slightly differently ?


For the 2D, are you using only one tile texture file for all tiles?
Then also only using one initial STARTPOLY and one final ENDPOLY, and using POLYNEWSTRIP for each new tile?
This should get your draw calls down to one for the map, about as fast as you can get.
Maybe tighten up your map drawing routine/loop.

Just curious, do textures files of size power-of-two versus not power-of-two make any speed difference?  (ie: 512x512 versus 500x500)

And for the 3D, if you are using X_CULLMODE 0 (for 'both') try using '1' for front, or '-1' for back.
This may save some processing.

Just some random thoughts.

But still doesn't explain why the iPad is slower.
My current project (WIP) :: TwistedMaze <<  [Updated: 2015-11-25]


i have developed my game on/for iPod Touch 2G and it runs with >60 FPS. Last weekend i bought the new generation (4.) of the iPod Touch. I tried it with the same code and the same Resolution 480x320  (btw 960x640 isn't supported by GLBasic so far ;)) and i only got 18-20 FPS. there seems to be a problem with the new hardware.


One of my games runs at 30-50fps on iPod Touch 3G (iOS 4.2) but 60fps on 4G (iOS4.1) and only 20fps on iPad (iOS4.2) but another game designed differently run 60fps on all.  :whistle:


Did you change something in the XCode-Options? May i have to change something there? i thought that my game would speed up on the new hardware (iOS4.1)


Quote from: matchy on 2010-Sep-28
One of my games runs at 30-50fps on iPod Touch 3G (iOS 4.2) but 60fps on 4G (iOS4.1) and only 20fps on iPad (iOS4.2) but another game designed differently run 60fps on all.  :whistle:
So...the other game that was designed differently...you going to give away your secret?  :)