Metall (API) - Metal (API)

Metall
Metall 2 Logo.png
Apple 2014 yil sentyabr oyida bo'lib o'tgan iPhone 6 tadbirida Metallning grafik imkoniyatlarini namoyish qilish uchun mobil multiplayer onlayn jang maydonidagi Vainglory o'yinidan foydalangan [1].
Apple mobil telefondan foydalangan multiplayer onlayn jang maydonida o'yin Vainglory da Metalning grafik imkoniyatlarini namoyish etish iPhone 6 2014 yil sentyabr oyida e'lon qilingan tadbir[1]
Tuzuvchi (lar)Apple Inc.
Dastlabki chiqarilish2014 yil iyun; 6 yil oldin (2014-06)
Barqaror chiqish
3 / iyun 2019; 1 yil oldin (2019-06)
YozilganSoya tili: C ++ 14, Ish vaqti / API: Maqsad-C
Operatsion tizimiOS, iPadOS, macOS, tvOS
Turi3D grafika va hisoblash API
Litsenziyamulkiy
Veb-saytishlab chiquvchi.olma.com/ metall/

Metall bu past darajadagi, pastroq yuk apparat tezlashtirilgan 3D grafik va hisoblash shader API tomonidan yaratilgan olma. Bu birinchi marta chiqdi iOS 8. Metall o'xshash funktsiyalarni birlashtiradi OpenGL va OpenCL bitta API-da. Ilovalar uchun GPU apparatiga past darajadagi kirishni taklif qilish orqali ishlashni yaxshilashga mo'ljallangan iOS, iPadOS, macOS va tvOS. Buni boshqasida past darajadagi API bilan taqqoslash mumkin platformalar kabi Vulkan va DirectX 12.

Metall an ob'ektga yo'naltirilgan Yordamida ishlatilishi mumkin bo'lgan API Tez yoki Maqsad-C dasturlash tillari. To'liq ishlaydigan GPU bajarilishi Metal Shading Language orqali boshqariladi. Apple reklama materiallariga ko'ra: "MSL [Metall soyalash tili] - bu grafikalar va hisoblash dasturlari o'rtasida qattiqroq integratsiyalashuvga imkon beradigan yagona, birlashtirilgan til. MSL C ++ ga asoslanganligi sababli siz uni tanish va ishlatishda qulay deb topasiz. "[2]

Xususiyatlari

Metall GPU-ga past darajadagi ulanishni ta'minlashga qaratilgan. Buyruqlar oldindan kodlanadi va keyin GPUga mos kelmaydigan ijro uchun taqdim etiladi. Ilova qachon bajarilishini kutishini nazorat qiladi, shu sababli dastur ishlab chiquvchilariga boshqa buyruqlarni kodlash orqali GPU-da buyruqlar bajarilganda yoki GPU bajarilishini aniq kutib quvvatni tejashga imkon beradi. Bundan tashqari, buyruqlarni kodlash protsessordan mustaqil, shuning uchun dasturlar har bir protsessor oqimiga buyruqlarni mustaqil ravishda kodlashlari mumkin. Va nihoyat, render holatlari oldindan hisoblab chiqilgan bo'lib, GPU drayveri buyruq bajarilishidan oldin render quvurini qanday sozlashni va optimallashtirishni oldindan bilishga imkon beradi. [3]

Metallning imkoniyatlarini yaxshilaydi GPGPU yordamida dasturlash hisoblash shaderlari. Metall o'ziga xos xususiyatdan foydalanadi soya tili asoslangan C ++ 14; yordamida amalga oshiriladi Jiringlash va LLVM.[4]

Metall dastur ishlab chiquvchilariga metall manbalarini (buferlar, to'qimalar va boshqalar) yaratish uchun moslashuvchanlikni taklif etadi. Resurslar CPU, GPU yoki ikkalasida ham taqsimlanishi mumkin va ajratilgan resurslarni yangilash va sinxronlashtirish uchun qulayliklar yaratadi. Metall, shuningdek, buyruq kodlagichining ishlash muddati davomida resurs holatini bajarishi mumkin. [5] [6]

MacOS-da, Metal dastur ishlab chiquvchilariga qaysi GPU-ni bajarishni belgilash uchun ixtiyoriylikni taqdim etishi mumkin. Ilova ishlab chiquvchilari protsessorning kam quvvatli o'rnatilgan GPU, alohida GPU (ba'zi MacBooks va Mac-larda) yoki Thunderbolt orqali ulangan tashqi GPU o'rtasida tanlov qilishlari mumkin. Ilova ishlab chiquvchilari, shuningdek, GPU buyruqlari qaysi GPU-larda qanday bajarilishini afzal ko'rishadi va qaysi GPU-ning ma'lum bir buyruqni bajarish eng samarali ekanligi to'g'risida taklif berishadi (sahnani ko'rsatish buyruqlari diskret GPU tomonidan bajarilishi mumkin, keyin qayta ishlash va displeyda bo'lishi mumkin) o'rnatilgan GPU tomonidan boshqariladi). [7]

