Metal (API)
















Metal

Apple Metal logo, version 2.png

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]
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]

Developer(s)
Apple Inc.
Initial release
June 2014; 4 years ago (2014-06)
Written in
C++14
Operating system
iOS, macOS, tvOS
Type
3D graphics and compute API
Website
developer.apple.com/metal/

Metal is a low-level, low-overhead hardware-accelerated 3D graphic and compute shader application programming interface (API) developed by Apple Inc., and which debuted in iOS 8. Metal combines functions similar to OpenGL and OpenCL under one API. It is intended to bring to iOS, macOS, and tvOS apps some of the performance benefits of similar APIs on other platforms, such as Vulkan (which debuted in mid-February 2016) and DirectX 12.


Metal is an object-oriented API that can be invoked using the Swift or Objective-C programming languages. Full-blown control of the Metal framework (as well as the related MetalKit framework) is accessible via the Metal Unified Graphics and Compute Language. "Metal is a C++ based programming language that developers can use to write code that is executed on the GPU for graphics and general-purpose data-parallel computations. Since Metal is based on C++, developers will find it familiar and easy to use. With Metal, both graphics and compute programs can be written with a single, unified language, which allows tighter integration between the two."[2]




Contents





  • 1 History


  • 2 Supported GPUs


  • 3 Design


  • 4 Performance


  • 5 Adoption


  • 6 See also


  • 7 References


  • 8 External links




History




The original Metal logo


Metal has been available since June 2, 2014 on iOS devices powered by Apple A7 or later,[3] and since June 8, 2015 on Macs (2012 models or later) running OS X El Capitan.[4]


On June 5, 2017 at WWDC, Apple announced the second version of Metal, to be supported by macOS High Sierra, iOS 11 and tvOS 11. Metal 2 is not a separate API from Metal and is supported by the same hardware. Metal 2 enables more efficient profiling and debugging in Xcode, accelerated machine learning, lower CPU workload, support for virtual reality on macOS, and specificities of the Apple A11 GPU, in particular.[5]



Supported GPUs


On iOS and tvOS, Metal supports Apple-designed SoCs from the Apple A7 or newer. On macOS, Metal supports Intel HD and Iris Graphics from the HD 4000 series or newer, AMD GCN-based GPUs, and Nvidia Kepler-based GPUs or newer.



Design


Metal is designed around principles of modern graphics and compute APIs, such as Vulkan and Direct3D 12, in that instructions are sent to the GPU in command buffers obtained from command queues.


Metal improves the capabilities of GPGPU programming by using compute shaders.
Metal uses a specific shading language based on C++14; this is implemented using Clang and LLVM.[6]



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[7]

  • Efficient multithreading: every CPU thread can send commands to the GPU.

Some of these points reduce 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 then be used to compute other tasks.



Adoption


According to Apple, more than 148,000 applications use Metal directly, and 1.7 million use it through high-level frameworks, as of June 2017.[8]
Presumably, most of these are applications and games on iOS. Notable macOS games using Metal for rendering are listed below.

















































































































































































Title
Developer (macOS version)
Game Engine
Release Date (macOS)
Notes

Dota 2

Valve Corporation

Source 2

18 July 2013
The use of MoltenVK to emulate Vulkan via Metal was announced on 26 February 2018[9]. The option to use this became available on 31 May 2018[10].

Rise of the Tomb Raider

Feral Interactive
Foundation engine

12 April 2018
Metal support shipping at launch

F1 2016

Feral Interactive

EGO Engine 4.0

6 April 2017
Metal support shipping at launch

Total War: Warhammer

Feral Interactive
Total War Engine 3

19 April 2017
Metal support shipping at launch

Warhammer 40,000: Dawn of War III

Feral Interactive

Essence Engine 4

9 June 2017
Metal support shipping at launch

Hitman

Feral Interactive

Glacier Engine

20 June 2017
Metal support shipping at launch

Bioshock Remastered

Feral Interactive

Unreal Engine 2.5

22 August 2017
Metal support shipping at launch

F1 2017

Feral Interactive

EGO Engine 4.0

25 August 2017
Metal support shipping at launch

Deus Ex: Mankind Divided

Feral Interactive
Dawn Engine

12 December 2017
Metal support shipping at launch

DiRT Rally

Feral Interactive

EGO Engine 2.5

16 November 2017
Metal support shipping at launch

Ballistic Overkill

Aquiris Game Studio

Unity Engine 5

28 March 2017
Metal support shipping at launch

BattleTech

Harebrained Schemes

Unity Engine 5

