Metal (API)
Metal is a low-level, low-overhead hardware-accelerated graphics API that debuted in iOS 8. It is intended to bring to iOS some of the performance benefits of similar APIs on other platforms, such as AMD's Mantle and Microsoft's DirectX 12. Since November 27, 2014, Metal is available for devices using the Apple A7, Apple A8, and Apple A8X. Metal also further improves the capabilities of GPGPU programming by introducing compute shaders.
Metal uses a new shading language based on C++11; this is implemented using clang and LLVM.[1]
Performance improvements
Metal should have better performance than his predecessor, OpenGL, for several reasons:
- Precomputed shaders and up-front state validation
- Explicit synchronization between GPU and CPU
- Shared memory space between GPU and CPU
- Lower driver overhead[3]
Some of these points remove the amount of work the CPU is required to do to successfully execute commands on the GPU. This can lead to overall performance gain because the CPU can be then used to compute other tasks.
References
- ^ "Metal Shading Language Guide". September 8, 2014. Retrieved September 10, 2014.
- ^ McWhertor, Michael (September 9, 2014). "This is the game Apple used to show off iPhone 6". Polygon. Vox Media. Archived from the original on September 9, 2014. Retrieved September 9, 2014.
{{cite web}}
: Unknown parameter|deadurl=
ignored (|url-status=
suggested) (help) - ^ http://blogs.unity3d.com/2014/07/03/metal-a-new-graphics-api-for-ios-8/
External links
- Metal Programming Guide (preliminary)
- WWDC14 demo; extended version