When it comes to graphic-intensive game development there is one component of a device that developers wish they had direct communication to the hardware. Developers want full control by telling the GPU exactly what they want and how they want it by ways of bypassing large chunks of CPU-intensive code. OpenGL has forever (or so it has seemed) been a staple when it comes to being the link between development and hardware communication and unfortunately, with it being a high-level API, the full power of most processors on mobile devices has never truly been discovered.
Apple’s new Metal framework looks to change this issue with the release of iOS 8 and their new programming language in Swift. By today’s standards, GPUs are tremendously fast and are only held back by underdeveloped CPU technology with bloated ancient 3D APIs. Metal allows developers to get near-direct access to the A7 processor built into iPhones and iPads, therefore, insulating Apple from the competition.
The antiquity of 3D gaming has been all about hardware abstraction. In other words, high-level APIs such as OpenGL ES have overhead that is not worth the benefits because the API contains a set of routines that emulate platform-specific details instead of giving direct access, which, in turn, opens the door to accessing the hardware. According to Alex St. John, former Microsoft technology evangelist, “the intimate link between light physics and other physics is largely broken in modern games because the graphics pipeline largely abstracts the visual elements of physics simulation from other aspects of physics forcing developers to awkwardly attempt to recouple them in the game by manually stitching them together.” The more power that developers have with the hardware, along with cloud-based gaming, the more realism can be obtained.
The real question developers have to ask themselves now is:
Metal’s shader language, which is made to develop shaders that will eventually be precompiled, is based on C++11, a newer version of C++. This shader language consequently contains features not developed in GLSL ES, which could be bad news for OpenGL ES. Why would Apple want to separate themselves from something that has successfully powered the in-between for development and hardware in mobile devices for years? Technical advancement and the want for more efficiency.
Metal promises draw call rates of up to 10x faster (up to 4000 draw calls per frame) by expunging the layer of overhead between software and hardware. This will be a result of gaining access to Apple’s A7 processor on a more “bare-to-the-metal” basis and giving developers room to enter the compute component of the GPU. Since multithreading in OpenGL ES is of restricted value, Metal provides efficient multithreading, which will reduce load times (or at least this is what Apple is currently saying).
Since games that are going to benefit from the Metal framework will most likely not be seen on an Android device, it could be possible that Apple no longer needs the assistance of OpenGL ES in any capacity, which will make additional work for developers when it comes to porting if that is what they wish to do. 4000 draw calls are just not feasible on Apple’s SoC (A7) with OpenGL ES. The CPU nor the GPU are of high-performance on mobile devices, to begin with so giving access to the hardware of a device can largely benefit developers.
Apple’s device ecosystem is quite unique. They design their own CPUs, configure their own SoCs and develop their own operating system. The only part of the device ecosystem that they do not control is the GPU, which is powered by Imagination Technologies’ PowerVR GPUs. Metal does not need to worry about any other GPU architectures because the operating system is custom-fit for the API and not the other way around.
Unfortunately for OpenGL ES, they may have just lost a very close friendship with Apple’s hardware. Much like AMD’s Mantle and Microsoft’s DirectX 12 (and even similar to Nvidia’s CUDA), Apple’s Metal framework looks to separate itself from the competition and become independent once again. Apple has a tendency of making themselves secluded from the rest of the world and because they have such a massive audience they will have no issues with acceptance.