24 April 2018
Metal support shipping at launch

Mafia III

Aspyr Media
Illusion Engine

11 May 2017
Metal support shipping at launch

World of Warcraft

Blizzard Entertainment
WoW Engine

23 November 2004
Metal support since August 2016

StarCraft II

Blizzard Entertainment
SC2 Engine

27 July 2010
Metal support in beta since 24 January 2017

Heroes of the Storm

Blizzard Entertainment
SC2 Engine

2 June 2015
Metal support in beta since 24 January 2017,

temporarily removed on 29 November 2017



Fortnite

Epic Games

Unreal Engine 4

25 July 2017
Metal support shipping at launch

Obduction

Cyan Worlds

Unreal Engine 4

29 March 2017
Metal support shipping at launch

Everspace
Rockfish

Unreal Engine 4

26 May 2017
Metal support shipping at launch

Ark: Survival Evolved

Studio Wildcard

Unreal Engine 4

29 August 2017
Metal support shipping at launch

Observer

Bloober Team

Unreal Engine 4

24 October 2017
Metal support shipping at launch

Unreal Tournament

Epic Games

Unreal Engine 4
TBA
Metal support since January 2017

Refunct
Dominique Grieshofer

Unreal Engine 4

5 September 2016
Metal support shipping at launch

Cities: Skylines

Paradox Interactive

Unity Engine 5

10 March 2015
Metal support since 18 May 2017

Universe Sandbox 2
Giant Army

Unity Engine 5
TBA
Metal support in beta since June 2017

War Thunder

Gaijin Entertainment
Dagor Engine 4

1 November 2012
Metal support added 24 May 2017, removed at some point in 2018

The Witness

Thekla, Inc
Thekla Engine

8 March 2017
Metal support shipping at launch

Micro Machines World Series

Virtual Programming

Unity Engine 5

30 June 2017
Metal support shipping at launch

Guardians of the Galaxy: The Telltale Series

Telltale Games

Telltale Tool

18 April 2017
Metal support shipping at launch

Batman: The Enemy Within

Telltale Games

Telltale Tool

8 August 2017
Metal support shipping at launch

Minecraft: Story Mode - Season Two

Telltale Games

Telltale Tool

11 July 2017
Metal support shipping at launch

ARMA 3

Virtual Programming
Real Virtuality
TBA
Metal support in beta since 17 September 2017

X-Plane 11

Laminar Research
Custom engine

30 May 2017
Metal support upcoming

Headlander

Double Fine Productions
Buddha Engine

18 November 2016
Metal support shipping at launch


See also



  • Direct3D – DirectX 12 introduces low-level APIs


  • Mantle – low-level API by AMD


  • Vulkan – low-overhead successor to OpenGL


  • MoltenVK - software compatibility library to run Vulkan software on top of the Metal API

  • WebGPU


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 10, 2014. Retrieved September 9, 2014. 


  2. ^ Apple Inc. "Metal Shading Language Specification" (PDF). 


  3. ^ Machkovech, Same (2 June 2014). "Apple gets heavy with gaming, announces Metal development platform". Ars Technica. Condé Nast. 


  4. ^ Smith, Colin; Meza, Starlayne (8 June 2015). "Apple Announces OS X El Capitan with Refined Experience & Improved Performance". Newsroom. San Francisco: Apple. 


  5. ^ "Archived copy of the Metal homepage, November 2017". Apple Developer. Apple. November 20, 2017. Archived from the original on November 20, 2017 – via Wayback Machine. CS1 maint: BOT: original-url status unknown (link)


  6. ^ "Metal Shading Language Guide". September 8, 2014. Retrieved September 10, 2014. 


  7. ^ "Metal, a new graphics API for iOS 8 – Unity Blog". Unity Technologies Blog. Retrieved 2017-06-16. 


  8. ^ Apple Inc. "WWDC 2017 Platforms State of the Union". 


  9. ^ Nestor, Marius. "Vulkan Support Is Finally Coming to Apple's macOS & iOS to Make Games Run Faster". softpedia. Retrieved 2018-02-28. 


  10. ^ Larabel, Michael (June 1, 2018). "Initial Vulkan Performance On macOS With Dota 2 Is Looking Very Good". Phoronix. Retrieved June 5, 2018. 




External links


  • Metal for Developers


  • Metal Programming Guide (preliminary)


  • WWDC14 demo; extended version







The name of the pictureThe name of the pictureThe name of the pictureClash Royale CLAN TAG#URR8PPP

Popular posts from this blog

Rothschild family

Cinema of Italy