Fém (API) - Metal (API)
|
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 |
| Stabil kiadás | 2019. június 3
|
| 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ő |
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 |
|
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
- Fém fejlesztőknek
- Metal programozási útmutató (előzetes)
- WWDC14 bemutató ; bővített változat
- Telepítse a macOS 10.14 Mojave programot Mac Pro-ra (2010 közepe) és Mac Pro-re (2012 közepe) - Apple cikk, amely elmagyarázza, hogy milyen GPU-k kompatibilisek az Apple Metal API -ival Mac OS 10.14 (Mojave) operációs rendszeren.