Metal (API)

Metal
Developer(s)Apple Inc.
Initial releaseJune 2014; 10 years ago (2014-06)
Stable release
24 / October 2022; 2 years ago (2022-10)
Written inShading language: C++14, Runtime/API: Objective-C
Operating systemiOS, iPadOS, macOS, tvOS
Type3D graphics and compute API
LicenseProprietary
Websitedeveloper.apple.com/metal/

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, and tvOS. It can be compared 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[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

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 of GPGPU programming by using compute shaders. Metal uses a specific shading language based on C++14, implemented using Clang and LLVM.[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

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

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

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

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

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.[14] Also announced possibility to use C/C++ for Metal API.[15]

Supported GPUs

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

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

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

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

Title Developer (macOS version) Game engine MacOS release date (OpenGL/DirectX) Metal-based release date Metal support notes
Ark: Survival Evolved Studio Wildcard Unreal Engine 4 29 August 2017
ARMA 3 Virtual Programming Real Virtuality TBA Metal support in beta since 17 September 2017[citation needed]
Baldur's Gate III Larian Studios Divinity Engine 4.0 22 September 2023 Metal support in early access since 6 October 2020[citation needed]
Ballistic Overkill Aquiris Game Studio Unity Engine 5 28 March 2017
Batman: Arkham City Feral Interactive Unreal Engine 3 18 October 2013 Metal support since 21 February 2019 with v1.2[citation needed]
Batman: The Enemy Within Telltale Games Telltale Tool 8 August 2017
BattleTech Harebrained Schemes Unity Engine 5 24 April 2018
Bioshock Remastered Feral Interactive Unreal Engine 2.5 22 August 2017
Bioshock 2 Remastered Feral Interactive Unreal Engine 2.5 22 October 2020
Cities: Skylines Paradox Interactive Unity Engine 5 10 March 2015 Metal support since 18 May 2017[citation needed]
Civilization VI Aspyr Media LORE 24 October 2016 Metal support since 5 April 2019[citation needed]
Company of Heroes 2 Feral Interactive Essence Engine 3 21 January 2015 Metal support since 19 October 2018[citation needed]
Deus Ex: Mankind Divided Feral Interactive Dawn Engine 12 December 2017
DiRT Rally Feral Interactive EGO Engine 2.5 16 November 2017
Divinity: Original Sin II Larian Studios Divinity Engine 2 31 January 2019
Dota 2 Valve Source 2 18 July 2013 MoltenVK was announced on 26 February 2018.[19] The option to use this became available on 31 May 2018.[20]
The Elder Scrolls Online Zenimax Online Studios N/A 4 April 2014 22 October 2018 OpenGL Renderer replaced with Vulkan via MoltenVK wrapper (translates Vulkan API calls to Metal) in patch 4.2.5
Empire: Total War Feral Interactive TW Engine 3 4 March 2009 Metal support since 16 December 2019[citation needed]
EVE Online CCP Games N/A 6 November 2007 14 October 2021 Previously available on macOS via DirectX 9.0 from November 2007 until February 2009; native macOS version using Metal released 14 November 2021[citation needed]
Everspace Rockfish Unreal Engine 4 26 May 2017
F1 2016 Feral Interactive EGO Engine 4.0 6 April 2017
F1 2017 Feral Interactive EGO Engine 4.0 25 August 2017
Fortnite Epic Games Unreal Engine 4 25 July 2017
Gravel Virtual Programming Unreal Engine 4 20 January 2019
Guardians of the Galaxy: The Telltale Series Telltale Games Telltale Tool 18 April 2017
Headlander Double Fine Productions Buddha Engine 18 November 2016
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[21] until ?)[citation needed]
Hitman Feral Interactive Glacier 2 20 June 2017
Life Is Strange: Before the Storm Feral Interactive Unity Engine 13 September 2018
Life Is Strange 2 Feral Interactive Unreal Engine 4 2019
Mafia III Aspyr Media Illusion Engine 11 May 2017
Medieval II: Total War Feral Interactive TW Engine 2 17 December 2015 Metal support since 25 October 2018[citation needed]
Micro Machines World Series Virtual Programming Unity Engine 5 30 June 2017
Minecraft: Story Mode - Season Two Telltale Games Telltale Tool 11 July 2017
MXGP3 Virtual Programming Unreal Engine 4 23 November 2018
Napoleon: Total War Feral Interactive TW Engine 3 2 July 2013 Metal support since 25 October 2019 with v1.2[citation needed]
Obduction Cyan Worlds Unreal Engine 4 29 March 2017
Observer Bloober Team Unreal Engine 4 24 October 2017
Quake II id Software Quake II engine 9 February 2019 A port using MoltenVK was released as vkQuake2.[22]
Refunct Dominique Grieshofer Unreal Engine 4 5 September 2016
Resident Evil Village Capcom RE Engine 28 October 2022 First macOS game with MetalFX support
Rise of the Tomb Raider Feral Interactive Foundation Engine 12 April 2018
Shadow of the Tomb Raider Feral Interactive Foundation Engine 2019
Sid Meier's Railroads! Feral Interactive Gamebryo 1 November 2012 Metal support since 18 December 2018[citation needed]
The Sims 3 Maxis Redwood Shores The Sims 3 Engine 2 June 2009 28 October 2020
The Sims 4 Maxis SmartSim 17 February 2015 Metal support added 12 November 2019[citation needed]
Sky: Children of the Light Thatgamecompany N/A 18 July 2019 Native Metal support added since pre-global live in November 2017
Starcraft Blizzard Entertainment Modified Warcraft II engine 20 November 2001 Metal support since 2 July 2020 with v1.23.5[citation needed]
StarCraft II Blizzard Entertainment SC2 Engine 27 July 2010 Metal support in beta since 24 January 2017[citation needed]
Tomb Raider Feral Interactive Foundation Engine 17 January 2014 Metal support with v1.2 in July 2019[citation needed]
Total War: Rome Remastered Feral Interactive TW Engine 2 29 April 2021
Total War: Shogun 2 Feral Interactive TW Engine 3 31 July 2014 Metal support since 4 October 2019[citation needed]
Total War: Shogun 2: Fall of the Samurai Feral Interactive TW Engine 3 18 December 2014 Metal support since 4 October 2019[citation needed]
Total War: Three Kingdoms Feral Interactive TW Engine 3 23 May 2019
Total War: Warhammer Feral Interactive TW Engine 3 19 April 2017
Total War: Warhammer II Feral Interactive TW Engine 3 20 November 2018
Total War Saga: Thrones of Britannia Feral Interactive TW Engine 3 24 May 2018
Total War Saga: Troy Feral Interactive TW Engine 3 13 August 2020
Universe Sandbox Giant Army Unity Engine 5 TBA Metal support in beta since June 2017[citation needed]
Unreal Tournament Epic Games Unreal Engine 4 Cancelled Metal support since January 2017[citation needed]
War Thunder Gaijin Entertainment Dagor Engine 4 1 November 2012 Metal support added 24 May 2017 (removed in ? 2018 and reintroduced 27 August 2020)[citation needed]
Warhammer 40,000: Dawn of War III Feral Interactive Essence Engine 4 9 June 2017
The Witness Thekla, Inc Thekla Engine 8 March 2017
World of Warcraft Blizzard Entertainment WoW Engine 23 November 2004 Metal support since August 2016[citation needed]
X-Plane 11 Laminar Research N/A 30 May 2017 Metal support in beta since 2 April 2020[23]

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 11, 2014. Retrieved September 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. Retrieved September 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, Same (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 from the original on November 20, 2017 – via Wayback Machine.
  13. ^ "Bring your Metal app to Apple Silicon Macs". developer.apple.com. Retrieved July 13, 2020.
  14. ^ "Discover Metal 3". developer.apple.com. Retrieved June 24, 2022.
  15. ^ "Program Metal in C++ with metal-cpp". developer.apple.com. Retrieved September 10, 2022.
  16. ^ Chiappetta, Marco (December 11, 2018). "Apple Turns Its Back On Customers And NVIDIA With macOS Mojave". Forbes.
  17. ^ "Metal feature set tables" (PDF). Apple.
  18. ^ Apple Inc. "WWDC 2017 Platforms State of the Union".
  19. ^ "Vulkan Applications Enabled on Apple Platforms". Khronos Group Press Release. Retrieved February 24, 2021.
  20. ^ Larabel, Michael (June 1, 2018). "Initial Vulkan Performance On macOS With Dota 2 Is Looking Very Good". Phoronix. Retrieved June 5, 2018.
  21. ^ "HEROES OF THE STORM BALANCE PATCH NOTES — NOVEMBER 29, 2017". news.blizzard.com. November 29, 2017.
  22. ^ Kondrak, Krzysztof [@k_kondrak] (February 9, 2019). "vkQuake2 gets MacOS support" (Tweet). Retrieved February 9, 2019 – via Twitter.
  23. ^ "X-Plane 11.50 Public Beta 1: Vulkan and Metal Are Here". X-Plane Developer. April 2, 2020. Retrieved April 2, 2020.

Read other articles:

Lambang Negara PalestinaVersionsWarna abu-abuDetailPemangkuNegara PalestinaPenopangElang SalahuddinMottoفلسطينPalestina Lambang Organisasi Pembebasan Palestina (PLO)DetailMottoOrganisasi Pembebasan Palestina (atas) Persatuan Nasional (bawah) Lambang Palestina dapat merujuk kepada lambang yang digunakan oleh Otoritas Nasional Palestina (PNA) atau Organisasi Pembebasan Palestina (PLO). Lambang negara Lambang ini memiliki dua versi yaitu versi pertama yang digunakan oleh Otoritas Nasional ...

 

 

آن بيترسون   معلومات شخصية الميلاد 16 يونيو 1947 (76 سنة)  كانزاس سيتي، ميزوري  مواطنة الولايات المتحدة  الحياة العملية المدرسة الأم جامعة ولاية أريزونا  المهنة غطاسة  الرياضة غطس  تعديل مصدري - تعديل   آن بيترسون (بالإنجليزية: Ann Peterson)‏ هي غطاسة أمريكية، ولدت...

 

 

Il revisionismo è una linea di pensiero o di condotta di chi sostiene la necessità di correggere opinioni e tesi correnti o dominanti in campo ideologico, politico o storico ritenute scorrette sulla base di una revisione documentale. Indice 1 Esempi di revisionismi 2 Revisionismo della prassi marxista 3 Revisionismo storiografico 4 Negazionismo dell'olocausto 5 Altri esempi di negazionismie loro rapporto col revisionismo storiografico 6 Politica revisionistica 7 Note 8 Bibliografia 9 Voci c...

يفتقر محتوى هذه المقالة إلى الاستشهاد بمصادر. فضلاً، ساهم في تطوير هذه المقالة من خلال إضافة مصادر موثوق بها. أي معلومات غير موثقة يمكن التشكيك بها وإزالتها. (نوفمبر 2019) هذه المقالة تحتاج للمزيد من الوصلات للمقالات الأخرى للمساعدة في ترابط مقالات الموسوعة. فضلًا ساعد في تحسي

 

 

Опис файлу Опис укр. Братська могила воїнів Радянської Армії, які загинули в роки Великої Вітчизняної війни Це фотографія пам'ятки культурної спадщини в Україні. Номер у каталозі ГО «Вікімедіа Україна»: 32-212-0049 Джерело Власна робота Час створення 2014-06-22 11:33:08 Автор зображе...

 

 

كلاكسار كلاك سر  - قرية -  تقسيم إداري البلد إيران  [1] الدولة  إيران المحافظة مازندران المقاطعة مقاطعة آمل الناحية الناحية المركزية القسم الريفي قسم بايين خيابان ليتكوة الريفي إحداثيات 36°29′46″N 52°20′38″E / 36.49611°N 52.34389°E / 36.49611; 52.34389 السكان التع...

Australian politician James ArnoldSenator for New South WalesIn office1 July 1941 – 30 June 1965 Personal detailsBorn(1902-04-12)12 April 1902Wallaroo, South AustraliaDied29 October 1967(1967-10-29) (aged 65)Newcastle, New South Wales, AustraliaPolitical partyAustralian Labor PartyOccupationRailway worker, accountant James Jarvist Arnold (12 April 1902 – 29 October 1967) was an Australian politician. He was an Australian Labor Party member of the Australian Senate for Ne...

 

 

14th-century German noble This article does not cite any sources. Please help improve this article by adding citations to reliable sources. Unsourced material may be challenged and removed.Find sources: Walram IV, Count of Nassau-Idstein – news · newspapers · books · scholar · JSTOR (September 2021) (Learn how and when to remove this template message) Walram IV, Count of Nassau-IdsteinBorn1354Died(1393-11-07)7 November 1393Noble familyHouse of NassauSp...

 

 

American preacher (1783–1827) For the American Esperantist, writer and translator, see Edward Saxton Payson. Edward Payson. Edward Payson (July 25, 1783 – October 22, 1827) was an American Congregational preacher. He was born at Rindge, New Hampshire, where his father, Rev. Seth Payson (1758–1820), was pastor of the Congregational Church. His uncle, Phillips Payson (1736–1801), pastor of a church in Chelsea, Massachusetts, was a physicist and astronomer.[1] Edward...

Species of mammal Malayan shrew Conservation status Least Concern (IUCN 3.1)[1] Scientific classification Domain: Eukaryota Kingdom: Animalia Phylum: Chordata Class: Mammalia Order: Eulipotyphla Family: Soricidae Genus: Crocidura Species: C. malayana Binomial name Crocidura malayanaRobinson & Kloss, 1911 Malayan shrew range The Malayan shrew (Crocidura malayana) is a species of mammal in the family Soricidae. It is endemic to Malaysia. References ^ Cassola, F. (2016). Cr...

 

 

Indoor arena in Grand Rapids, Michigan Van Andel ArenaThe Freezer on FultonAddress130 West Fulton StreetLocationGrand Rapids, MichiganCoordinates42°57′44″N 85°40′19″W / 42.96222°N 85.67194°W / 42.96222; -85.67194OwnerGrand Rapids-Kent County Convention/Arena AuthorityOperatorSMGCapacityIce Hockey: 10,834Arena Football: 10,618Basketball: 11,500Concerts: 13,184ConstructionBroke groundFebruary 8, 1995[1]OpenedOctober 8, 1996Construction cost$78 million...

 

 

1949 Philippine House of Representatives elections ← 1946 November 8, 1949 1953 → All 100 seats in the House of Representatives of the Philippines51 seats needed for a majority   First party Second party Third party   LQ LA Leader Eugenio Pérez Jose Laurel Jr. Party Liberal Nacionalista Liberal Leader's seat Pangasinan–2nd Batangas–3rd Last election 49 seats, 38.89% 35 seats, 45.78% 49 seats, 38.89% Seats before 49A 35 49A Seats won 66 ...

1989 film by Cedric Sundstrom American Ninja 3: Blood HuntTheatrical release posterDirected byCedric SundstromScreenplay byCedric Sundstorm[1]Story byGary Conway[1]Produced byHarry Alan Towers[1]Starring Steve James Michele Chan Calvin Jung Marjoe Gortner David Bradley CinematographyGeorge Bartels[1]Edited by Michael J. Duthie Bernard Weiser[1] Music byGeorge S. Clinton[1]ProductioncompanyBreton Film Productions Ltd.[1]Distributed byCann...

 

 

Honorio III Detalle del Sermón ante Honorio III de Giotto, c. 1297/1300 (Basílica de San Francisco, Asís) Papa de la Iglesia católica 18 de julio de 1216-18 de marzo de 1227Predecesor Inocencio IIISucesor Gregorio IXInformación religiosaOrdenación episcopal 24 de julio de 1216 por Ugolino de SegniProclamación cardenalicia 4 de marzo de 1193 por Celestino IIIInformación personalNombre Cencio SavelliNacimiento c. 1148Roma,  Estados PontificiosFallecimiento 18 de marzo d...

 

 

UK service revolver from 1887 to 1970 Webley Revolver A Webley Mk. VI top-break revolver.TypeService revolverPlace of originUnited KingdomService historyIn service1887–1970Used bySee UsersWarsSecond Boer WarBoxer RebellionWorld War IEaster RisingIrish War of IndependenceIrish Civil WarWorld War IINorthern CampaignIndonesian National RevolutionMalayan EmergencyFirst Indochina WarKorean WarVietnam WarBritish colonial conflictsBorder CampaignThe TroublesProduction historyDe...

Suburb of Dublin, Ireland Suburb in County Dublin, Leinster, IrelandPerrystown Baile PheireSuburbShopping centre in PerrystownPerrystownLocation in IrelandShow map of IrelandPerrystownPerrystown (Dublin)Show map of DublinCoordinates: 53°18′36″N 6°18′50″W / 53.310°N 6.314°W / 53.310; -6.314CountryIrelandProvinceLeinsterCountyCounty DublinArea[1] • Total0.36 km2 (0.14 sq mi)Time zoneUTC+0 (WET) • Summer (DST)UTC-...

 

 

Phnom Penh City BusOverviewNative nameសេវាដឹកជញ្ជូនសាធារណៈរថយន្តក្រុងរាជធានីភ្នំពេញLocalePhnom Penh, CambodiaTransit typeBus rapid transitNumber of lines17 in operation(18 planned)[1]Number of stations622Daily ridership20 000OperationBegan operationSeptember 2014Operator(s)Phnom Penh City Bus Authority -Thai Duong Airbus Limousine (រដ្ឋាករស្វយ័តដឹកជញ្ជូ...

 

 

Residential in Amman, JordanThe Heights Tower AmmanThe Heights to the right and Clemenceau Medical Center to the left in Abdali ProjectGeneral informationTypeResidential[1]LocationAmman, JordanCoordinates31°57′47.8″N 35°54′34″E / 31.963278°N 35.90944°E / 31.963278; 35.90944Construction started2010CompletedCompletedTechnical detailsFloor count38 floors [2] The Heights Tower is a 125 metres tall up-scale residential tower,[3] located i...

Branch of the East Coast Main Line Hertford loop lineGreat Northern Class 717 at Gordon HillOverviewStatusOperationalOwnerNetwork RailLocaleGreater LondonEast of EnglandTerminiLondon MoorgateStevenageStations11ServiceTypeHeavy railSystemNational RailServices1Operator(s)Great NorthernDepot(s)Hornsey EMUDRolling stockClass 717 Desiro CityHistoryOpened1871—1924TechnicalLine length24 mi (39 km)Number of tracks2Track gauge1,435 mm (4 ft 8+1⁄2 in) standard ...

 

 

Sydney Storm InformationLeagueAustralian Baseball League (1989-1999)LocationSydneyBallparkSydney Showground (Sydney Olympic Park)Founded1992-93Folded1999Nickname(s)StormLeague championships1995-96Former name(s)Sydney Blues (92-96)Former ballparksConcord Oval (as Storm) Parramatta Stadium, Sydney Showground (Moore Park) (as Blues)ColoursBlack, Purple and White1998-99??-?? (?)Lost championship series to Gold Coast CougarsUniforms Storm Home Blues Home The Sydney Storm, originally Sydney Blues w...

 

 

Strategi Solo vs Squad di Free Fire: Cara Menang Mudah!