Metal is a low-level, low-overhead hardware-accelerated 3D graphic and compute shader API created by Apple, debuting in iOS 8. Metal combines functions similar to OpenGL and OpenCL in one API. It is intended to improve performance by offering low-level access to the GPU hardware for apps on iOS, iPadOS, macOS, tvOS and visionOS (though not watchOS). It is similar to low-level APIs on other platforms such as Vulkan and DirectX 12.

Metal is an object-oriented API that can be invoked using the Swift, Objective-C or C++17 programming languages. Full-blown GPU execution is controlled via the Metal Shading Language (MSL).

Features Metal aims to provide low-overhead access to the GPU. Commands are encoded beforehand and then submitted to the GPU for asynchronous execution. The application controls when to wait for the execution to complete thus allowing application developers to increase throughput by encoding other commands while commands are executed on the GPU or save power by explicitly waiting for GPU execution to complete. Additionally, command encoding is CPU independent thus applications can encode commands to each CPU thread independently. Lastly, render states are pre-computed beforehand, allowing the GPU driver to know in advance how to configure and optimize the render pipeline before command execution.

Metal improves the capabilities of GPGPU programming by using compute shaders. Metal uses a specific shading language based on C++14, implemented using Clang and LLVM.

Metal allows application developers to create Metal resources such as buffers and textures. Resources can be allocated on the CPU, GPU, or both and provides facilities to update and synchronize allocated resources. Metal can also enforce a resource's state during a command encoder's lifetime.

On macOS, Metal can provide application developers the discretion to specify which GPU to execute. Application developers can choose between the low-power integrated GPU of the CPU, the discrete GPU (on certain MacBooks and Macs) or an external GPU connected through Thunderbolt. Application developers also have the preference on how GPU commands are executed on which GPUs and provides suggestion on which GPU a certain command is most efficient to execute (commands to render a scene can be executed by the discrete GPU while post-processing and display can be handled by the integrated GPU).

Metal Performance Shaders Metal Performance Shaders is a highly optimized library of graphics functions that can help application developers achieve great performance at the same time decrease work on maintaining GPU family specific functions. It provides functions including:

Image filtering algorithms Neural network processing Advanced math operations Ray tracing

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

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.

At the 2020 WWDC, Apple announced the migration of the Mac to Apple silicon. Macs using Apple silicon will feature Apple GPUs with a feature set combining what was previously available on macOS and iOS, and will be able to take advantage of features tailored to the tile based deferred rendering (TBDR) architecture of Apple GPUs.

At the 2022 WWDC, Apple announced the third version of Metal (Metal 3), which would debut with the release of macOS Ventura, iOS 16 and iPadOS 16. Metal 3 introduces the MetalFX upscaling framework, which renders complex scenes in less time per frame with high-performance upscaling and anti-aliasing, mesh shaders support. Also announced possibility to use C/C++ for Metal API.

At the 2023 WWDC, Apple announced a brand new toolkit called the Game Porting Toolkit to port Windows 10/11-based games. It includes an environment to test binaries, translation layers from HLSL to MSL, and Metal-cpp bindings. Jeremy Sandmel announced a new Game Mode for macOS Sonoma, and Hideo Kojima announced Death Stranding for the macOS App Store.

At the 2024 WWDC, Apple announced Game Porting Toolkit 2, along with the release of new games such as Control: Ultimate Edition, Frostpunk 2, and Assassin's Creed Shadows for macOS.

At the 2025 WWDC, Apple announced Metal 4, a new version of the API featuring a unified command encoder system, support for neural rendering, and new technologies such as MetalFX Frame Interpolation and a ray tracing denoiser.

Supported GPUs The first version of Metal supports the following hardware and software: Apple A7 SoC or later with iOS 8 or later Apple M1 SoC or later with macOS 11 or later Intel Processor with Intel HD and Iris Graphics Ivy Bridge series or later with OS X 10.11 or later AMD Graphics with GCN or RDNA architecture with OS X 10.11 or later NVIDIA Graphics with Kepler architecture with OS X 10.11 to macOS 11 operating system NVIDIA Graphics with Maxwell architecture or Pascal architecture with OS X 10.11 to macOS 10.13 operating system

The second version of Metal supports the following hardware and software:

Apple A7 SoC or later with iOS 11 or later Apple M1 SoC or later with macOS 11 or later Intel Processor with Intel HD and Iris Graphics Skylake series or later with macOS 10.13 or later AMD Graphics with GCN or RDNA architecture with macOS 10.13 or later

The third version of Metal supports the following hardware and software: Apple A13 or later with iOS 16, iPadOS 16 Apple A14 or later with iOS 16, iPadOS 16 or later Apple M1 SoC or later with iPadOS 16 or later Apple M1 SoC or later with macOS 13 or later Intel Processor with Intel UHD 630 or Iris Plus (Kaby Lake or later) with macOS 13 or later AMD Graphics with RDNA architecture (5000 and 6000 series) and Pro Vega (5th generation GCN architecture)

The fourth version of Metal supports the following hardware and software: Apple A14 or later with iOS 26, iPadOS 26 or later Apple M1 SoC or later with iPadOS 26, macOS 26 or later

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. macOS games using Metal for rendering are listed below.