Metall ishlash shaderlari

Metal Performance Shaders - bu juda yaxshi optimallashtirilgan grafik funktsiyalar kutubxonasi, bu dastur ishlab chiquvchilariga katta ishlashga yordam beradi va shu bilan birga GPU oilasiga xos funktsiyalarni saqlash bo'yicha ishlarni kamaytiradi. [8] U quyidagi funktsiyalarni taqdim etadi:

  • Rasmlarni filtrlash algoritmlari
  • Neyron tarmoqqa ishlov berish
  • Oldindan matematik operatsiyalar
  • Rey kuzatuvi

Tarix

Metall 2014 yil 2 iyundan boshlab sotuvga chiqarildi iOS qurilmalari tomonidan qo'llab-quvvatlanadi Apple A7 yoki keyinroq,[9] va 2015 yil 8 iyundan boshlab Maclar (2012 yilgi yoki undan keyingi modellar) ishlaydi OS X El Capitan.[10]

2017 yil 5-iyun kuni WWDC, Apple tomonidan qo'llab-quvvatlanadigan metallning ikkinchi versiyasi e'lon qilindi macOS High Sierra, iOS 11 va tvOS 11. Metal 2 Metaldan alohida API emas va bir xil apparat tomonidan qo'llab-quvvatlanadi. Metall 2 yanada samarali ishlashga imkon beradi profil yaratish va disk raskadrovka yilda Xkod, tezlashtirilgan mashinada o'rganish, pastki Markaziy protsessor ish yuki, qo'llab-quvvatlash Virtual reallik macOS va xususiyatlari Apple A11 GPU, xususan.[11]

2020 yilda WWDC, Apple Mac-ga ko'chishini e'lon qildi Olma silikon. Apple Silicon-dan foydalanadigan Mac-larda ilgari macOS va iOS-da mavjud bo'lgan xususiyatlarni birlashtirgan xususiyatlar to'plami bilan Apple GPU-lari mavjud bo'lib, ular uchun moslashtirilgan xususiyatlardan foydalanishlari mumkin. kafelga asoslangan kechiktirilgan render Apple GPU-larining (TBDR) arxitekturasi.[12]

Qo'llab-quvvatlanadigan grafik protsessorlar

IOS, tvOS va macOS-da Metal Apple tomonidan ishlab chiqilgan SoClar dan Apple A7 yoki yangi. MacOS-da, Metal ham qo'llab-quvvatlaydi Intel HD va Iris Graphics HD 4000 seriyasidan yoki yangi versiyasidan, AMD GCN va AMD RDNA Grafik protsessorlar. NVIDIA GPU-lari qo'llab-quvvatlanadi, ammo macOS Mojave-dan beri yangi qurilmalar uchun metall drayverlar mavjud emas (10 seriyali va yangilari). [13]

Farzandlikka olish

Apple ma'lumotlariga ko'ra, 148 mingdan ortiq dastur Metalldan to'g'ridan-to'g'ri foydalanadi va 1,7 milliondan yuqori darajadagi foydalanadi ramkalar, 2017 yil iyun holatiga ko'ra.[14] uchun metall ishlatadigan macOS o'yinlari ko'rsatish quyida keltirilgan.

SarlavhaTuzuvchi (macOS versiyasi)O'yin mexanizmiChiqish sanasi (macOS)Izohlar
Sivilizatsiya VIAspyr24 oktyabr 2016 yil2019 yil 5 apreldan beri metallni qo'llab-quvvatlash

Xato: faqat Metall yordamida oynali rejim. Kelajakda tuzatilishi mumkin yoki bo'lmasligi mumkin

