Metal (API) - Metal (API)
![]() | |
![]() Apple použil mobilní telefon multiplayerová online bitevní aréna hra Zpupnost předvést grafické schopnosti Metal na Iphone 6 událost oznámení ze září 2014[1] | |
Vývojáři | Apple Inc. |
---|---|
První vydání | Červen 2014 |
Stabilní uvolnění | 3 / červen 2019 |
Napsáno | Stínovací jazyk: C ++ 14, Runtime / API: Cíl-C |
Operační systém | iOS, iPadOS, Operační Systém Mac, tvOS |
Typ | 3D grafika a výpočet API |
Licence | proprietární |
webová stránka | vývojář |
Kov je nízkoúrovňová, nízká režie hardwarově akcelerováno 3D grafika a vypočítat shader API vytvořil Jablko. Debutovalo dovnitř iOS 8. Metal kombinuje funkce podobné OpenGL a OpenCL v jednom API. Jeho cílem je zlepšit výkon tím, že aplikacím bude poskytován nízkoúrovňový přístup k hardwaru GPU iOS, iPadOS, Operační Systém Mac, a tvOS. Lze jej porovnat s nízkoúrovňovými API na jiných platformy jako Vulkan a DirectX 12.
Metal je objektově orientovaný API, které lze vyvolat pomocí Rychlý nebo Cíl-C programovací jazyky. Plné provedení GPU je řízeno jazykem Metal Shading Language. Podle propagačních materiálů společnosti Apple: „MSL [Jazyk stínování kovů] je jediný jednotný jazyk, který umožňuje těsnější integraci mezi grafickými a výpočetními programy. Protože MSL je založen na C ++, zjistíte, že je známý a snadno použitelný. “[2]
Funkce
Metal si klade za cíl poskytnout GPU přístup s nízkou režií. Příkazy jsou předem kódovány a poté odeslány do GPU k asynchronnímu provedení. Aplikace kontroluje, kdy čekat na dokončení spuštění, což vývojářům aplikací umožňuje zvýšit propustnost kódováním dalších příkazů, zatímco jsou příkazy prováděny na GPU, nebo šetřit energii explicitně čekáním na dokončení GPU. Kromě toho je kódování příkazů nezávislé na CPU, takže aplikace mohou kódovat příkazy do každého vlákna CPU samostatně. Nakonec jsou stavy vykreslení předem předem vypočítány, což umožňuje ovladači GPU předem vědět, jak nakonfigurovat a optimalizovat potrubí vykreslení před spuštěním příkazu. [3]
Metal zlepšuje možnosti GPGPU programování pomocí vypočítat shadery. Metal používá specifické stínovací jazyk na základě C ++ 14; to je implementováno pomocí Zvonit a LLVM.[4]
Metal nabízí vývojářům aplikací flexibilitu, kde mohou vytvářet zdroje Metal (vyrovnávací paměti, textury atd.). Prostředky lze přidělit na CPU, GPU nebo na obou a poskytuje prostředky k aktualizaci a synchronizaci přidělených prostředků. Metal může také vynutit stav prostředku, když je v průběhu životnosti kodéru příkazu. [5] [6]
V systému macOS může Metal poskytnout vývojářům aplikací uvážení při určování, které GPU provést. Vývojáři aplikací si mohou vybrat mezi nízkoenergetickým integrovaným GPU procesoru, diskrétním GPU (u určitých MacBooků a Maců) nebo externím GPU připojeným přes Thunderbolt. Vývojáři aplikací také upřednostňují, jak se příkazy GPU provádějí na kterých GPU, a poskytuje návrh, na kterém GPU je nejúčinnější provést určitý příkaz (příkazy k vykreslení scény lze provést pomocí samostatného GPU, zatímco post-processing a display lze provést integrovaný GPU). [7]
Metal Performance Shaders
Metal Performance Shaders je vysoce optimalizovaná knihovna grafických funkcí, která může vývojářům aplikací pomoci dosáhnout skvělého výkonu a současně snížit práci na zachování funkcí specifických pro rodinu GPU. [8] Poskytuje funkce jako:
- Algoritmy filtrování obrazu
- Zpracování neuronové sítě
- Pokročilé matematické operace
- Sledování paprsku
Dějiny
Metal je k dispozici od 2. června 2014 Zařízení iOS poháněno Apple A7 nebo později,[9] a od 8. června 2015 dále Macy (Modely 2012 nebo novější) běží OS X El Capitan.[10]
5. června 2017 v WWDC, Apple oznámil druhou verzi Metal, kterou bude podporovat macOS High Sierra, iOS 11 a tvOS 11. Metal 2 není samostatné API od Metal a je podporován stejným hardwarem. Metal 2 umožňuje efektivnější profilování a ladění v Xcode zrychlil strojové učení, dolní procesor pracovní zátěž, podpora pro virtuální realita o systému macOS a zvláštnostech systému Apple A11 Zejména GPU.[11]
V roce 2020 WWDC, Apple oznámil migraci Macu na Apple Silicon. Macy využívající Apple Silicon budou obsahovat Apple GPU se sadou funkcí kombinující to, co bylo dříve k dispozici pro MacOS a iOS, a budou moci využívat funkce šité na míru odložené vykreslování založené na dlaždicích (TBDR) architektura GPU Apple.[12]
Podporované GPU
V iOS, tvOS a macOS podporuje Metal design navržený společností Apple SoC z Apple A7 nebo novější. V systému macOS podporuje také Metal Grafika Intel HD a Iris ze série HD 4000 nebo novější, AMD GCN, a AMD RDNA GPU. GPU NVIDIA jsou podporovány, ale kovové ovladače pro novější zařízení (řady 10 a novější) nejsou od macOS Mojave k dispozici. [13]
Přijetí
Podle společnosti Apple více než 148 000 aplikací používá Metal přímo a 1,7 milionu jej používá na vysoké úrovni rámce od června 2017.[14] hry pro MacOS využívající Metal pro vykreslování jsou uvedeny níže.
Titul | Vývojář (verze pro macOS) | Herní engine | Datum vydání (macOS) | Poznámky |
---|---|---|---|---|
Civilizace VI | Aspyr | 24. října 2016 | Kovová podpora od 5. dubna 2019 Chyba: Režim v okně používá pouze Metal. Může nebo nemusí být opraveno v budoucnu | |
Batman: Arkham City | Feral Interactive | 18. října 2013 | Kovová podpora od 21. února 2019 s v1.2 | |
Dota 2 | Ventil | Zdroj 2 | 18. července 2013 | Použití MoltenVK podporovat Metal přes Vulkan bylo oznámeno dne 26. února 2018.[15] Možnost použít toto byla k dispozici na 31. května 2018.[16] |
Zemětřesení 2 | id Software | Motor Quake II | 9. února 2019 | Originální hra pomocí MoltenVK podporovat Metal přes Vulkan byl propuštěn pro veřejnost jako vkQuake2.[17] |
Tomb Raider | Feral Interactive | 17. ledna 2014 | Kovová podpora s v1.2 v červenci 2019 | |
Rise of the Tomb Raider | Feral Interactive | Základový motor | 12. dubna 2018 | Podpora kovových zásilek při spuštění |
Shadow of the Tomb Raider | Feral Interactive | Foundation Engine | 2019 | Podpora kovových zásilek při spuštění |
F1 2016 | Feral Interactive | EGO Engine 4.0 | 6. dubna 2017 | Podpora kovových zásilek při spuštění |
Life is Strange 2 | Feral Interactive | Unreal Engine 4 | 2019 | Podpora kovových zásilek při spuštění |
Life is Strange: Before the Storm | Feral Interactive | Unity Engine | 13. září 2018 | Podpora kovových zásilek při spuštění |
Divinity: Original Sin 2 | Elverils | Divinity Engine 2 | 31. ledna 2019 | Podpora kovových zásilek při spuštění |
Společnost hrdinů 2 | Feral Interactive | Essence Engine 3 | 21. ledna 2015 | Kovová podpora od 19. října 2018 |
Hitman | Feral Interactive | Podpora kovových zásilek při spuštění Není k dispozici v Mac App Store. Pouze obchody Steam a Feral. | ||
Sid Meier's Railroads! | Feral Interactive | Gamebryo | 1. listopadu 2012 | Kovová podpora od 18. prosince 2018 |
Warhammer 40 000: Dawn of War III | Feral Interactive | Essence Engine 4 | 9. června 2017 | Podpora kovových zásilek při spuštění |
Total War: Warhammer | Feral Interactive | Total War Engine 3 | 19. dubna 2017 | Podpora kovových zásilek při spuštění |
Total War: Warhammer 2 | Feral Interactive | Total War Engine 3 | 20. listopadu 2018 | Podpora kovových zásilek při spuštění |
Total War Saga: Thrones of Britannia | Feral Interactive | Total War Engine 3 | 24. května 2018 | Podpora kovových zásilek při spuštění |
Medieval II: Total War | Feral Interactive | Total War Engine 2 | 17. prosince 2015 | Kovová podpora od 25. října 2018 |
Empire: Total War | Feral Interactive | 4. března 2009 | Kovová podpora od 16. prosince 2019 | |
Napoleon: Total War | Feral Interactive | 2. července 2013 | Kovová podpora od 25. října 2019 s v1.2 | |
Total War: Shogun 2 | Feral Interactive | 31. července 2014 | Kovová podpora od 4. října 2019 | |
Total War: Shogun 2: Fall of the Samurai | Feral Interactive | 18. prosince 2014 | Kovová podpora od 4. října 2019 | |
Bioshock Remastered | Feral Interactive | Unreal Engine 2.5 | 22. srpna 2017 | Podpora kovových zásilek při spuštění |
F1 2017 | Feral Interactive | EGO Engine 4.0 | 25. srpna 2017 | Podpora kovových zásilek při spuštění |
Deus Ex: Rozdělení lidstva | Feral Interactive | Dawn Engine | 12. prosince 2017 | Podpora kovových zásilek při spuštění |
DiRT Rally | Feral Interactive | EGO Engine 2.5 | 16. listopadu 2017 | Podpora kovových zásilek při spuštění |
Ballistic Overkill | Studio hry Aquiris | Unity Engine 5 | 28. března 2017 | Podpora kovových zásilek při spuštění |
BattleTech | Harebrained Schémata | Unity Engine 5 | 24. dubna 2018 | Podpora kovových zásilek při spuštění |
Mafie III | Aspyr Media | Illusion Engine | 11. května 2017 | Podpora kovových zásilek při spuštění |
Svět války | Blizzard Entertainment | WoW Engine | 23. listopadu 2004 | Kovová podpora od srpna 2016 |
Starcraft | Blizzard Entertainment | Kovová podpora od té doby 2. července 2020 s v.1.23.5 | ||
StarCraft II | Blizzard Entertainment | Motor SC2 | 27. července 2010 | Kovová podpora v beta verzi od 24. ledna 2017 |
Heroes of the Storm | Blizzard Entertainment | Motor SC2 | 2. června 2015 | Kovová podpora v beta verzi od té doby 24. ledna 2017, dočasně odstraněn na 29. listopadu 2017 |
Fortnite | Epické hry | Unreal Engine 4 | 25. července 2017 | Podpora kovových zásilek při spuštění |
Únos | Azurové světy | Unreal Engine 4 | 29. března 2017 | Podpora kovových zásilek při spuštění |
Everspace | Rockfish | Unreal Engine 4 | 26. května 2017 | Podpora kovových zásilek při spuštění |
Ark: Přežití se vyvinulo | Studio Wildcard | Unreal Engine 4 | 29. srpna 2017 | Podpora kovových zásilek při spuštění |
Pozorovatel | Bloober Team | Unreal Engine 4 | 24. října 2017 | Podpora kovových zásilek při spuštění |
Neskutečný turnaj | Epické hry | Unreal Engine 4 | TBA | Kovová podpora od ledna 2017 |
Refunct | Dominique Grieshofer | Unreal Engine 4 | 5. září 2016 | Podpora kovových zásilek při spuštění |
Města: Skylines | Paradox Interactive | Unity Engine 5 | 10. března 2015 | Kovová podpora od 18. května 2017 |
Vesmír Sandbox 2 | Obří armáda | Unity Engine 5 | TBA | Kovová podpora v beta verzi od června 2017 |
Válečná bouře | Gaijin Entertainment | Dagor Engine 4 | 1. listopadu 2012 | Přidána kovová podpora 24. května 2017, odstraněn někdy v roce 2018 a znovu zaveden 27. srpna 2020 |
Svědek | Thekla, Inc. | Thekla Engine | 8. března 2017 | Podpora kovových zásilek při spuštění |
Světová série Micro Machines | Virtuální programování | Unity Engine 5 | 30. června 2017 | Podpora kovových zásilek při spuštění |
Guardians of the Galaxy: The Telltale Series | Telltale Games | Telltale Tool | 18. dubna 2017 | Podpora kovových zásilek při spuštění |
Batman: Nepřítel uvnitř | Telltale Games | Telltale Tool | 8. srpna 2017 | Podpora kovových zásilek při spuštění |
Minecraft: Story Mode - sezóna dva | Telltale Games | Telltale Tool | 11. července 2017 | Podpora kovových zásilek při spuštění |
ARMA 3 | Virtuální programování | Skutečná virtuálnost | TBA | Kovová podpora v beta verzi od té doby 17. září 2017 |
MXGP3 | Virtuální programování | Unreal Engine 4 | 23. listopadu 2018 | Podpora kovových zásilek při spuštění |
Štěrk | Virtuální programování | Unreal Engine 4 | 20. ledna 2019 | Podpora kovových zásilek při spuštění |
X-Plane 11 | Laminární výzkum | Vlastní motor | 30. května 2017 | Kovová podpora ve veřejné beta verzi. 2. dubna 2020[18] |
Ostroh | Double Fine Productions | Buddha Engine | 18. listopadu 2016 | Podpora kovových zásilek při spuštění |
The Sims 4 | Maxis | Vlastní motor | 17. února 2015 | Přidána kovová podpora 12. listopadu 2019 |
Viz také
- Direct3D – DirectX 12 zavádí nízkoúrovňové API
- Plášť - nízkoúrovňové API od AMD
- Vulkan - nástupce OpenGL s nízkou režií
- MoltenVK - knihovna kompatibility softwaru pro spuštění softwaru Vulkan nad rozhraním Metal API
- WebGPU
Reference
- ^ McWhertor, Michael (9. září 2014). „Toto je hra, kterou Apple předváděl iPhone 6“. Polygon. Vox Media. Archivováno z původního dne 10. září 2014. Citováno 9. září 2014.
- ^ Apple Inc. „Specifikace jazyka stínování kovů“ (PDF).
- ^ „Nastavení struktury příkazů“. Apple Inc.
- ^ "Jazykový průvodce stínováním kovů". 8. září 2014. Citováno 10. září 2014.
- ^ Apple Inc. „Nastavení režimu úložiště prostředků“.
- ^ „Synchronizace spravovaného zdroje“. Apple Inc.
- ^ „Výběr GPU v systému macOS“. Apple Inc.
- ^ "Metal Performance Shaders".
- ^ Machkovech, Same (2. června 2014). „Apple s hraním ztěžuje, oznamuje vývojovou platformu Metal“. Ars Technica. Condé Nast.
- ^ Smith, Colin; Meza, Starlayne (8. června 2015). „Apple oznamuje OS X El Capitan s vylepšeným zážitkem a vylepšeným výkonem“. Redakce. San Francisco: Jablko.
- ^ „Archivovaná kopie domovské stránky Metal, listopad 2017“. Vývojář Apple. Jablko. 20. listopadu 2017. Archivovány od originálu 20. listopadu 2017 - prostřednictvím Wayback Machine.CS1 maint: BOT: stav původní adresy URL neznámý (odkaz)
- ^ „Přineste svou kovovou aplikaci na Apple Silicon Mac“. developer.apple.com. Citováno 13. července 2020.
- ^ Chiappetta, Marco (11. prosince 2018). „Apple se k MacOS Mojave staví zády k zákazníkům a NVIDIA“.
- ^ Apple Inc. „Platformy WWDC 2017 Stav Unie“.
- ^ Nestor, Marius. „Podpora společnosti Vulkan konečně přichází do systému Apple MacOS a iOS, aby hry běžely rychleji“. softpedie. Citováno 28. února 2018.
- ^ Larabel, Michael (1. června 2018). „Počáteční vulkánský výkon v systému macOS s Dota 2 vypadá velmi dobře“. Phoronix. Citováno 5. června 2018.
- ^ Kondrak, Krzysztof [@k_kondrak] (9. ledna 2019). „vkQuake2 získává podporu pro MacOS“ (Tweet). Citováno 9. února 2019 - přes Cvrlikání.
- ^ „X-Plane 11.50 Public Beta 1: Vulkan and Metal are Here“. Vývojář X-Plane. 2. dubna 2020. Citováno 2. dubna 2020.
externí odkazy
- Metal pro vývojáře
- Průvodce programováním kovů (předběžný)
- Ukázka WWDC14; rozšířená verze
- Nainstalujte si macOS 10.14 Mojave na Mac Pro (polovina roku 2010) a Mac Pro (polovina roku 2012) - Článek Apple vysvětlující, jaké GPU jsou kompatibilní s Apple Metal API v operačním systému Mac OS 10.14 (Mojave)