Fém (API) - Metal (API)

Fém
Metal 2 Logo.png
Vainglory Halcyon Fold térkép.tif
Apple használt mobil multiplayer online arénába játék hencegés bizonyítani Metal grafikus képességeit a iPhone 6 „s szeptember 2014 bejelentés esetén
Fejlesztő (k) Apple Inc.
Első kiadás 2014. június ; 7 évvel ezelőtt ( 2014-06 )
Stabil kiadás
2019. június 3 . 2 évvel ezelőtt ( 2019-06 )
Beírva Árnyékoló nyelv: C ++ 14 , Futásidejű / API: C-objektív
Operációs rendszer iOS , iPadOS , macOS , tvOS
típus 3D grafika és számítási API
Engedély szabadalmazott
Weboldal fejlesztő .apple .com / metal /

A Metal egy alacsony szintű, alacsony rezsijű hardveres gyorsítású 3D - s grafikai és számítási árnyékoló API, amelyet az Apple hozott létre . Az iOS 8-ban debütált . A Metal egy API-ban egyesíti az OpenGL-hez és az OpenCL-hez hasonló funkciókat . Célja a teljesítmény javítása azáltal, hogy alacsony szintű hozzáférést kínál a GPU hardveréhez az iOS , iPadOS , macOS és tvOS alkalmazásokhoz . Összehasonlítható más platformok, például a Vulkan és a DirectX 12 alacsony szintű API -ival .

A Metal egy objektumorientált API, amely meghívható a Swift vagy az Objective-C programozási nyelvek segítségével . A teljes GPU végrehajtását a Metal Shading Language vezérli. Az Apple promóciós anyagai szerint: "Az MSL [Metal Shading Language] egy egységes nyelv, amely szorosabb integrációt tesz lehetővé a grafikus és a számítási programok között. Mivel az MSL C ++ alapú, ismerősnek és könnyen használhatónak találja."

Jellemzők

A Metal célja, hogy alacsony rezsi hozzáférést biztosítson a GPU-hoz. A parancsokat előzetesen kódolják, majd aszinkron végrehajtás céljából elküldik a GPU-nak. Az alkalmazás vezérli, hogy mikor kell megvárni a végrehajtás befejezését, ezáltal lehetővé téve az alkalmazásfejlesztők számára, hogy más parancsok kódolásával növeljék az áteresztőképességet, miközben a parancsokat a GPU-n hajtják végre, vagy energiát takarítanak meg azzal, hogy kifejezetten megvárják a GPU végrehajtásának befejezését. Ezenkívül a parancskódolás CPU-független, így az alkalmazások függetlenül kódolhatják a parancsokat az egyes CPU-szálakhoz. Végül a render állapotokat előzetesen előre kiszámolják, így a GPU illesztőprogram előre tudhatja a renderelési folyamat konfigurálását és optimalizálását a parancs végrehajtása előtt.

A Metal a számítási árnyékolók használatával javítja a GPGPU programozás képességeit . A Metal egy speciális árnyékoló nyelvet használ, amely a Clang és az LLVM használatával valósul meg C ++ 14 alapján .

A Metal rugalmasságot kínál az alkalmazásfejlesztőknek a Metal erőforrások (pufferek, textúrák) létrehozásához. Az erőforrások eloszthatók a CPU-n, a GPU-n vagy mindkettőn, és lehetőséget nyújtanak a kiosztott erőforrások frissítésére és szinkronizálására. A Metal a parancskódolók élettartama alatt is kikényszerítheti az erőforrások állapotát.

A MacOS rendszeren a Metal lehetőséget adhat az alkalmazásfejlesztőknek, hogy meghatározzák, melyik GPU-t kell végrehajtani. Az alkalmazásfejlesztők választhatnak a CPU alacsony fogyasztású integrált GPU-ja, a különálló GPU (egyes MacBookok és Mac-ek esetében) vagy a Thunderbolton keresztül csatlakoztatott külső GPU között. Az alkalmazásfejlesztők azt is preferálják, hogy a GPU-parancsok mely GPU-kon kerülnek végrehajtásra, és javaslatot tesznek arra, hogy melyik GPU-n hajtsa végre egy bizonyos parancsot a leghatékonyabban (a jelenet megjelenítésére szolgáló parancsokat a diszkrét GPU hajthatja végre, míg az utómunkálatok és a megjelenítés elvégezhetők). az integrált GPU kezeli).

Metal Performance Shaders

A Metal Performance Shaders egy rendkívül optimalizált grafikus funkciók könyvtára, amely segíthet az alkalmazásfejlesztőknek nagy teljesítmény elérésében, ugyanakkor csökkentheti a GPU-családra jellemző funkciók fenntartásával kapcsolatos munkát. Olyan funkciókat biztosít, mint:

  • Képszűrő algoritmusok
  • Neurális hálózati feldolgozás
  • Haladó matematikai műveletek
  • sugárkövetés

