Jump to content

Metal (API)

From Wikipedia, the free encyclopedia

This is an old revision of this page, as edited by Fmadd (talk | contribs) at 23:03, 13 April 2016. The present address (URL) is a permanent link to this revision, which may differ significantly from the current revision.

Apple used the mobile multiplayer online battle arena game Vainglory (Halcyon Fold map pictured) to demonstrate Metal's graphics capabilities at the iPhone 6's September 2014 announcement event.[1]

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

References

  1. ^ 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)
  2. ^ "Metal Shading Language Guide". September 8, 2014. Retrieved September 10, 2014.
  3. ^ http://blogs.unity3d.com/2014/07/03/metal-a-new-graphics-api-for-ios-8/