Movatterモバイル変換


[0]ホーム

URL:


Jump to content
WikipediaThe Free Encyclopedia
Search

Metal (API)

From Wikipedia, the free encyclopedia
iOS, macOS, and tvOS graphics rendering API
Not to be confused with the MeTaL API byS3 Graphics.

Metal
Apple used the mobilemultiplayer online battle arena gameVainglory to demonstrate Metal's graphics capabilities at theiPhone 6's September 2014 announcement event.[1]
DeveloperApple Inc.
Initial releaseJune 2014; 11 years ago (2014-06)
Stable release
4 / June 2025; 8 months ago (2025-06)
Written inMetal Shading Language (C++14-based in Metal 1–3,C++17-based in Metal 4), Runtime/API:Objective-C,Swift,C++ (binding via Metal-cpp)
Operating systemiOS,iPadOS,macOS,tvOS,watchOS andvisionOS
Type3D graphics and computeAPI
LicenseProprietary
Websitedeveloper.apple.com/metal/

Metal is a low-level, low-overheadhardware-accelerated3D graphic andcompute shaderAPI created byApple, debuting iniOS 8. Metal combines functions similar toOpenGL andOpenCL in one API. It is intended to improve performance by offering low-level access to the GPU hardware for apps oniOS,iPadOS,macOS,tvOS,watchOS andvisionOS. It is similar to low-level APIs on otherplatforms such asVulkan andDirectX 12.

Metal is anobject-oriented API that can be invoked using theSwift,Objective-C orC++17[2]programming languages. Full-blown GPU execution is controlled via the Metal Shading Language. According to Apple promotional materials: "MSL[Metal Shading Language] is a single, unified language that allows tighter integration between the graphics and compute programs. Since MSL is C++-based, you will find it familiar and easy to use."[3]

Features

[edit]

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

Metal improves the capabilities ofGPGPU programming by usingcompute shaders. Metal uses a specificshading language based onC++14, implemented usingClang andLLVM.[5]

Metal allows application developers to create Metal resources such as buffers, 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.[6][7]

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).[8]

Metal Performance Shaders

[edit]

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.[9] It provides functions including:

  • Image filtering algorithms
  • Neural network processing
  • Advanced math operations
  • Ray tracing

History

[edit]

Metal has been available since June 2, 2014 oniOS devices powered byApple A7 or later,[10] and since June 8, 2015 onMacs (2012 models or later) runningOS X El Capitan.[11]

On June 5, 2017, atWWDC, Apple announced the second version of Metal, to be supported bymacOS High Sierra,iOS 11 andtvOS 11. Metal 2 is not a separate API from Metal and is supported by the same hardware. Metal 2 enables more efficientprofiling anddebugging inXcode, acceleratedmachine learning, lowerCPU workload, support forvirtual reality on macOS, and specificities of theApple A11 GPU, in particular.[12]

At the 2020WWDC, Apple announced the migration of the Mac toApple 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 thetile based deferred rendering (TBDR) architecture of Apple GPUs.[13]

At the 2022WWDC, Apple announced the third version of Metal (Metal 3), which would debut with the release ofmacOS Ventura,iOS 16 andiPadOS 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.[14] Also announced possibility to use C/C++ for Metal API.[15]

At the 2023WWDC, 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 formacOS Sonoma, andHideo Kojima announcedDeath Stranding for the macOS App Store.[16]

At the 2024WWDC, Apple announced Game Porting Toolkit 2, along with the release of new games such asControl: Ultimate Edition,Frostpunk 2, andAssassin's Creed Shadows for macOS.[17]

At the 2025WWDC, 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.[18]

Supported GPUs

[edit]

The first version of Metal supports the following hardware and software:[19]

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

The third version of Metal supports the following hardware and software:[20]

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

Adoption

[edit]

According to Apple, more than 148,000 applications use Metal directly, and 1.7 million use it through high-levelframeworks, as of June 2017.[22] macOS games using Metal forrendering are listed below.

