Metal (API)
Metal is a low-level, low-overhead hardware-accelerated graphics and compute application programming interface (API) that debuted in iOS 8. It combines functionality similar to OpenGL and OpenCL under one API. It is intended to bring to iOS some of the performance benefits of similar APIs on other platforms, such as Khronos Group's cross-platform Vulkan and Microsoft's Direct3D 12 for Windows. Since June 8, 2015, Metal is available for iOS devices using the Apple A7 or later, as well as Macs (2012 models or later) running OS X El Capitan. 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.[2]
Support for Metal on OS X was announced at WWDC 2015.
Performance
Metal should have better performance than 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.
See also
- Direct3D – DirectX 12 introduces low-level APIs
- Mantle – low-level API by AMD
- Vulkan – low-overhead successor to OpenGL
References
- ^ 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) - ^ "Metal Shading Language Guide". September 8, 2014. Retrieved September 10, 2014.
- ^ 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