Batman: Arkham SitiFeral Interactive2013 yil 18 oktyabr2019 yil 21 fevraldan v1.2 bilan metallni qo'llab-quvvatlash
Dota 2VanaManba 22013 yil 18-iyulDan foydalanish MoltenVK orqali metallni qo'llab-quvvatlash Vulkan kuni e'lon qilindi 26 fevral 2018 yil.[15] Buni ishlatish opsiyasi yoqildi 31 may 2018 yil.[16]
Zilzila 2id dasturiQuake II dvigateli9-fevral, 2019 yilAsl o'yin MoltenVK orqali metallni qo'llab-quvvatlash Vulkan vkQuake2 nomi bilan ommaga e'lon qilindi.[17]
Qabrlar talon-taroj qiluvchisiFeral Interactive2014 yil 17-yanvar2019 yil iyul oyida v1.2 bilan metallni qo'llab-quvvatlash
Tomb Raiderning ko'tarilishiFeral InteractiveAsosiy vosita12 aprel 2018 yilIshga tushirishda metallni qo'llab-quvvatlash
Tomb Raider soyasiFeral InteractiveAsosiy vosita2019Ishga tushirishda metallni qo'llab-quvvatlash
F1 2016 yilFeral InteractiveEGO Engine 4.06 aprel 2017 yilIshga tushirishda metallni qo'llab-quvvatlash
Hayot g'alati 2Feral InteractiveHaqiqiy bo'lmagan vosita 42019Ishga tushirishda metallni qo'llab-quvvatlash
Hayot g'alati: bo'rondan oldinFeral InteractiveBirlik mexanizmi13 sentyabr 2018 yilIshga tushirishda metallni qo'llab-quvvatlash
Ilohiylik: asl gunoh 2ElverilsDivinity Engine 231 yanvar 2019 yilIshga tushirishda metallni qo'llab-quvvatlash
Heroes kompaniyasi 2Feral InteractiveEssence Engine 32015 yil 21-yanvarO'shandan beri metallni qo'llab-quvvatlash 19 oktyabr 2018 yil
XitmanFeral InteractiveIshga tushirish paytida metallni qo'llab-quvvatlash

Mac App Store-da mavjud emas. Faqat bug 'va yirtqich do'kon.

Sid Meierning temir yo'llari!Feral InteractiveGamebryo2012 yil 1-noyabrO'shandan beri metallni qo'llab-quvvatlash 18 dekabr 2018 yil
Warhammer 40,000: III urunning tongiFeral InteractiveEssence Engine 42017 yil 9-iyunIshga tushirishda metallni qo'llab-quvvatlash
Umumiy urush: WarhammerFeral InteractiveUmumiy urush mexanizmi 319 aprel 2017 yilIshga tushirishda metallni qo'llab-quvvatlash
Umumiy urush: Warhammer 2Feral InteractiveUmumiy urush mexanizmi 320 noyabr 2018 yilIshga tushirishda metallni qo'llab-quvvatlash
Total War Saga: Britannia taxtlariFeral InteractiveUmumiy urush mexanizmi 324 may 2018 yilIshga tushirishda metallni qo'llab-quvvatlash
O'rta asr II: Umumiy urushFeral InteractiveTotal War Engine 22015 yil 17-dekabr2018 yil 25 oktyabrdan beri metallni qo'llab-quvvatlash
Imperiya: Umumiy urushFeral Interactive2009 yil 4 mart2019 yil 16-dekabrdan beri metallni qo'llab-quvvatlash
Napoleon: Umumiy urushFeral Interactive2013 yil 2-iyul2019 yil 25 oktyabrdan v1.2 bilan metallni qo'llab-quvvatlash
Umumiy urush: Shogun 2Feral Interactive2014 yil 31-iyul2019 yil 4-oktabrdan beri metallni qo'llab-quvvatlash
Umumiy urush: Shogun 2: Samuraylarning qulashiFeral Interactive2014 yil 18-dekabr2019 yil 4-oktabrdan beri metallni qo'llab-quvvatlash
Bioshock RemasteredFeral InteractiveHaqiqiy bo'lmagan dvigatel 2.52017 yil 22-avgustIshga tushirishda metallni qo'llab-quvvatlash
F1 2017 yilFeral InteractiveEGO Engine 4.025 avgust 2017 yilIshga tushirishda metallni qo'llab-quvvatlash
Deus Ex: Insoniyat bo'linganFeral InteractiveDawn Engine2017 yil 12-dekabrIshga tushirishda metallni qo'llab-quvvatlash
DiRT mitingiFeral InteractiveEGO Engine 2.52017 yil 16-noyabrIshga tushirishda metallni qo'llab-quvvatlash
Ballistic OverkillAquiris Game StudioBirlik mexanizmi 528 mart 2017 yilIshga tushirishda metallni qo'llab-quvvatlash
BattleTechHarebrained sxemalarBirlik mexanizmi 524 aprel 2018 yilIshga tushirishda metallni qo'llab-quvvatlash
Mafiya IIIAspyr MediaIllusion Engine2017 yil 11-mayIshga tushirishda metallni qo'llab-quvvatlash
Warcraft dunyosiBlizzard EntertainmentWoW mexanizmi2004 yil 23-noyabr2016 yil avgustidan beri metallni qo'llab-quvvatlash
StarcraftBlizzard EntertainmentO'shandan beri metallni qo'llab-quvvatlash 2 iyul 2020 yil v.1.23.5 bilan
StarCraft IIBlizzard EntertainmentSC2 mexanizmi2010 yil 27 iyulO'shandan beri beta-versiyada metallni qo'llab-quvvatlash 2017 yil 24-yanvar
Dovul qahramonlariBlizzard EntertainmentSC2 mexanizmi2015 yil 2-iyunO'shandan beri beta-versiyada metallni qo'llab-quvvatlash 2017 yil 24-yanvar,