TitleDeveloper (macOS version)Game engineMacOS release date (OpenGL/DirectX)Metal-based release dateMetal support notes
Ark: Survival EvolvedStudio WildcardUnreal Engine 429 August 2017
Assassin's Creed ShadowsUbisoft QuebecUbisoft Anvil20 March 2025
ARMA 3Virtual ProgrammingReal Virtuality31 August 2015Metal support in beta since17 September 2017[citation needed]
Baldur's Gate IIILarian StudiosDivinity Engine 4.022 September 2023Metal support in early access since6 October 2020[citation needed]
Ballistic OverkillAquiris Game StudioUnity Engine 528 March 2017
Batman: Arkham CityFeral InteractiveUnreal Engine 318 October 2013Metal support since 21 February 2019 with v1.2[citation needed]
Batman: The Enemy WithinTelltale GamesTelltale Tool8 August 2017
BattleTechHarebrained SchemesUnity Engine 524 April 2018
Bioshock RemasteredFeral InteractiveUnreal Engine 2.522 August 2017
Bioshock 2 RemasteredFeral InteractiveUnreal Engine 2.522 October 2020
Cyberpunk 2077CD ProjektREDengine 417 July 2025Support for Metal 4
Cities: SkylinesParadox InteractiveUnity Engine 510 March 2015Metal support since18 May 2017[citation needed]
Civilization VIAspyr MediaLORE24 October 2016Metal support since 5 April 2019[citation needed]
Company of Heroes 2Feral InteractiveEssence Engine 321 January 2015Metal support since19 October 2018[citation needed]
Control: Ultimate EditionRemedy EntertainmentNorthlight Engine26 March 2025
Dead Island 2Dambuster StudiosUnreal Engine 424 July 2025
Deus Ex: Mankind DividedFeral InteractiveDawn Engine12 December 2017
DiRT RallyFeral InteractiveEGO Engine 2.516 November 2017
Divinity: Original Sin IILarian StudiosDivinity Engine 231 January 2019
Dota 2ValveSource 218 July 2013MoltenVK was announced on26 February 2018.[23] The option to use this became available on31 May 2018.[24]
The Elder Scrolls OnlineZenimax Online StudiosN/A4 April 201422 October 2018OpenGL Renderer replaced with Vulkan via MoltenVK wrapper (translates Vulkan API calls to Metal) in patch 4.2.5
Empire: Total WarFeral InteractiveTW Engine 34 March 2009Metal support since 16 December 2019[citation needed]
EVE OnlineCCP GamesN/A6 November 200714 October 2021Previously available on macOS viaDirectX 9.0 from November 2007 until February 2009; native macOS version using Metal released 14 November 2021[citation needed]
EverspaceRockfishUnreal Engine 426 May 2017
F1 2016Feral InteractiveEGO Engine 4.06 April 2017
F1 2017Feral InteractiveEGO Engine 4.025 August 2017
FortniteEpic GamesUnreal Engine 425 July 2017
Frostpunk11 Bit StudiosLiquid Engine24 February 2021
Frostpunk 211 Bit StudiosUnreal Engine 520 September 2024
GravelVirtual ProgrammingUnreal Engine 420 January 2019
Guardians of the Galaxy: The Telltale SeriesTelltale GamesTelltale Tool18 April 2017
HeadlanderDouble Fine ProductionsBuddha Engine18 November 2016
Heroes of the StormBlizzard EntertainmentSC2 Engine2 June 2015Metal support in beta since24 January 2017 (temporarily removed on29 November 2017[25] until ?)[citation needed]
HitmanFeral InteractiveGlacier 220 June 2017
Life Is Strange: Before the StormFeral InteractiveUnity Engine13 September 2018
Life Is Strange 2Feral InteractiveUnreal Engine 42019
Mafia IIIAspyr MediaIllusion Engine11 May 2017
Medieval II: Total WarFeral InteractiveTW Engine 217 December 2015Metal support since 25 October 2018[citation needed]
Micro Machines World SeriesVirtual ProgrammingUnity Engine 530 June 2017
Minecraft: Story Mode - Season TwoTelltale GamesTelltale Tool11 July 2017
MXGP3Virtual ProgrammingUnreal Engine 423 November 2018
Napoleon: Total WarFeral InteractiveTW Engine 32 July 2013Metal support since 25 October 2019 with v1.2[citation needed]
ObductionCyan WorldsUnreal Engine 429 March 2017
ObserverBloober TeamUnreal Engine 424 October 2017
Quake IIid SoftwareQuake II engine9 February 2019A port usingMoltenVK was released as vkQuake2.[26]
RefunctDominique GrieshoferUnreal Engine 45 September 2016
Resident Evil 2CapcomRE Engine10 December 2024
Resident Evil 3CapcomRE Engine18 March 2025
Resident Evil 4CapcomRE Engine20 December 2023
Resident Evil VillageCapcomRE Engine28 October 2022First macOS game with MetalFX support
Rise of the Tomb RaiderFeral InteractiveFoundation Engine12 April 2018
Shadow of the Tomb RaiderFeral InteractiveFoundation Engine2019
Sid Meier's Railroads!Feral InteractiveGamebryo1 November 2012Metal support since18 December 2018[citation needed]
The Sims 3Maxis Redwood ShoresThe Sims 3 Engine2 June 200928 October 2020
The Sims 4MaxisSmartSim17 February 2015Metal support added12 November 2019[citation needed]
Sky: Children of the LightThatgamecompanyN/A18 July 2019Native Metal support added since pre-global live in November 2017
StarcraftBlizzard EntertainmentModified Warcraft II engine20 November 2001Metal support since2 July 2020 with v1.23.5[citation needed]
StarCraft IIBlizzard EntertainmentSC2 Engine27 July 2010Metal support in beta since24 January 2017[citation needed]
Tomb RaiderFeral InteractiveFoundation Engine17 January 2014Metal support with v1.2 in July 2019[citation needed]
Total War: Rome RemasteredFeral InteractiveTW Engine 229 April 2021
Total War: Shogun 2Feral InteractiveTW Engine 331 July 2014Metal support since 4 October 2019[citation needed]
Total War: Shogun 2: Fall of the SamuraiFeral InteractiveTW Engine 318 December 2014Metal support since 4 October 2019[citation needed]
Total War: Three KingdomsFeral InteractiveTW Engine 323 May 2019
Total War: WarhammerFeral InteractiveTW Engine 319 April 2017
Total War: Warhammer IIFeral InteractiveTW Engine 320 November 2018
Total War Saga: Thrones of BritanniaFeral InteractiveTW Engine 324 May 2018
Total War Saga: TroyFeral InteractiveTW Engine 313 August 2020
Transport Fever 2Urban GamesN/A23 February 2021[27]Metal support usingMoltenVK[28] andOpenGL[27]
Universe SandboxGiant ArmyUnity Engine 5TBAMetal support in beta since June 2017[citation needed]
Unreal TournamentEpic GamesUnreal Engine 4CancelledMetal support since January 2017[citation needed]
War ThunderGaijin EntertainmentDagor Engine 41 November 2012Metal support added24 May 2017 (removed in ? 2018 and reintroduced27 August 2020)[citation needed]
Warhammer 40,000: Dawn of War IIIFeral InteractiveEssence Engine 49 June 2017
The WitnessThekla, IncThekla Engine8 March 2017
World of WarcraftBlizzard EntertainmentWoW Engine23 November 2004Metal support since August 2016[citation needed]
X-Plane 11Laminar ResearchN/A30 May 2017Metal support in beta since2 April 2020[29]