Történelem

A Metal 2014. június 2. óta elérhető az Apple A7 vagy újabb verziójú iOS eszközökön , 2015. június 8. óta pedig az OS X El Capitan rendszert futtató Mac gépeken (2012-es vagy újabb modellek) .

2017. június 5-én a WWDC-n az Apple bejelentette a Metal második verzióját, amelyet a macOS High Sierra , az iOS 11 és a tvOS 11 támogat . A Metal 2 nem különálló API a Metal-tól, és ugyanaz a hardver támogatja. A Metal 2 hatékonyabb profilalkotást és hibakeresést tesz lehetővé az Xcode-ban , gyorsított gépi tanulást , alacsonyabb CPU- terhelést, a virtuális valóság támogatását a macOS-on, és különösen az Apple A11 GPU sajátosságait.

A 2020-as WWDC-n az Apple bejelentette a Mac migrációját az Apple szilíciumra . Az Apple szilíciumot használó Mac-ek olyan Apple GPU-kat fognak tartalmazni, amelyek olyan funkciókészlettel rendelkeznek, amely egyesíti a korábban a MacOS-on és az iOS-n elérhető elemeket, és képesek lesznek kihasználni az Apple GPU-k cserépalapú halasztott megjelenítési (TBDR) architektúrájára szabott funkciókat .

Támogatott GPU-k

IOS tvOS és MacOS, fém támogatja az Apple által tervezett SoCs a Apple A7 vagy újabb. A MacOS rendszeren a Metal támogatja a HD 4000 sorozatú vagy újabb, az AMD GCN és az AMD RDNA GPU Intel HD és Iris Graphics grafikáit is . Az NVIDIA GPU-k támogatottak, de az újabb eszközök (10-es és újabb széria) Metal illesztőprogramjai a macOS Mojave óta nem állnak rendelkezésre.

Örökbefogadás

Az Apple szerint 2017. júniusától kezdve több mint 148 000 alkalmazás használja közvetlenül a Metal-ot, és 1,7 millióan használják magas szintű keretrendszereken keresztül . Az alábbiakban felsoroljuk a Metal renderelésre használt macOS-játékokat .