vaqtincha olib tashlandi kuni 2017 yil 29-noyabr

FortniteEpik o'yinlarHaqiqiy bo'lmagan vosita 42017 yil 25-iyulIshga tushirishda metallni qo'llab-quvvatlash
O'g'irlikCyan WorldsHaqiqiy bo'lmagan vosita 42017 yil 29 martIshga tushirishda metallni qo'llab-quvvatlash
EverspaceTosh baliqHaqiqiy bo'lmagan vosita 426 may 2017 yilIshga tushirishda metallni qo'llab-quvvatlash
Ark: Survival rivojlandiStudio WildcardHaqiqiy bo'lmagan vosita 42017 yil 29-avgustIshga tushirishda metallni qo'llab-quvvatlash
KuzatuvchiBloober jamoasiHaqiqiy bo'lmagan vosita 424 oktyabr 2017 yilIshga tushirish paytida metallni qo'llab-quvvatlash
Haqiqiy bo'lmagan musobaqaEpik o'yinlarHaqiqiy bo'lmagan vosita 4TBA2017 yil yanvaridan beri metallni qo'llab-quvvatlash
Qayta ishlashDominik GrizhoferHaqiqiy bo'lmagan vosita 42016 yil 5 sentyabrIshga tushirishda metallni qo'llab-quvvatlash
Shaharlar: SkylinesParadoks InteraktivBirlik mexanizmi 52015 yil 10 martO'shandan beri metallni qo'llab-quvvatlash 2017 yil 18-may
Universe Sandbox 2Gigant armiyaBirlik mexanizmi 5TBA2017 yil iyun oyidan beri beta-versiyada metallni qo'llab-quvvatlash
Urush momaqaldirog'iGaijin EntertainmentDagor Engine 42012 yil 1-noyabrMetallni qo'llab-quvvatlash qo'shildi 2017 yil 24-may, 2018 yilda bir nuqtada olib tashlangan va qayta tiklangan 27 avgust 2020
GuvohThekla, IncThekla Dvigatel8 mart 2017 yilIshga tushirishda metallni qo'llab-quvvatlash
Micro Machines World SeriesVirtual dasturlashBirlik mexanizmi 52017 yil 30-iyunIshga tushirishda metallni qo'llab-quvvatlash
Galaktika posbonlari: "Telltale" seriyasiTelltale GamesTelltale vositasi2017 yil 18-aprelIshga tushirish paytida metallni qo'llab-quvvatlash
Botmon: Ichidagi dushmanTelltale GamesTelltale vositasi2017 yil 8-avgustIshga tushirishda metallni qo'llab-quvvatlash
Minecraft: Hikoya rejimi - Ikkinchi faslTelltale GamesTelltale vositasi2017 yil 11-iyulIshga tushirishda metallni qo'llab-quvvatlash
ARMA 3Virtual dasturlashHaqiqiy virtuallikTBAO'shandan beri beta-versiyada metallni qo'llab-quvvatlash 17 sentyabr 2017 yil
MXGP3Virtual dasturlashHaqiqiy bo'lmagan vosita 423 noyabr 2018 yilIshga tushirishda metallni qo'llab-quvvatlash
Shag'alVirtual dasturlashHaqiqiy bo'lmagan vosita 420 yanvar 2019 yilIshga tushirishda metallni qo'llab-quvvatlash
11-samolyotLaminar tadqiqotlarMaxsus dvigatel2017 yil 30-mayBeta-versiyada metallni qo'llab-quvvatlash. 2 aprel 2020 yil[18]
HeadlanderDouble Fine ProductionsBudda dvigateli2016 yil 18-noyabrIshga tushirishda metallni qo'llab-quvvatlash
Sims 4MaksisMaxsus dvigatel2015 yil 17-fevralMetallni qo'llab-quvvatlash qo'shildi 12-noyabr, 2019-yil