TitleDeveloper (macOS version)Game engineMacOS release date (OpenGL/DirectX)Metal-based release dateMetal support notesArk: Survival EvolvedStudio WildcardUnreal Engine 4Assassin's Creed ShadowsUbisoft QuebecUbisoft AnvilARMA 3Virtual ProgrammingReal VirtualityMetal support in beta since Baldur's Gate IIILarian StudiosDivinity Engine 4.0Metal support in early access since Ballistic OverkillAquiris Game StudioUnity Engine 5Batman: Arkham CityFeral InteractiveUnreal Engine 3Metal support since 21 February 2019 with v1.2Batman: The Enemy WithinTelltale GamesTelltale ToolBattleTechHarebrained SchemesUnity Engine 5Bioshock RemasteredFeral InteractiveUnreal Engine 2.5Bioshock 2 RemasteredFeral InteractiveUnreal Engine 2.5Cyberpunk 2077CD ProjektREDengine 4Support for Metal 4Cities: SkylinesParadox InteractiveUnity Engine 5Metal support since Civilization VIAspyr MediaLOREMetal support since 5 April 2019Company of Heroes 2Feral InteractiveEssence Engine 3Metal support since Control: Ultimate EditionRemedy EntertainmentNorthlight Engine Dead Island 2Dambuster StudiosUnreal Engine 4Deus Ex: Mankind DividedFeral InteractiveDawn EngineDiRT RallyFeral InteractiveEGO Engine 2.5Divinity: Original Sin IILarian StudiosDivinity Engine 2Dota 2ValveSource 2MoltenVK was announced on . The option to use this became available on .The Elder Scrolls OnlineZenimax Online StudiosN/AOpenGL Renderer replaced with Vulkan via MoltenVK wrapper (translates Vulkan API calls to Metal) in patch 4.2.5Empire: Total WarFeral InteractiveTW Engine 3Metal support since 16 December 2019EVE OnlineCCP GamesN/APreviously available on macOS via DirectX 9.0 from November 2007 until February 2009; native macOS version using Metal released 14 November 2021EverspaceRockfishUnreal Engine 4F1 2016Feral InteractiveEGO Engine 4.0F1 2017Feral InteractiveEGO Engine 4.0FortniteEpic GamesUnreal Engine 4Frostpunk11 Bit StudiosLiquid EngineFrostpunk 211 Bit StudiosUnreal Engine 5GravelVirtual ProgrammingUnreal Engine 4Guardians of the Galaxy: The Telltale SeriesTelltale GamesTelltale ToolHeadlanderDouble Fine ProductionsBuddha EngineHeroes of the StormBlizzard EntertainmentSC2 EngineMetal support in beta since (temporarily removed on until ?)HitmanFeral InteractiveGlacier 2Hollow KnightTeam CherryUnity Engine11 April 2017Hollow Knight: SilksongTeam CherryUnity Engine4 September 2025Life Is Strange: Before the StormFeral InteractiveUnity EngineLife Is Strange 2Feral InteractiveUnreal Engine 4Mafia IIIAspyr MediaIllusion EngineMedieval II: Total WarFeral InteractiveTW Engine 2Metal support since 25 October 2018Micro Machines World SeriesVirtual ProgrammingUnity Engine 5Minecraft: Story Mode - Season TwoTelltale GamesTelltale ToolMXGP3Virtual ProgrammingUnreal Engine 4Napoleon: Total WarFeral InteractiveTW Engine 3Metal support since 25 October 2019 with v1.2ObductionCyan WorldsUnreal Engine 4ObserverBloober TeamUnreal Engine 4Quake IIid SoftwareQuake II engineA port using MoltenVK was released as vkQuake2.RefunctDominique GrieshoferUnreal Engine 4Resident Evil 2CapcomRE EngineResident Evil 3CapcomRE EngineResident Evil 4CapcomRE EngineResident Evil VillageCapcomRE EngineFirst macOS game with MetalFX supportRise of the Tomb RaiderFeral InteractiveFoundation EngineShadow of the Tomb RaiderFeral InteractiveFoundation EngineSid Meier's Railroads!Feral InteractiveGamebryoMetal support since The Sims 3Maxis Redwood ShoresThe Sims 3 EngineThe Sims 4MaxisSmartSimMetal support added Sky: Children of the LightThatgamecompanyN/ANative Metal support added since pre-global live in November 2017StarcraftBlizzard EntertainmentModified Warcraft II engineMetal support since with v1.23.5StarCraft IIBlizzard EntertainmentSC2 EngineMetal support in beta since Tomb RaiderFeral InteractiveFoundation EngineMetal support with v1.2 in July 2019Total War: Rome RemasteredFeral InteractiveTW Engine 2Total War: Shogun 2Feral InteractiveTW Engine 3Metal support since 4 October 2019Total War: Shogun 2: Fall of the SamuraiFeral InteractiveTW Engine 3Metal support since 4 October 2019Total War: Three KingdomsFeral InteractiveTW Engine 3Total War: WarhammerFeral InteractiveTW Engine 3Total War: Warhammer IIFeral InteractiveTW Engine 3Total War Saga: Thrones of BritanniaFeral InteractiveTW Engine 3Total War Saga: TroyFeral InteractiveTW Engine 3Transport Fever 2Urban GamesN/A23 February 2021Metal support using MoltenVK and OpenGLUniverse SandboxGiant ArmyUnity Engine 5Metal support in beta since June 2017Unreal TournamentEpic GamesUnreal Engine 4Metal support since January 2017War ThunderGaijin EntertainmentDagor Engine 4Metal support added (removed in ? 2018 and reintroduced )Warhammer 40,000: Dawn of War IIIFeral InteractiveEssence Engine 4The WitnessThekla, IncThekla EngineWorld of WarcraftBlizzard EntertainmentWoW EngineMetal support since August 2016X-Plane 11Laminar ResearchN/AMetal support in beta since

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 OpenGL - cross-platform graphics API

References

External links Metal for Developers Metal Programming Guide (preliminary) WWDC14 demo; extended version