Металл (API) - Metal (API)
Apple использовала мобильный многопользовательская онлайн-боевая арена игра Тщеславие продемонстрировать графические возможности Metal на Айфон 6 анонсирование в сентябре 2014 г.[1] | |
Разработчики) | Apple Inc. |
---|---|
изначальный выпуск | Июнь 2014 г. |
Стабильный выпуск | 3 / июнь 2019 |
Написано в | Язык затенения: C ++ 14, Время выполнения / API: Цель-C |
Операционная система | iOS, iPadOS, macOS, tvOS |
Тип | 3D-графика и вычисления API |
Лицензия | проприетарный |
Интернет сайт | разработчик |
Металл низкоуровневый, с низкими накладными расходами с аппаратным ускорением 3D графика и вычислить шейдер API сделано яблоко. Он дебютировал в iOS 8. Металл сочетает в себе функции, аналогичные OpenGL и OpenCL в одном API. Он предназначен для повышения производительности, предлагая низкоуровневый доступ к оборудованию графического процессора для приложений на iOS, iPadOS, macOS, и tvOS. Его можно сравнить с низкоуровневыми API на других платформы Такие как Вулкан и DirectX 12.
Металл - это объектно-ориентированный API, который можно вызвать с помощью Быстрый или же Цель-C языки программирования. Полноценное исполнение на GPU контролируется с помощью Metal Shading Language. Согласно рекламным материалам Apple: «MSL [Metal Shading Language] - это единый унифицированный язык, который обеспечивает более тесную интеграцию между графическими и вычислительными программами. Поскольку MSL основан на C ++, вы найдете его знакомым и простым в использовании ».[2]
Функции
Metal стремится обеспечить доступ к графическому процессору с низкими издержками. Команды заранее кодируются, а затем отправляются в графический процессор для асинхронного выполнения. Приложение контролирует, когда ждать завершения выполнения, что позволяет разработчикам приложений увеличить пропускную способность, кодируя другие команды, пока команды выполняются на графическом процессоре, или экономить энергию, явно ожидая завершения выполнения графическим процессором. Кроме того, кодирование команд не зависит от ЦП, поэтому приложения могут кодировать команды для каждого потока ЦП независимо. Наконец, состояния рендеринга предварительно вычисляются, что позволяет драйверу графического процессора заранее знать, как настроить и оптимизировать конвейер рендеринга перед выполнением команды. [3]
Металл улучшает возможности ГПГПУ программирование с использованием вычислить шейдеры. Металл использует специфический язык затенения на основе C ++ 14; это реализовано с использованием Лязг и LLVM.[4]
Metal предлагает разработчикам приложений гибкость при создании ресурсов Metal (буферов, текстур и т. Д.). Ресурсы могут быть выделены на ЦП, ГП или на обоих и предоставляют средства для обновления и синхронизации выделенных ресурсов. Metal также может обеспечивать соблюдение состояния ресурса во время жизни кодировщика команд. [5] [6]
В macOS Metal может предоставить разработчикам приложений право определять, какой графический процессор следует выполнять. Разработчики приложений могут выбирать между маломощным встроенным графическим процессором центрального процессора, дискретным графическим процессором (на некоторых MacBook и Mac) или внешним графическим процессором, подключенным через Thunderbolt. Разработчики приложений также имеют предпочтение в отношении того, как команды графического процессора выполняются на каких графических процессорах, и предлагают рекомендации, на каком графическом процессоре определенная команда наиболее эффективна для выполнения (команды для визуализации сцены могут выполняться дискретным графическим процессором, в то время как постобработка и отображение могут выполняться. обрабатывается встроенным графическим процессором). [7]
Шейдеры Metal Performance
Metal Performance Shaders - это высокооптимизированная библиотека графических функций, которая может помочь разработчикам приложений достичь высокой производительности при одновременном сокращении работы по поддержке функций, специфичных для семейства графических процессоров. [8] Он предоставляет такие функции, как:
- Алгоритмы фильтрации изображений
- Обработка нейронной сети
- Расширенные математические операции
- трассировка лучей
История
Металл доступен со 2 июня 2014 г. устройства iOS питаться от Apple A7 или позже,[9] и с 8 июня 2015 г. Mac (Модели 2012 года или новее) работает OS X El Capitan.[10]
5 июня 2017 г. WWDC, Apple анонсировала вторую версию Metal, которая будет поддерживаться macOS High Sierra, iOS 11 и tvOS 11. Metal 2 не является отдельным API от Metal и поддерживается тем же оборудованием. Metal 2 позволяет повысить эффективность профилирование и отладка в Xcode, ускоренный машинное обучение, ниже ЦПУ рабочая нагрузка, поддержка виртуальная реальность на macOS и особенности Яблоко A11 GPU, в частности.[11]
В 2020 году WWDC, Apple объявила о переносе Mac на Apple Кремний. Компьютеры Mac, использующие Apple Silicon, будут оснащены графическими процессорами Apple с набором функций, объединяющим то, что ранее было доступно на macOS и iOS, и смогут использовать преимущества функций, адаптированных к отложенный рендеринг на основе плитки (TBDR) архитектура графических процессоров Apple.[12]
Поддерживаемые графические процессоры
На iOS, tvOS и macOS Metal поддерживает разработанные Apple SoC от Apple A7 или новее. В macOS Metal также поддерживает Intel HD и графика Iris из серии HD 4000 или новее, AMD GCN, и AMD RDNA GPU. Графические процессоры NVIDIA поддерживаются, но драйверы Metal для новых устройств (серии 10 и новее) недоступны, начиная с macOS Mojave. [13]
Принятие
По данным Apple, более 148 000 приложений используют Metal напрямую, а 1,7 миллиона используют его на высоком уровне. рамки, по состоянию на июнь 2017 г.[14] игры для macOS с использованием Metal для рендеринг перечислены ниже.
Заголовок | Разработчик (версия для macOS) | Игровой движок | Дата выпуска (macOS) | Примечания |
---|---|---|---|---|
Цивилизация VI | Аспир | 24 октября 2016 г. | Металлическая опора с 5 апреля 2019 г. Ошибка: в оконном режиме используется только Metal. Может или не может быть исправлен в будущем | |
Бэтмен: Аркхем Сити | Feral Interactive | 18 октября 2013 г. | Поддержка Metal с 21 февраля 2019 г. с v1.2 | |
Dota 2 | Клапан | Источник 2 | 18 июля 2013 г. | Использование MoltenVK для поддержки Metal через Вулкан было объявлено 26 февраля 2018 г..[15] Возможность использовать это стала доступна на 31 мая 2018.[16] |
Землетрясение 2 | id Программное обеспечение | Quake II движок | 9 февраля 2019 г. | Оригинальная игра с использованием MoltenVK для поддержки Metal через Вулкан был опубликован как vkQuake2.[17] |
Расхитительница гробниц | Feral Interactive | 17 января 2014 г. | Поддержка Metal с v1.2 в июле 2019 г. | |
Восстание Расхитительницы гробниц | Feral Interactive | Фундамент двигателя | 12 апреля 2018 г. | Доставка металлических опор при запуске |
Тень Расхитительницы гробниц | Feral Interactive | Foundation Engine | 2019 | Доставка металлических опор при запуске |
F1 2016 | Feral Interactive | EGO Engine 4.0 | 6 апреля 2017 г. | Доставка металлических опор при запуске |
Жизнь странная 2 | Feral Interactive | Unreal Engine 4 | 2019 | Доставка металлических опор при запуске |
Жизнь странна: перед бурей | Feral Interactive | Unity Engine | 13 сентября 2018 г. | Доставка металлических опор при запуске |
Божественность: Первородный грех 2 | Elverils | Божественный двигатель 2 | 31 января 2019 г. | Доставка металлических опор при запуске |
Компания Героев 2 | Feral Interactive | Двигатель сущности 3 | 21 января 2015 г. | Металлическая опора с 19 октября 2018 г. |
Hitman | Feral Interactive | Доставка металлических опор при запуске Недоступно в Mac App Store. Только Steam и Feral Stores. | ||
Железные дороги Сида Мейера! | Feral Interactive | Gamebryo | 1 ноября 2012 г. | Металлическая опора с 18 декабря 2018 г. |
Warhammer 40,000: Рассвет войны III | Feral Interactive | Двигатель сущности 4 | 9 июня 2017 г. | Доставка металлических опор при запуске |
Total War: Warhammer | Feral Interactive | Total War Engine 3 | 19 апреля 2017 г. | Доставка металлических опор при запуске |
Total War: Warhammer 2 | Feral Interactive | Total War Engine 3 | 20 ноября 2018 г. | Доставка металлических опор при запуске |
Total War Saga: Thrones of Britannia | Feral Interactive | Total War Engine 3 | 24 мая 2018 | Доставка металлических опор при запуске |
Средневековье II: Тотальная война | Feral Interactive | Total War Engine 2 | 17 декабря 2015 г. | Металлическая опора с 25 октября 2018 г. |
Империя: Тотальная война | Feral Interactive | 4 марта 2009 г. | Металлическая опора с 16 декабря 2019 г. | |
Наполеон: Тотальная война | Feral Interactive | 2 июля 2013 г. | Поддержка Metal с 25 октября 2019 г. с v1.2 | |
Total War: Shogun 2 | Feral Interactive | 31 июля 2014 г. | Металлическая опора с 4 октября 2019 г. | |
Total War: Shogun 2: Падение самураев | Feral Interactive | 18 декабря 2014 г. | Металлическая опора с 4 октября 2019 г. | |
Bioshock Remastered | Feral Interactive | Unreal Engine 2.5 | 22 августа 2017 г. | Доставка металлических опор при запуске |
F1 2017 | Feral Interactive | EGO Engine 4.0 | 25 августа 2017 г. | Доставка металлических опор при запуске |
Deus Ex: Mankind Divided | Feral Interactive | Рассветный двигатель | 12 декабря 2017 г. | Доставка металлических опор при запуске |
DiRT Rally | Feral Interactive | Двигатель EGO 2.5 | 16 ноября 2017 г. | Доставка металлических опор при запуске |
Баллистический перебор | Игровая студия Aquiris | Unity Engine 5 | 28 марта 2017 г. | Доставка металлических опор при запуске |
BattleTech | Заядлые схемы | Unity Engine 5 | 24 апреля 2018 г. | Доставка металлических опор при запуске |
Мафия III | Aspyr Media | Иллюзионный двигатель | 11 мая 2017 | Доставка металлических опор при запуске |
Мир Warcraft | Blizzard Entertainment | WoW Engine | 23 ноября 2004 г. | Металлическая опора с августа 2016 г. |
Стар Крафт | Blizzard Entertainment | Металлическая опора с 2 июля 2020 с v.1.23.5 | ||
StarCraft II | Blizzard Entertainment | Двигатель SC2 | 27 июля 2010 г. | Поддержка Metal в бета-версии с 24 января 2017 г. |
Герои бури | Blizzard Entertainment | Двигатель SC2 | 2 июня 2015 г. | Поддержка Metal в бета-версии с 24 января 2017 г., временно удален на 29 ноября 2017 г. |
Fortnite | Эпические игры | Unreal Engine 4 | 25 июля 2017 г. | Доставка металлических опор при запуске |
Обдукция | Голубые миры | Unreal Engine 4 | 29 марта 2017 г. | Доставка металлических опор при запуске |
Everspace | Морской окунь | Unreal Engine 4 | 26 мая 2017 | Доставка металлических опор при запуске |
Ark: Survival Evolved | Студия Wildcard | Unreal Engine 4 | 29 августа 2017 г. | Доставка металлических опор при запуске |
Наблюдатель | Команда Bloober | Unreal Engine 4 | 24 октября 2017 г. | Доставка металлических опор при запуске |
Нереальный Турнир | Эпические игры | Unreal Engine 4 | TBA | Металлическая опора с января 2017 г. |
Возврат | Доминик Грисхофер | Unreal Engine 4 | 5 сентября 2016 г. | Доставка металлических опор при запуске |
Города: горизонты | Paradox Interactive | Unity Engine 5 | 10 марта 2015 г. | Металлическая опора с 18 мая 2017 |
Вселенная Песочница 2 | Гигантская армия | Unity Engine 5 | TBA | Поддержка Metal в бета-версии с июня 2017 г. |
Гром войны | Gaijin Entertainment | Дагор Двигатель 4 | 1 ноября 2012 г. | Добавлена металлическая опора 24 мая 2017, удален в какой-то момент в 2018 и повторно введен 27 августа 2020 г. |
Свидетель | Thekla, Inc | Thekla Engine | 8 марта 2017 г. | Доставка металлических опор при запуске |
Мировая серия Micro Machines | Виртуальное программирование | Unity Engine 5 | 30 июня 2017 г. | Доставка металлических опор при запуске |
Стражи Галактики: Серия Telltale | Telltale Games | Инструмент Telltale | 18 апреля 2017 г. | Доставка металлических опор при запуске |
Бэтмен: Враг внутри | Telltale Games | Инструмент Telltale | 8 августа 2017 г. | Доставка металлических опор при запуске |
Minecraft: Story Mode - второй сезон | Telltale Games | Инструмент Telltale | 11 июля 2017 г. | Доставка металлических опор при запуске |
ARMA 3 | Виртуальное программирование | Реальная виртуальность | TBA | Поддержка Metal в бета-версии с 17 сентября 2017 г. |
MXGP3 | Виртуальное программирование | Unreal Engine 4 | 23 ноября 2018 г. | Доставка металлических опор при запуске |
Гравий | Виртуальное программирование | Unreal Engine 4 | 20 января 2019 г. | Доставка металлических опор при запуске |
X-Plane 11 | Ламинарные исследования | Кастомный двигатель | 30 мая 2017 | Поддержка Metal в публичной бета-версии. 2 апреля 2020[18] |
Headlander | Double Fine Productions | Будда Двигатель | 18 ноября 2016 г. | Доставка металлических опор при запуске |
The Sims 4 | Maxis | Кастомный двигатель | 17 февраля 2015 г. | Добавлена металлическая опора 12 ноября 2019 г. |
Смотрите также
- Direct3D – DirectX 12 вводит низкоуровневые API
- Мантия - низкоуровневый API от AMD
- Вулкан - преемник OpenGL с низкими накладными расходами
- MoltenVK - библиотека совместимости программного обеспечения для запуска программного обеспечения Vulkan поверх Metal API
- WebGPU
Рекомендации
- ^ Маквертор, Майкл (9 сентября 2014 г.). «Это игра, которую Apple использовала для демонстрации iPhone 6». Многоугольник. Vox Media. В архиве из оригинала 10 сентября 2014 г.. Получено 9 сентября, 2014.
- ^ Apple Inc. «Спецификация языка затенения металла» (PDF).
- ^ «Настройка структуры команд». Apple Inc.
- ^ "Руководство по языку Metal Shading". 8 сентября 2014 г.. Получено 10 сентября, 2014.
- ^ Apple Inc. «Настройка режима хранения ресурсов».
- ^ «Синхронизация управляемого ресурса». Apple Inc.
- ^ «Выбор графического процессора в macOS». Apple Inc.
- ^ "Шейдеры Metal Performance".
- ^ Мачковеч, Там же (2 июня 2014 г.). «Apple увлекается играми, анонсирует платформу разработки Metal». Ars Technica. Condé Nast.
- ^ Смит, Колин; Меза, Старлейн (8 июня 2015 г.). «Apple представляет OS X El Capitan с улучшенным интерфейсом и улучшенной производительностью». отдел новостей. Сан-Франциско: яблоко.
- ^ «Архивная копия домашней страницы Metal, ноябрь 2017 г.». Разработчик Apple. яблоко. 20 ноября 2017 г. Архивировано 20 ноября 2017 г. - через Wayback Machine.CS1 maint: BOT: статус исходного URL-адреса неизвестен (связь)
- ^ «Перенесите свое приложение Metal на компьютеры Apple Silicon Mac». developer.apple.com. Получено 13 июля, 2020.
- ^ Кьяппетта, Марко (11 декабря 2018 г.). «Apple отказывается от клиентов и NVIDIA с macOS Mojave».
- ^ Apple Inc. "Состояние Союза платформ WWDC 2017".
- ^ Нестор, Мариус. «Наконец-то в MacOS и iOS от Apple появится поддержка Vulkan, чтобы игры работали быстрее». софтпедия. Получено 28 февраля, 2018.
- ^ Ларабель, Майкл (1 июня 2018 г.). «Первоначальная производительность Vulkan на macOS с Dota 2 выглядит очень хорошо». Фороникс. Получено 5 июня, 2018.
- ^ Кондрак, Кшиштоф [@k_kondrak] (9 января 2019 г.). "vkQuake2 получает поддержку MacOS" (Твитнуть). Получено 9 февраля, 2019 - через Twitter.
- ^ «X-Plane 11.50 Public Beta 1: Vulkan и Metal уже здесь». X-Plane Разработчик. 2 апреля 2020 г.. Получено 2 апреля, 2020.
внешняя ссылка
- Металл для разработчиков
- Руководство по программированию металла (предварительный)
- Демо WWDC14; Расширенная версия
- Установите macOS 10.14 Mojave на Mac Pro (середина 2010 г.) и Mac Pro (середина 2012 г.) - Статья Apple, объясняющая, какие графические процессоры совместимы с API-интерфейсами Apple Metal в операционной системе Mac OS 10.14 (Mojave).