A newer, more capable graphics processor in the Apple iPhone 3G S will likely prompt the App Store to segment into one version for high-performance apps, such as complex games, that will only run on the newer handset, and another version for software that still supports previous models like the iPhone 3G. The component in question is the PowerVR SGX which, unlike the iPhone 3G’s PowerVR MBX, supports Open GL ES 2.0. That’s good news for developers looking to push the boundaries of current mobile device graphics, as 2.0 supports more refined shading and textures; unfortunately, apps coded for 2.0 won’t necessarily be compatible with Open GL ES 1.1.
OpenGL ES is the cut-down version of OpenGL, offering 3D rendering APIs, and in its 1.1 format is already supported by the iPhone and iPhone 3G. ES 1.1 apps will run on the new iPhone 3G S, as 2.0 is backward compatible, but ES 2.0 apps will simply refuse to run on the older phones. One workaround is ES 2.0 emulating ES 1.1′s fixed-function graphics pipeline using its new shader technology, but that will require developers to specifically code a dual-version app.
Apple have already quietly confirmed that the App Store will soon be made up of software titles that don’t necessarily run on both existing iPhones, seemingly presuming that many coders won’t bother to produce a dual-version app with the necessary shader emulation. In their iPhone SDK documentation, they suggest developers consider whether they’re more interested in mass appeal or the advanced of the OpenGL ES platforms:
“When designing your OpenGL ES application, the first question you must answer is whether your application will support OpenGL ES 1.1, OpenGL ES 2.0, or both… Your application should target OpenGL ES 1.1 if you want to support all iPhones and iPod touches.”