Metal Links

One of the many announcements from Apple’s last week was Metal, a new low-level framework for creating GPU-accelerated advanced 3D graphics while reducing CPU overhead. In short, Metal is a technology that will grant game developers bare-to-the-metal access to squeeze maximum performance out of the A7 processor for better graphics.

From Apple’s description of Metal:

With extremely low-overhead access to the A7 GPU, Metal enables incredibly high performance for sophisticated graphics rendering and computational tasks. Metal eliminates many performance bottlenecks that are found in traditional graphics APIs. It’s specifically designed to exploit modern architectural considerations, such as multiprocessing and shared memory, to make it easy to parallelize the creation of GPU commands. Metal offers a streamlined API, a unified graphics and compute shading language, and Xcode-based tools.

In the Metal Programming Guide, here’s how the company sums up the framework:

Metal provides a single, unified programming interface and language for both graphics and data-parallel computation workloads. Metal enables you to integrate graphics and computation tasks much more efficiently without the need to use separate APIs and shader languages.

Over at CNET, Nick Statt notes that Apple’s framework aims to replace an industry standard when it comes to game development for iOS:

With Metal, Apple hopes to replace the industry-standard 3D-graphics API (application programming interface), called OpenGL, with its own development API that sits between the game software and Apple’s A7 mobile chip. The A7 present in its iPhone 5S handset and iPad Air and latest iPad Mini tablets brought, at the time of its unveiling last fall, an unprecedented 64-bit architecture to the world of mobile games.

For this reason, Nat Brown argues that, by integrating the software and hardware at a deeper level, Apple may offer a “lock-in” for graphics on iOS that can’t be replicated as easily by Google on Android:

The most realistic rendering games will look great on iOS until Google does deeper/better driver work on Android. As it turns out, that is crazy hard due to the diversity and fragmentation of Android hardware. In this respect, if Metal is indeed a 10x speed improvement or a 10x detail improvement, it may very well be a masterful move – non-iOS games from the same engines will just look lousy on Android. Wow.

Alex St. John offers thoughts on Apple’s Metal and their move away from OpenGL:

The problem is that GPU’s have become so fast and powerful that the CPU is holding back their performance in traditional 3D graphics. The need to break up the 3D pipeline and interact with it more is torturing the first generation 3D API’s because they were never meant to work that way. Their performance potential came from a very narrow definition of how 3D worked and massive linear pipelining to enable efficient hardware scalability.

Also recommended, more technical overviews and explanations from his blog:

Apple’s Metal API, first impressions

Direct3D, OpenGL, Metal, Full Circle

Writing at AnandTech, Ryan Smith has an excellent technical overview of Metal, with a note on Apple’s ecosystem advantage:

Of the other low-level APIs we’ve seen so far – AMD’s Mantle and Microsoft’s DirectX 12 – the former is an API established by a hardware vendor who has to ride on top of other companies CPUs and OSes, and the latter is an OS vendor who has to ride on top of third party CPUs and GPUs. Apple on the other hand is in the enviable position of being as close as anyone can be to offering a fully vertical ecosystem. Apple designs their own CPUs, configures their own SoCs, and writes their own OS. The only portion of the chain that Apple doesn’t control is the GPU, and even then the company has exclusively used Imagination Technologies’ PowerVR GPUs for the last 7 years with no signs of this changing. So for all practical purposes Apple has a closed ecosystem that they control from top to bottom, and can design for accordingly.

VentureBeat’s Dean Takahashi interviewed Epic Games’ Tim Sweeney – who showed a demo of the company’s “Zen Garden” game for iOS 8 on stage – about Metal’s impact on mobile gaming and the future of Unreal Engine. Sweeney confirmed that a new version of Unreal Engine 4 with Metal support will be available after the release of iOS 8 later this year.

There’s just a huge amount of overhead introduced by OpenGL into the graphics pipeline. It has a very high-level view of the scene. It doesn’t let developers to the low-level management of resources that they need to achieve efficiency. Metal achieves about a tenfold decrease in driver overhead. It’s an order of magnitude improvement.

Last week, Apple announced that EA, Epic Games, Crytek, and Unity had been testing the Metal framework and API, which will result in “console quality” games for iOS devices according to Craig Federighi.

For more information on Metal, you can check out Apple’s Metal Programming Guide and announcement during the WWDC 2014 keynote (around 1:37:13 here).