Shuningdek qarang

  • Direct3DDirectX 12 past darajadagi API-larni taqdim etadi
  • Mantiya - tomonidan past darajadagi API AMD
  • Vulkan - OpenGL-ning past vorisi
  • MoltenVK - Vulkan dasturini Metal API-ning yuqori qismida ishlatish uchun dasturiy ta'minotga muvofiqligi kutubxonasi
  • WebGPU

Adabiyotlar

  1. ^ McWhertor, Maykl (2014 yil 9-sentyabr). "Bu Apple iPhone 6-ni namoyish qilish uchun ishlatadigan o'yin". Ko'pburchak. Vox Media. Arxivlandi asl nusxasidan 2014 yil 10 sentyabrda. Olingan 9 sentyabr, 2014.
  2. ^ Apple Inc. "Metall soyalash tili spetsifikatsiyasi" (PDF).
  3. ^ "Buyruqlar tuzilishini sozlash". Apple Inc.
  4. ^ "Metall soyalash bo'yicha til qo'llanma". 2014 yil 8 sentyabr. Olingan 10 sentyabr, 2014.
  5. ^ Apple Inc. "Resurslarni saqlash rejimini sozlash".
  6. ^ "Boshqariladigan manbani sinxronlashtirish". Apple Inc.
  7. ^ "MacOS-da GPU tanlovi". Apple Inc.
  8. ^ "Metall ishlash shaderlari".
  9. ^ Machkovech, Xuddi shu (2014 yil 2-iyun). "Apple o'yin bilan og'irlashadi, Metall ishlab chiqish platformasini e'lon qiladi". Ars Technica. Kond Nast.
  10. ^ Smit, Kolin; Meza, Starlayne (2015 yil 8-iyun). "Apple OS X El Capitan-ni tajribasi va ishlashi yaxshilanganligi to'g'risida e'lon qiladi". Yangiliklar xonasi. San-Fransisko: olma.
  11. ^ "Metall uy sahifasining arxivlangan nusxasi, 2017 yil noyabr". Apple Developer. olma. 20-noyabr, 2017-yil 20-noyabrda asl nusxadan arxivlangan - orqali Orqaga qaytish mashinasi.CS1 maint: BOT: original-url holati noma'lum (havola)
  12. ^ "Metall ilovangizni Apple Silicon Mac kompyuterlariga olib keling". developer.apple.com. Olingan 13 iyul, 2020.
  13. ^ Chiappetta, Marko (2018 yil 11-dekabr). "Apple o'z mijozlariga va NVIDIA-ga macOS Mojave bilan murojaat qiladi".
  14. ^ Apple Inc. "WWDC 2017 platformalarining Ittifoq holati".
  15. ^ Nestor, Marius. "Vulkan ko'magi nihoyat Apple-ning macOS va iOS-lariga o'yinlarni tezroq ishlashini ta'minlash uchun keladi". softpediya. Olingan 28 fevral, 2018.
  16. ^ Larabel, Maykl (2018 yil 1-iyun). "Dota 2 bilan macOS-da dastlabki Vulkan ishlashi juda yaxshi ko'rinishga ega". Froniks. Olingan 5 iyun, 2018.
  17. ^ Kondrak, Krzysztof [@k_kondrak] (2019 yil 9-yanvar). "vkQuake2 MacOS-ni qo'llab-quvvatlaydi" (Tvit). Olingan 9-fevral, 2019 - orqali Twitter.
  18. ^ "X-Plane 11.50 Public Beta 1: Vulkan va Metal bu erda". X-Plane Developer. 2020 yil 2-aprel. Olingan 2 aprel, 2020.

Tashqi havolalar