Cím Fejlesztő (macOS verzió) Játékmotor MacOS megjelenési dátum (OpenGL) Fém alapú megjelenés dátuma Fém tartójegyek
Civilizáció VI Aspyr Media TAN 2016. október 24 Fémtámogatás 2019. április 5. óta
Batman: Arkham City Feral Interactive Unreal Engine 3 2013. október 18 Fémtámogatás 2019. február 21. óta v1.2 verzióval
DOTA 2 Szelep 2. forrás 2013. július 18 A MoltenVK- t 2018. február 26-án jelentették be . Ennek használatára 2018. május 31-én nyílt lehetőség .
Quake II id szoftver Quake II motor 2019. február 9 A MoltenVK- t használó portot kiadták vkQuake2 néven.
Tomb Raider Feral Interactive Alapozó motor 2014. január 17 Fém tartó v1.2-vel 2019 júliusában
A Tomb Raider felemelkedése Feral Interactive Alapozó motor 2018. április 12
A Tomb Raider árnyéka Feral Interactive Alapozó motor 2019
F1 2016 Feral Interactive EGO Engine 4.0 2017. április 6
Az élet furcsa 2 Feral Interactive Unreal Engine 4 2019
Az élet furcsa: A vihar előtt Feral Interactive Unity Engine 2018. szeptember 13
Istenség: Eredeti bűn II Elverils Istenségmotor 2 2019. január 31
Baldur kapuja III Elverils Divinity Engine 4.0 TBA Fémtámogatás a korai hozzáférésben 2020. október 6. óta
Hősök társasága 2 Feral Interactive Essence Engine 3 2015. január 21 Fémtámogatás 2018. október 19. óta
Bérgyilkos Feral Interactive Gleccser 2 2017. június 20
Sid Meier vasútja! Feral Interactive Gamebryo 2012. november 1 Fémtámogatás 2018. december 18. óta
Warhammer 40 000: Hajnal III Feral Interactive Essence Engine 4 2017. június 9
Total War: Rome Remastered Feral Interactive TW motor 2 2021. április 29
Teljes háború: Három királyság Feral Interactive TW motor 3 2019. május 23
Teljes háború: Warhammer Feral Interactive TW motor 3 2017. április 19
Teljes háború: Warhammer II Feral Interactive TW motor 3 2018. november 20
Total War Saga: Britannia trónjai Feral Interactive TW motor 3 2018. május 24
Total War Saga: Troy Feral Interactive TW motor 3 2020. augusztus 13
Középkori II: Teljes Háború Feral Interactive TW motor 2 2015. december 17 Fémtámogatás 2018. október 25. óta
Birodalom: totális háború Feral Interactive TW motor 3 2009. március 4 Fémtámogatás 2019. december 16. óta
Napóleon: Teljes háború Feral Interactive TW motor 3 2013. július 2 Fémtámogatás 2019. október 25. óta v1.2 verzióval
Teljes háború: Shogun 2 Feral Interactive TW motor 3 2014. július 31 Fémtámogatás 2019. október 4. óta
Total War: Shogun 2: A szamuráj bukása Feral Interactive TW motor 3 2014. december 18 Fémtámogatás 2019. október 4. óta
Bioshock Remastered Feral Interactive Unreal Engine 2.5 2017. augusztus 22
Bioshock 2 Remastered Feral Interactive Unreal Engine 2.5 2020. október 22
F1 2017 Feral Interactive EGO Engine 4.0 2017. augusztus 25
Deus Ex: Az emberiség megosztott Feral Interactive Hajnal motor 2017. december 12
DiRT Rally Feral Interactive EGO motor 2.5 2017. november 16
Ballisztikus Overkill Aquiris Game Studio 5. Unity Engine 2017. március 28
BattleTech Harebrained Schemes 5. Unity Engine 2018. április 24
Maffia III Aspyr Media Illusion Engine 2017. május 11
World of Warcraft Blizzard Entertainment WoW motor 2004. november 23 Fémtámogatás 2016 augusztusa óta
Starcraft Blizzard Entertainment Módosított Warcraft II motor 2001. november 20 Fémtámogatás 2020. július 2. óta v1.23.5 verzióval
StarCraft II Blizzard Entertainment SC2 motor 2010. július 27 Fém támogatás bétaverzióban 2017. január 24. óta
A vihar hősei Blizzard Entertainment SC2 motor 2015. június 2 Fémtámogatás bétaverzióban 2017. január 24. óta ( 2017. november 29-ig ideiglenesen megszűnt ?)
Fortnite Epikus játékok Unreal Engine 4 2017. július 25
Elrablás Cián világok Unreal Engine 4 2017. március 29
Everspace Rockfish Unreal Engine 4 2017. május 26
Ark: Survival Evolved Studio Wildcard Unreal Engine 4 2017. augusztus 29
Megfigyelő Bloober Team Unreal Engine 4 2017. október 24
Irreális torna Epikus játékok Unreal Engine 4 Image Törölve Fémtámogatás 2017 januárja óta
Refunct Dominique Grieshofer Unreal Engine 4 2016. szeptember 5
Városok: Skylines Paradox Interactive 5. Unity Engine 2015. március 10 Fémtámogatás 2017. május 18. óta
Universe Sandbox Óriáshadsereg 5. Unity Engine TBA Fém támogatás bétában 2017 júniusa óta
Viharháború Gaijin Entertainment Dagor motor 4 2012. november 1 Fémtámogatás hozzáadva 2017. május 24-én (2018-ban eltávolították és 2020. augusztus 27-én állították vissza )
A tanú Thekla, Inc. Thekla motor 2017. március 8
Micro Machines World Series Virtuális programozás 5. Unity Engine 2017. június 30
A Galaxis őrzői: A Telltale sorozat Telltale Games Árulkodó eszköz 2017. április 18
Batman: Az ellenség belül Telltale Games Árulkodó eszköz 2017. augusztus 8
Minecraft: Story Mode - 2. évad Telltale Games Árulkodó eszköz 2017. július 11
ARMA 3 Virtuális programozás Igazi virtualitás TBA Fém támogatás bétaverzióban 2017. szeptember 17. óta
MXGP3 Virtuális programozás Unreal Engine 4 2018. november 23
Kavics Virtuális programozás Unreal Engine 4 2019. január 20
X-sík 11 Lamináris kutatás Egyéni motor 2017. május 30 Fém támogatás bétaverzióban 2020. április 2. óta
Headlander Double Fine Productions Buddha motor 2016. november 18
A Sims 4 Maxis SmartSim 2015. február 17 Fémtámogatás hozzáadva 2019. november 12
Az Idős tekercs online Zenimax Online Studios Egyedi 2014. április 4 2018. október 22 Az OpenGL Renderert Vulkan váltotta fel a MoltenVK burkolón keresztül (a Vulkan API hívásokat fémre fordítja) a 4.2.5-ös javításban


Lásd még

  • Direct3D - A DirectX 12 alacsony szintű API-kat mutat be
  • Mantle - AMD alacsony szintű API
  • Vulkan - alacsony rezsi utód az OpenGL-hez
  • MoltenVK - szoftver kompatibilitási könyvtár a Vulkan szoftver futtatásához a Metal API tetején
  • WebGPU

Hivatkozások

Külső linkek