Metal (API) - Metal (API)
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: Objective-C |
Operační systém | iOS , iPadOS , macOS , tvOS |
Typ | 3D grafika a výpočetní API |
Licence | proprietární |
webová stránka | vývojář |
Metal je nízkoúrovňové hardwarově akcelerované 3D grafické a výpočetní shaderové rozhraní API s nízkou režií vytvořené společností Apple . Debutoval v iOS 8 . Metal kombinuje funkce podobné OpenGL a OpenCL v jednom API. Je určen ke zlepšení výkonu tím, že nabízí nízkoúrovňový přístup k hardwaru GPU pro aplikace pro iOS , iPadOS , macOS a tvOS . Lze jej porovnat s nízkoúrovňovými API na jiných platformách, jako je Vulkan a DirectX 12 .
Metal je objektově orientované API, které lze vyvolat pomocí programovacích jazyků Swift nebo Objective-C . Plné provedení GPU je řízeno jazykem Metal Shading Language. Podle propagačních materiálů společnosti Apple: „MSL [Metal Shading Language] 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 ++, najdete jej známý a snadno použitelný.“
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 řídí, 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 výslovným č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.
Metal vylepšuje možnosti programování GPGPU pomocí výpočetních shaderů . Metal používá specifický stínovací jazyk založený na C ++ 14 implementovaný pomocí Clang a LLVM .
Metal nabízí vývojářům aplikací flexibilitu, kde vytvářet prostředky Metal (vyrovnávací paměti, textury). 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é vynucovat stav prostředku během životnosti kodéru příkazů.
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 integrovaným GPU CPU s nízkou spotřebou, diskrétním GPU (u některý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 integrovaný GPU).
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. Poskytuje funkce včetně:
- 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 na zařízeních se systémem iOS poháněných Apple A7 nebo novějším a od 8. června 2015 na počítačích Mac (modely 2012 nebo novější) s OS X El Capitan .
5. června 2017 na WWDC společnost Apple oznámila 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 , zrychlené strojové učení , nižší vytížení CPU , podporu virtuální reality v macOS a zejména specifika GPU Apple A11 .
Na WWDC v roce 2020 společnost Apple oznámila migraci Macu na Apple silikon . Macs pomocí Apple křemík se představí Apple GPU s sadu funkcí kombinující to, co bylo dříve k dispozici pro Mac OS a iOS, a budou moci využívat vlastností šité na míru založené odložené vykreslení dlaždic (TBDR) architektury Apple GPU.
Podporované GPU
V iOS, tvOS a macOS podporuje Metal SoC navržené společností Apple od Apple A7 nebo novějšího. Na macOS podporuje Metal také Intel HD a Iris Graphics z řady 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.
Přijetí
Podle společnosti Apple více než 148 000 aplikací používá Metal přímo a od června 2017 jej používá 1,7 milionu prostřednictvím rámců na vysoké úrovni . 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í pro MacOS (OpenGL) | Kovové datum vydání | Poznámky k kovové podpoře |
---|---|---|---|---|---|
Civilizace VI | Aspyr Media | VÍCE | 24. října 2016 | Kovová podpora od 5. dubna 2019 | |
Batman: Arkham City | Feral Interactive | Unreal Engine 3 | 18. října 2013 | Kovová podpora od 21. února 2019 s v1.2 | |
Dota 2 | Ventil | Zdroj 2 | 18. července 2013 | MoltenVK bylo oznámeno 26. února 2018 . Možnost používat toto byla zpřístupněna 31. května 2018 . | |
Quake II | id Software | Motor Quake II | 9. února 2019 | Port využívající MoltenVK byl vydán jako vkQuake2. | |
Tomb Raider | Feral Interactive | Foundation Engine | 17. ledna 2014 | Kovová podpora s v1.2 v červenci 2019 | |
Rise of the Tomb Raider | Feral Interactive | Foundation Engine | 12. dubna 2018 | ||
Shadow of the Tomb Raider | Feral Interactive | Foundation Engine | 2019 | ||
F1 2016 | Feral Interactive | EGO Engine 4.0 | 6. dubna 2017 | ||
Life Is Strange 2 | Feral Interactive | Unreal Engine 4 | 2019 | ||
Life Is Strange: Before the Storm | Feral Interactive | Unity Engine | 13. září 2018 | ||
Divinity: Original Sin II | Elverils | Divinity Engine 2 | 31. ledna 2019 | ||
Baldurova brána III | Elverils | Divinity Engine 4.0 | TBA | Kovová podpora v předčasném přístupu od 6. října 2020 | |
Společnost hrdinů 2 | Feral Interactive | Essence Engine 3 | 21. ledna 2015 | Kovová podpora od 19. října 2018 | |
Hitman | Feral Interactive | Ledovec 2 | 20. června 2017 | ||
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 | ||
Total War: Rome Remastered | Feral Interactive | TW Engine 2 | 29.dubna 2021 | ||
Total War: Three Kingdoms | Feral Interactive | TW Engine 3 | 23. května 2019 | ||
Total War: Warhammer | Feral Interactive | TW Engine 3 | 19. dubna 2017 | ||
Total War: Warhammer II | Feral Interactive | TW Engine 3 | 20. listopadu 2018 | ||
Total War Saga: Thrones of Britannia | Feral Interactive | TW Engine 3 | 24. května 2018 | ||
Total War Saga: Troy | Feral Interactive | TW Engine 3 | 13. srpna 2020 | ||
Medieval II: Total War | Feral Interactive | TW Engine 2 | 17. prosince 2015 | Kovová podpora od 25. října 2018 | |
Empire: Total War | Feral Interactive | TW Engine 3 | 4. března 2009 | Kovová podpora od 16. prosince 2019 | |
Napoleon: Total War | Feral Interactive | TW Engine 3 | 2. července 2013 | Kovová podpora od 25. října 2019 s v1.2 | |
Total War: Shogun 2 | Feral Interactive | TW Engine 3 | 31. července 2014 | Kovová podpora od 4. října 2019 | |
Total War: Shogun 2: Fall of the Samurai | Feral Interactive | TW Engine 3 | 18. prosince 2014 | Kovová podpora od 4. října 2019 | |
Bioshock Remastered | Feral Interactive | Unreal Engine 2.5 | 22. srpna 2017 | ||
Bioshock 2 Remastered | Feral Interactive | Unreal Engine 2.5 | 22. října 2020 | ||
F1 2017 | Feral Interactive | EGO Engine 4.0 | 25. srpna 2017 | ||
Deus Ex: Rozdělení lidstva | Feral Interactive | Dawn Engine | 12. prosince 2017 | ||
DiRT Rally | Feral Interactive | EGO Engine 2.5 | 16. listopadu 2017 | ||
Ballistic Overkill | Studio hry Aquiris | Unity Engine 5 | 28. března 2017 | ||
BattleTech | Harebrained Schémata | Unity Engine 5 | 24. dubna 2018 | ||
Mafie III | Aspyr Media | Illusion Engine | 11. května 2017 | ||
Svět války | Blizzard Entertainment | WoW Engine | 23. listopadu 2004 | Kovová podpora od srpna 2016 | |
Starcraft | Blizzard Entertainment | Upravený motor Warcraft II | 20. listopadu 2001 | Kovová podpora od 2. července 2020 s v1.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 24. ledna 2017 (dočasně odstraněna 29. listopadu 2017 do?) | |
Fortnite | Epické hry | Unreal Engine 4 | 25. července 2017 | ||
Únos | Azurové světy | Unreal Engine 4 | 29. března 2017 | ||
Everspace | Rockfish | Unreal Engine 4 | 26. května 2017 | ||
Ark: Přežití se vyvinulo | Studio Wildcard | Unreal Engine 4 | 29. srpna 2017 | ||
Pozorovatel | Bloober Team | Unreal Engine 4 | 24. října 2017 | ||
Neskutečný turnaj | Epické hry | Unreal Engine 4 | Zrušeno | Kovová podpora od ledna 2017 | |
Refunct | Dominique Grieshofer | Unreal Engine 4 | 5. září 2016 | ||
Města: Skylines | Paradox Interactive | Unity Engine 5 | 10. března 2015 | Kovová podpora od 18. května 2017 | |
Pískoviště vesmíru | 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ěna v? 2018 a znovu zavedena 27. srpna 2020 ) | |
Svědek | Thekla, Inc. | Thekla Engine | 8. března 2017 | ||
Světová série Micro Machines | Virtuální programování | Unity Engine 5 | 30. června 2017 | ||
Guardians of the Galaxy: The Telltale Series | Telltale Games | Telltale Tool | 18. dubna 2017 | ||
Batman: Nepřítel uvnitř | Telltale Games | Telltale Tool | 8. srpna 2017 | ||
Minecraft: Story Mode - sezóna dva | Telltale Games | Telltale Tool | 11. července 2017 | ||
ARMA 3 | Virtuální programování | Skutečná virtuálnost | TBA | Kovová podpora v beta verzi od 17. září 2017 | |
MXGP3 | Virtuální programování | Unreal Engine 4 | 23. listopadu 2018 | ||
Štěrk | Virtuální programování | Unreal Engine 4 | 20. ledna 2019 | ||
X-Plane 11 | Laminární výzkum | Vlastní motor | 30. května 2017 | Kovová podpora v beta verzi od 2. dubna 2020 | |
Ostroh | Double Fine Productions | Buddha Engine | 18. listopadu 2016 | ||
The Sims 4 | Maxis | SmartSim | 17. února 2015 | Přidána kovová podpora 12. listopadu 2019 | |
The Elder Scrolls Online | Zenimax Online Studios | Zvyk | 4. dubna 2014 | 22. října 2018 | OpenGL Renderer nahrazen Vulkanem přes MoltenVK wrapper (překládá volání Vulkan API na Metal) v patche 4.2.5 |
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
externí odkazy
- Metal pro vývojáře
- Průvodce programováním kovů (předběžný)
- Ukázka WWDC14 ; rozšířená verze
- Nainstalujte 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)