Kalpana Kalpana (Editor)

Metal (API)

Updated on
Edit
Like
Comment
Share on FacebookTweet on TwitterShare on LinkedInShare on Reddit
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 (which debuted in mid-February 2016) and Microsoft's Direct3D 12 for Windows. Metal has been available since June 2, 2014 on iOS devices using the Apple A7 or later, and since June 8, 2015 on 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.

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
  • 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 (API) Wikipedia