Could the iPhone Trip While Leaping Forward?
Page 1 of 1
As the roar settles from Monday's iPhone 3G S announcement, the skeptical are looking closer at all the details surrounding Apple's latest moves, and they are finding some potentially sticky issues.
One of which, as noted by the enthusiast blog Engadget, is an incompatibility in the graphics libraries in the iPhones. The iPhone 3G uses the OpenGL ES 1.1 library while the 3G S uses the OpenGL ES 2.0, and the two are not compatible. In fact, they are on separate development tracks.
OpenGL is a graphics library first developed in the 1990s by Silicon Graphics, which was known for its graphically-rich Unix workstations. On Windows, OpenGL has been supplanted by Microsoft's DirectX multimedia library, but OpenGL remains popular in many other platforms.
SGI would later turn over OpenGL to a standards body to maintain and port to other platforms. These days, it is maintained by The Khronos Group, a consortium that maintains several open standards.
OpenGL ES 2.0 is a superset of 1.1. Khronos made a deliberate decision not to maintain backwards compatibility with 1.1 when moving to 2.0 so it could make some big jumps in performance. One of the biggest features is the addition of pixel shaders, which gives considerable flexibility in making 3D content.
This means any application, most likely a game, that uses those shaders won't run at all on a device with just the 1.1 library because they are calling functions that don't exist. So those apps written for the iPhone 3G S won't run on the 3G, thus possibly splintering the market.
While Apple's mum, there are workarounds
Of course, there are ways around it. The first one, notes Khronos spokesman Jonathan Hirshon, is for Apple (NASDAQ: AAPL) to include the 1.1 driver along with the 2.0 driver in the iPhone 3G S. Thus far, Apple has not said it would. Apple did not answer a query from InternetNews.com.
"It would only be an issue if Apple chose not to include that older driver and if a developer specifically made a call to that shader that was specific to 2.0," Hirshon told InternetNews.com.
Putting both 1.1 and 2.0 OpenGL ES side-by-side in the phone wouldn't be that hard, it would just take a little more memory, notes Jon Peddie, president of The Jon Peddie Group, and Apple has doubled the amount of RAM for applications in the iPhone 3G S, from 128MB in the previous phones to 256MB.
"But these developers aren't stupid. They know there's a much bigger installed base of 1.1 devices than 2.0 devices. One would think if they made a call to a 2.0 and it wasn't there, they would have a fallback to go back to a 1.1 so it would still run," Hirshon added.
That's what Tapulous has done for some of its games. The Palo Alto, Calif. company makes the popular Tap Tap Revenge game for iPhone and iPod, and because there are differences in the hardware, plus different levels of performance since people use their devices differently, the company does not assume everyone has the same experience.
"We may throttle that experience depending on the device," CEO Bart Decram explained. "Other things in the device can impact the performance of the device and might slow it. We set a baseline of 30 frames per second and if we detect that is lagging, we might throttle things like graphic effects to maintain the experience."
So the game might be reengineered to detect which version of OpenGL ES is running. If it's the 2.0 version, it would use the effects of that library. If not, then the game would leave out that eye candy, he explained.
In the end, it probably won't be a big problem for Apple. Right now it has a bigger problem with user anger over the iPhone upgrade policy.
Decram isn't worried. "As platforms evolve, I'm excited to welcome new devices because it means more users come onto the platform," he said. "At the end of the day, it's a good problem to have because it's a sign the platform is evolving and growing."
Peddie doesn't think it will be a problem, either, because the iPhone is still relatively new to the market and there are not a great many OpenGL ES-based apps. "We have version shifts all the time. I don't see it as being a major issue, and certainly not a major issue for game developers," he said.