See also

[edit]

References

[edit]
  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 11, 2014. RetrievedSeptember 9, 2014.
  2. ^"Getting started with Metal-CPP - Metal".
  3. ^Apple Inc."Metal Shading Language Specification"(PDF).
  4. ^"Setting Up a Command Structure". Apple Inc.
  5. ^"Metal Shading Language Guide". September 8, 2014. RetrievedSeptember 10, 2014.
  6. ^Apple Inc."Setting Resource Storage Mode".
  7. ^"Synchronizing a Managed Resource". Apple Inc.
  8. ^"GPU Selection in macOS". Apple Inc.
  9. ^"Metal Performance Shaders".
  10. ^Machkovech, Sam (June 2, 2014)."Apple gets heavy with gaming, announces Metal development platform".Ars Technica.Condé Nast.
  11. ^Smith, Colin; Meza, Starlayne (June 8, 2015)."Apple Announces OS X El Capitan with Refined Experience & Improved Performance".Newsroom.San Francisco:Apple.
  12. ^"Metal 2".Apple Developer.Apple. November 20, 2017. Archived fromthe original on November 20, 2017 – viaWayback Machine.
  13. ^"Bring your Metal app to Apple Silicon Macs".developer.apple.com. RetrievedJuly 13, 2020.
  14. ^"Discover Metal 3".developer.apple.com. RetrievedJune 24, 2022.
  15. ^"Program Metal in C++ with metal-cpp".developer.apple.com. RetrievedSeptember 10, 2022.
  16. ^"WWDC 2023 - Game Porting Toolkit and Metal updates".YouTube. June 5, 2023. RetrievedJuly 25, 2025.
  17. ^"WWDC 2024 - Game Porting Toolkit 2 and more".YouTube. June 10, 2024. RetrievedJuly 25, 2025.
  18. ^"WWDC 2025 - Metal 4 Announcement".YouTube. June 9, 2025. RetrievedJuly 25, 2025.
  19. ^Chiappetta, Marco (December 11, 2018)."Apple Turns Its Back On Customers And NVIDIA With macOS Mojave".Forbes.
  20. ^"Metal feature set tables"(PDF).Apple.
  21. ^"Metal feature set tables (2022)"(PDF).Apple. Archived from the original on October 14, 2022. RetrievedJune 12, 2025.{{cite web}}: CS1 maint: bot: original URL status unknown (link)
  22. ^Apple Inc."WWDC 2017 Platforms State of the Union".
  23. ^"Vulkan Applications Enabled on Apple Platforms". Khronos Group Press Release. RetrievedFebruary 24, 2021.
  24. ^Larabel, Michael (June 1, 2018)."Initial Vulkan Performance On macOS With Dota 2 Is Looking Very Good". Phoronix. RetrievedJune 5, 2018.
  25. ^"HEROES OF THE STORM BALANCE PATCH NOTES — NOVEMBER 29, 2017".news.blizzard.com. November 29, 2017.
  26. ^Kondrak, Krzysztof [@k_kondrak] (February 9, 2019)."vkQuake2 gets MacOS support" (Tweet). RetrievedFebruary 9, 2019 – viaTwitter.
  27. ^ab"Transport Fever 2 - Transport Fever 2 receives Mac and Vulkan support - Steam News".store.steampowered.com. February 23, 2021. RetrievedFebruary 12, 2026.
  28. ^"Depot 1066783 (Transport Fever 2 Mac)".SteamDB. RetrievedFebruary 12, 2026.
  29. ^"X-Plane 11.50 Public Beta 1: Vulkan and Metal Are Here".X-Plane Developer. April 2, 2020. RetrievedApril 2, 2020.

External links

[edit]
Versions
Mac OS X
OS X
macOS
Predecessors
Applications
Core
applications
Developer
Tools
Xcode
Former
Utilities
Former
Technologies,
user interface
Deprecated
Discontinued
iOS and iOS-based products
Hardware
iPhone (models)
iPad (models)
Discontinued
iPod Touch
Other
iOS logo
Software
OS versions
Derived from iOS
Features
SDK & API
Bundled apps
Discontinued
Apple apps
Discontinued
Services
Discontinued
Other
Retrieved from "https://en.wikipedia.org/w/index.php?title=Metal_(API)&oldid=1337984961"
Categories:
Hidden categories:

[8]ページ先頭

©2009-2026 Movatter.jp