Apple's documentation here doesn't provide specifics, unfortunately. Anyone know of a good list of which iOS devices and which versions of iOS support which version of Open GL ES?
All iDevices can run OpenGL ES 1.0.
OpenGL ES 2.0 is support on both iPad versions, the iPhone 3GS or later, and iPod Touch 3rd generation and later.
As far as iOS versions go, ES 2.0 support was added to iOS 3.x and higher, but only on devices that support it of course.
Related
I'm working on a cross platform renderer for PC (Windows, Linux, Mac) and iOS. The iOS part is currently built around OpenGL ES 2.0 and I wanted to upgrade to ES 3.0. So I replaced the following line (that works)
context = [[EAGLContext alloc] initWithAPI:kEAGLRenderingAPIOpenGLES2];
with this line:
context = [[EAGLContext alloc] initWithAPI:kEAGLRenderingAPIOpenGLES3];
... and I included OpenGLES/ES3/gl.h and OpenGLES/ES3/glext.h.
In the simulator this works perfectly fine but running on the actual iPad it doesn’t work anymore and the context is nil.
I really don’t know what I’m missing here since the iPad is running the newest version of iOS (iOS 8.3) and shouldn't have problems with ES 3.0.
I don’t get any errors and I can’t really debug it (“Step into” doesn’t seem to work here).
The features that OpenGL ES 3 adds over OpenGL ES 2 are hardware dependent, so you can create an ES3 context only on hardware that supports it. If you get back nil when creating a context, you need to fall back to rendering with OpenGL ES 2.
The iOS hardware that supports ES3 is anything with an A7 or better GPU. That's iPad Air, iPad Air 2, iPad mini 2 & 3, iPhone 5s, 6, & 6 plus... and presumably anything that comes later.
Note that the GPU requirement for ES3 is the same as that for Metal, so if you're going to do multiple renderers with a fallback path anyway you might want to just go all-out to get the best possible performance for those devices.
Note also that many of the features that are part of the core OpenGL ES specification in ES3 are still available in iOS as extensions under ES2. So you can stick to ES2 and support all devices if you're just looking for, say, instancing.
I checked this wiki and got to know that from the 3rd-generation iOS device (iPod touch 3 and iPhone 3GS I guess), the multitasking was supported.
So that means all the iOS device nowadays are multitasking supporting since the deployment target is 4.3. And the devices running that version of iOS are newer than "the 3rd-generation".
So no need to check [UIDevice currentDevice].multitaskingSupported , am I right?
You are correct. The last iPhone that didn't support multitasking was the iPhone 3G.
And since new apps these days shouldn't support anything older than iOS 7 (maybe nut rarely, iOS 6), there is no reason to check for multitasking.
And Apple only accepts apps that support iOS 4.3 or later. Any device that didn't support multitasking could never be updated to 4.3.
Any device a modern app will be running on these days will support multitasking.
Will Metal work on non A7 devices? (for example iPhone 5 or iPad Mini (not retina)). If not, is any way to create application for Metal supported devices only?
It is for A7 or greater. The WWDC videos say "Designed for A7" and they kept emphasizing that throughout the presentations.
Based on prior experience with frameworks I believe it would actually be based on iOS version and not processor, but Metal could be an exception. Apple does say "Metal provides extremely low-overhead access to the A7 GPU" in documentation making me believe it only works with A7.
Problem is solved. There is metal capability in device capabilities (in plist).
It's based on processor: it needs 64-bit gpu. I set my builds to arm64.
Metal is apple's implementation of OpenGL 3 supposedly without all of the "crud from 20 years of software dev" so the video says.
We developing several apps/games on iOS platform. We need to have minimal support of opengles-2.
We have to configure at info.plist, Required Device Capabilities => opengles-2 => YES.
Now within this config, will iPod Touch 3G device be capable to install our game?
In the Apple Developer Library it says that the third generation of iPod Touch supports OpenGL ES 2.0.
See: http://developer.apple.com/library/ios/#documentation/3DDrawing/Conceptual/OpenGLES_ProgrammingGuide/OpenGLESPlatforms/OpenGLESPlatforms.html
Just saw wiki article "ios version history", which says that ios 5 is compatible with iPhone 3GS and greater devices. Does iPhone 3GS, iPad 1 and 2 really support storyboards and new components of iOS 5? or do they require a software update for being compatible with iOS 5?
ios 5 is compatible with iPhone 3GS and greater devices
Means that users can update these devices to run iOS 5. They have to do the update for you to be able to use story board and other new features. But if they are still running iOS 4 or older versions, you can't.
Don't mix operating system with hardware. iPhone 3GS supports storyboard ONLY if it's running iOS5, otherwise not.
There can be some hardware related differences even if all devices use same iOS version, for example iPad without SIM card cannot make phone calls. Storyboard is not such a thing.