iPhone 3G S is Hot!
First, lets see what is inside new iPhone 3G S. Number of technical sites wrote reviews already (mostly based on well educated guess since real hardware is out of reach for most), so I will be brief:
- New and shiny ARM Cortex-A8 as main CPU running at 600MHz. New chip maintains 100% backwards compatibility with older ARM1176 chips powering original iPhone family — so no worries here.
- New PowerVR SGX chip serving as GPU. SGX family is a huge leap over MBX Lite which we saw in original iPhone. It is faster, has pixel and vertex shaders and supports a bunch of features you would normally get only on your desktop GPUs. It comes with OpenGL ES 1.1 and OpenGL ES 2.0 support too.
- New NEON™ SIMD unit which is a fantastic addition to help in number crunching operations such as mesh skinning.
- Double the L1 cache size and introduced L2 cache — this means speed.
All this is great great of course, but how could we help to reduce the complexity while supporting full spectrum of old and new devices? Thanks to the desktop origins of Unity engine, we have solved part of this problem even before iPhone was introduced. In order to harness wild variety of Macs and PCs with different GPUs Unity implemented mechanisms to determine capabilities of the graphics device and fallback to less demanding shaders at run-time.
You can learn more about SubShaders and Fallbacks here:
Different graphic cards have different capabilities. This raises an eternal issue for game developers; you want your game to look great on the latest hardware, but don’t want it to be available only to those 3% of the population. This is where subshaders come in. Create one subshader that has all the fancy graphics effects you can dream of, then add more subshaders for older cards. These subshaders may implement the effect you want in a slower way, or they may choose not to implement some details
I’m really looking forward for Unity iPhone 1.1 being released so we can concentrate on adding OpenGL ES 2.0 support to Unity. Meanwhile you will be able to enjoy 8 texture combiners in a single pass available on the new iPhone 3G S devices.
We wrote a number of hand optimized assembly routines to speed up calculations on VFP coprocessor for Unity iPhone 1.1. For example skinning is now several times faster and significantly outperforms GPU! We’re going to continue this trend by harnessing NEON™ capabilities for iPhone 3G S.
One more thing I want to share with you — we have not seen the actual iPhone 3G S device yet. For better or worse, Apple have been really secretive. Right now we’re looking forward to get the devices from the first batch of publicly available ones. That should allow us to implement and test new features ASAP. Meanwhile we’re working close with Apple to verify existent content works fine on iPhone 3G S.