Federighi also announced that Metal on OS X provides up to 10x faster draw call performance.
Graphics processors are essentially giant "state machines". Picture a huge board of 1970s-style switches and dials, each labelled with a particular feature. Not all combinations of features are supported by the machine, but you're free to flip the switches anyway. The combination of switches that you've flipped and dials you've tweaked determines the "state of the system".
The job of the graphics programmer is to flip the right switches, turn the dials just so, and then feed the processor with geometry. This is the sequence that Apple is referring to when it mentions how many more "draw calls" per frame Metal is capable of.
With OpenGL, the current standard for creating graphics, programmers would flip each of these switches and tweak each of these dials individually. Each time they did so, the graphics processor would have to check that the state of the giant machine was still valid.
By using Metal, a programmer can instead define the state they need the machine to be in and then simply apply that state. Rather than tweaking each dial, flipping each switch, and jumping through the correct hoops, the process becomes more like checking off your sushi order from a menu.
From a user's perspective, none of these particular details matter. The ramifications, however, will definitely be noticed.
The magic of Metal
Metal is designed around the way that GPUs and CPUs work today, especially (and specifically) when it comes to Apple's A7. The A7 combines the GPU and CPU into one chip, and they also share a single memory pool.
Much of OpenGL is predicated on the notion that the GPU is (or could be) sitting on a separate card. By recognising the fact that the GPU and CPU can access the same memory, Metal unlocks a lot of power. Managing resources needed for drawing becomes vastly easier and faster. Many effects, such as reflections, require drawing the scene into an image and then using that image as an input in the final scene. Metal makes that far easier.
Modern GPUs and CPUs both have multiple cores - they can walk, talk, chew gum, and juggle all at the same time - and Metal provides a way to unlock all of that power by allowing for multiprocessing of graphics commands. OpenGL, by comparison, was always single-threaded and so couldn't achieve a similarly adept usage of the actual hardware.
It isn't just better graphics performance that Metal unlocks. It also supports a model of what's called "general purpose graphics unit computing" - that is, using the GPU to run software that's not necessarily graphics-related. OpenCL, which may be familiar to Mac users, is the open standard for writing software that executes on GPUs. Metal brings this kind of general purpose graphics programming ability to iOS. As the name suggests, OpenCL is very similar to OpenGL and so the design of Metal offers benefits for OpenCL similar to the ones it does for OpenGL. The baked-in idea that memory is shared between processors is a big win here too.
Sign up for MIS Asia eNewsletters.