Металл (API)
Разработчик(и) | Apple Инк. |
---|---|
Первоначальный выпуск | июнь 2014 г |
Стабильная версия | 24
/ Октябрь 2022 г |
Написано в | Язык шейдеров : C++14 , среда выполнения/API: Objective-C. |
Операционная система | iOS , iPadOS , macOS , tvOS |
Тип | 3D-графика и вычислительный API |
Лицензия | Собственный |
Веб-сайт | разработчик |
Metal — это низкоуровневый с низкими затратами и аппаратным ускорением -интерфейс 3D-графики и вычислительных шейдеров API , созданный Apple и дебютировавший в iOS 8 . Metal сочетает в себе функции, аналогичные OpenGL и OpenCL, в одном API. Он предназначен для повышения производительности, предлагая низкоуровневый доступ к оборудованию графического процессора для приложений на iOS , iPadOS , macOS и tvOS . Его можно сравнить с низкоуровневыми API на других платформах, таких как Vulkan и DirectX 12 .
Metal — это объектно-ориентированный API, который можно вызвать с помощью Swift , Objective-C или C++17. [2] языки программирования . Полноценное выполнение графического процессора контролируется с помощью языка Metal Shading. Согласно рекламным материалам Apple: «MSL [Metal Shading Language] — это единый унифицированный язык, обеспечивающий более тесную интеграцию между графическими и вычислительными программами. Поскольку MSL основан на C++, вы найдете его знакомым и простым в использовании». [3]
Функции
[ редактировать ]Целью Metal является обеспечение доступа к графическому процессору с минимальными издержками. Команды заранее кодируются, а затем передаются в графический процессор для асинхронного выполнения. Приложение контролирует, когда следует ожидать завершения выполнения, что позволяет разработчикам приложений увеличивать пропускную способность за счет кодирования других команд, пока команды выполняются на графическом процессоре, или экономить электроэнергию, явно ожидая завершения выполнения графического процессора. Кроме того, кодирование команд не зависит от ЦП, поэтому приложения могут кодировать команды для каждого потока ЦП независимо. Наконец, состояния рендеринга предварительно вычисляются, что позволяет драйверу графического процессора заранее знать, как настроить и оптимизировать конвейер рендеринга перед выполнением команды. [4]
Metal улучшает возможности программирования GPGPU за счет использования вычислительных шейдеров . Metal использует особый язык шейдеров , основанный на C++14 , реализованный с помощью Clang и LLVM . [5]
Metal позволяет разработчикам приложений создавать ресурсы Metal, такие как буферы и текстуры. Ресурсы могут быть выделены на ЦП, графическом процессоре или на обоих, а также предоставляются возможности для обновления и синхронизации выделенных ресурсов. Metal также может обеспечивать соблюдение состояния ресурса в течение срока службы кодировщика команд. [6] [7]
В macOS Metal может предоставить разработчикам приложений право выбирать, какой графический процессор использовать. Разработчики приложений могут выбирать между маломощным встроенным графическим процессором ЦП, дискретным графическим процессором (на некоторых MacBook и Mac) или внешним графическим процессором, подключенным через Thunderbolt. Разработчики приложений также имеют предпочтение относительно того, как команды графического процессора выполняются на том или ином графическом процессоре, и предлагают рекомендации о том, какой графический процессор наиболее эффективен для выполнения определенной команды (команды для рендеринга сцены могут выполняться дискретным графическим процессором, а постобработка и отображение могут быть обрабатывается встроенным графическим процессором). [8]
Шейдеры производительности металла
[ редактировать ]Metal Performance Shaders — это высокооптимизированная библиотека графических функций, которая может помочь разработчикам приложений добиться высокой производительности и в то же время сократить объем работы по поддержке специфических функций семейства графических процессоров. [9] Он предоставляет функции, в том числе:
- Алгоритмы фильтрации изображений
- Обработка нейронной сети
- Расширенные математические операции
- Трассировка лучей
История
[ редактировать ]Metal доступен со 2 июня 2014 г. на устройствах iOS на базе Apple A7 или новее. [10] а с 8 июня 2015 г. на компьютерах Mac (модели 2012 г. или новее) под управлением OS X El Capitan . [11]
5 июня 2017 года на WWDC Apple анонсировала вторую версию Metal, которая будет поддерживаться macOS High Sierra , iOS 11 и tvOS 11 . Metal 2 не является отдельным API от Metal и поддерживается тем же оборудованием. Metal 2 обеспечивает более эффективное профилирование и отладку в Xcode , ускоренное машинное обучение , более низкую нагрузку на процессор , поддержку виртуальной реальности особенностей графического процессора Apple A11 . в macOS и, в частности, [12]
На WWDC 2020 года Apple объявила о переходе Mac на Apple Silicon . Компьютеры Mac, использующие процессор Apple, будут оснащены графическими процессорами Apple с набором функций, сочетающим в себе то, что ранее было доступно в macOS и iOS, и смогут использовать преимущества функций, адаптированных к архитектуре отложенного рендеринга на основе плиток (TBDR) графических процессоров Apple. [13]
На WWDC 2022 года Apple анонсировала третью версию Metal (Metal 3), которая дебютирует с выпуском macOS Ventura , iOS 16 и iPadOS 16 . Metal 3 представляет платформу масштабирования MetalFX, которая визуализирует сложные сцены за меньшее время на кадр с высокопроизводительным масштабированием и сглаживанием, а также поддержкой сетчатых шейдеров. [14] Также объявлено о возможности использования C/C++ для Metal API. [15]
Поддерживаемые графические процессоры
[ редактировать ]Первая версия Metal поддерживает следующее аппаратное и программное обеспечение: [16]
- Apple A7 SoC или новее с iOS 8 или новее
- Apple M1 SoC или новее с macOS 11 или новее
- Процессор Intel с процессором Intel HD и графикой Iris серии Ivy Bridge или новее с OS X 10.11 или новее
- Графика AMD с GCN или RDNA архитектурой с OS X 10.11 или новее
- Графика NVIDIA с Kepler архитектурой OS X 10.11 до macOS 11 с операционной системой
- Графика NVIDIA с Maxwell архитектурой Pascal или архитектурой OS X 10.11 – macOS 10.13 с операционной системой
Вторая версия Metal поддерживает следующее аппаратное и программное обеспечение:
- Apple A7 SoC или новее с iOS 11 или новее
- Apple M1 SoC или новее с macOS 11 или новее
- Процессор Intel с Intel HD и графикой Iris серии Skylake или новее с macOS 10.13 или новее
- Графика AMD с GCN или RDNA архитектурой с macOS 10.13 или новее
Третья версия Metal поддерживает следующее аппаратное и программное обеспечение:
- Apple A13 или новее с iOS 16 , iPadOS 16 или новее
- Apple M1 SoC или новее с macOS 13 или новее
- Процессор Intel с Intel UHD 630 или Iris Plus (Kaby Lake или новее) с macOS 13 или новее
- Графика AMD с архитектурой RDNA (серии 5000 и 6000) и Pro Vega ( GCN 5-го поколения) архитектура
Принятие
[ редактировать ]По данным Apple, по состоянию на июнь 2017 года более 148 000 приложений используют Metal напрямую, а 1,7 миллиона — через высокоуровневые фреймворки . [17] Игры macOS, использующие Metal для рендеринга, перечислены ниже.
Заголовок | Разработчик (версия для MacOS) | Игровой движок | Дата выпуска MacOS (OpenGL/DirectX) | Дата выпуска на металлической основе | Примечания по металлической опоре |
---|---|---|---|---|---|
ЕВА Онлайн | КПК Игры | Н/Д | 6 ноября 2007 г. | 14 октября 2021 г. | Ранее доступно на macOS через DirectX 9.0 с ноября 2007 г. по февраль 2009 г.; Собственная версия для macOS с использованием Metal выпущена 14 ноября 2021 г. [ нужна ссылка ] |
Цивилизация VI | Аспир Медиа | ЛОР | 24 октября 2016 г. | Металлическая опора с 5 апреля 2019 года. [ нужна ссылка ] | |
Бэтмен: Аркхем Сити | Ферал Интерактив | Унреальный движок 3 | 18 октября 2013 г. | Металлическая поддержка с 21 февраля 2019 г., версия 1.2. [ нужна ссылка ] | |
Дота 2 | Клапан | Источник 2 | 18 июля 2013 г. | MoltenVK было анонсировано 26 февраля 2018 года . [18] Возможность использовать это стала доступна 31 мая 2018 года . [19] | |
Квейк II | программное обеспечение id | Движок Quake II | 9 февраля 2019 г. | Порт с использованием MoltenVK был выпущен как vkQuake2. [20] | |
Расхитительница гробниц | Ферал Интерактив | Фундаментальный двигатель | 17 января 2014 г. | Металлическая поддержка с версией 1.2 в июле 2019 г. [ нужна ссылка ] | |
Восстание Расхитительницы гробниц | Ферал Интерактив | Фундаментальный двигатель | 12 апреля 2018 г. | ||
Тень Расхитительницы гробниц | Ферал Интерактив | Фундаментальный двигатель | 2019 | ||
Ф1 2016 | Ферал Интерактив | ЭГО Двигатель 4.0 | 6 апреля 2017 г. | ||
Жизнь странна 2 | Ферал Интерактив | Нереальный Движок 4 | 2019 | ||
Жизнь странна: Перед бурей | Ферал Интерактив | Unity Движок | 13 сентября 2018 г. | ||
Divinity: Первородный грех II | Лариан Студии | Божественный двигатель 2 | 31 января 2019 г. | ||
Врата Балдура III | Лариан Студии | Божественный движок 4.0 | 22 сентября 2023 г. | Поддержка Metal в раннем доступе с 6 октября 2020 г. [ нужна ссылка ] | |
Компания героев 2 | Ферал Интерактив | Эссенция Двигатель 3 | 21 января 2015 г. | Металлическая опора с 19 октября 2018 г. [ нужна ссылка ] | |
киллер | Ферал Интерактив | Ледник 2 | 20 июня 2017 г. | ||
Железные дороги Сида Мейера! | Ферал Интерактив | Геймбрио | 1 ноября 2012 г. | Металлическая опора с 18 декабря 2018 года. [ нужна ссылка ] | |
Warhammer 40,000: Dawn of War III | Ферал Интерактив | Сущность Двигатель 4 | 9 июня 2017 г. | ||
Total War: Рим обновленный | Ферал Интерактив | TW Двигатель 2 | 29 апреля 2021 г. | ||
Тотальная война: Троецарствие | Ферал Интерактив | TW Двигатель 3 | 23 мая 2019 г. | ||
Тотальная война: Вархаммер | Ферал Интерактив | TW Двигатель 3 | 19 апреля 2017 г. | ||
Тотальная война: Вархаммер II | Ферал Интерактив | TW Двигатель 3 | 20 ноября 2018 г. | ||
Сага Total War: Престолы Британии | Ферал Интерактив | TW Двигатель 3 | 24 мая 2018 г. | ||
Сага Total War: Троя | Ферал Интерактив | TW Двигатель 3 | 13 августа 2020 г. | ||
Средневековье II: Тотальная война | Ферал Интерактив | TW Двигатель 2 | 17 декабря 2015 г. | Металлическая опора с 25 октября 2018 г. [ нужна ссылка ] | |
Империя: Тотальная война | Ферал Интерактив | TW Двигатель 3 | 4 марта 2009 г. | Металлическая опора с 16 декабря 2019 года. [ нужна ссылка ] | |
Наполеон: Тотальная война | Ферал Интерактив | TW Двигатель 3 | 2 июля 2013 г. | Металлическая поддержка с 25 октября 2019 г., версия 1.2. [ нужна ссылка ] | |
Тотальная война: Сёгун 2 | Ферал Интерактив | TW Двигатель 3 | 31 июля 2014 г. | Металлическая опора с 4 октября 2019 г. [ нужна ссылка ] | |
Total War: Shogun 2: Падение самурая | Ферал Интерактив | TW Двигатель 3 | 18 декабря 2014 г. | Металлическая опора с 4 октября 2019 г. [ нужна ссылка ] | |
Биошок Ремастеринг | Ферал Интерактив | Унреальный движок 2.5 | 22 августа 2017 г. | ||
Биошок 2 Обновленный | Ферал Интерактив | Унреальный движок 2.5 | 22 октября 2020 г. | ||
Ф1 2017 | Ферал Интерактив | ЭГО Двигатель 4.0 | 25 августа 2017 г. | ||
Deus Ex: Разделенное человечество | Ферал Интерактив | Двигатель рассвета | 12 декабря 2017 г. | ||
Ралли DiRT | Ферал Интерактив | ЭГО Двигатель 2.5 | 16 ноября 2017 г. | ||
Баллистическое перебор | Игровая студия Aquiris | Юнити Движок 5 | 28 марта 2017 г. | ||
БаттлТех | Безрассудные схемы | Юнити Движок 5 | 24 апреля 2018 г. | ||
Мафия III | Аспир Медиа | Двигатель иллюзий | 11 мая 2017 г. | ||
Мир Варкрафта | Близзард Развлечения | WoW Движок | 23 ноября 2004 г. | Металлическая опора с августа 2016 года. [ нужна ссылка ] | |
Старкрафт | Близзард Развлечения | Модифицированный движок Warcraft II. | 20 ноября 2001 г. | Металлическая поддержка со 2 июля 2020 г. с версией 1.23.5. [ нужна ссылка ] | |
Старкрафт II | Близзард Развлечения | Двигатель SC2 | 27 июля 2010 г. | Поддержка Metal в бета-версии с 24 января 2017 г. [ нужна ссылка ] | |
Герои Шторма | Близзард Развлечения | Двигатель SC2 | 2 июня 2015 г. | Поддержка Metal в бета-версии с 24 января 2017 г. (временно удалена 29 ноября 2017 г.) [21] до ?) [ нужна ссылка ] | |
Fortnite | Эпические игры | Нереальный Движок 4 | 25 июля 2017 г. | ||
Обдукция | Голубые миры | Нереальный Движок 4 | 29 марта 2017 г. | ||
Эверспейс | Морской окунь | Нереальный Движок 4 | 26 мая 2017 г. | ||
Ковчег: Развитие выживания | Студия Wildcard | Нереальный Движок 4 | 29 августа 2017 г. | ||
наблюдатель | Команда Блубера | Нереальный Движок 4 | 24 октября 2017 г. | ||
Нереальный турнир | Эпические игры | Нереальный Движок 4 | Отменено | Металлическая опора с января 2017 года. [ нужна ссылка ] | |
Возвратить | Доминик Грисхофер | Нереальный Движок 4 | 5 сентября 2016 г. | ||
Города: Горизонты | Парадокс Интерактив | Юнити Движок 5 | 10 марта 2015 г. | Металлическая опора с 18 мая 2017 г. [ нужна ссылка ] | |
Песочница Вселенной | Гигантская армия | Юнити Движок 5 | будет объявлено позже | Поддержка Metal в бета-версии с июня 2017 г. [ нужна ссылка ] | |
Война Гром | Гайджин Развлечения | Дагор Двигатель 4 | 1 ноября 2012 г. | Металлическая опора добавлена 24 мая 2017 г. (удалена в 2018 г. и вновь введена 27 августа 2020 г. ) [ нужна ссылка ] | |
Свидетель | Текла, Инк. | Текла Двигатель | 8 марта 2017 г. | ||
Мировая серия микромашин | Виртуальное программирование | Юнити Движок 5 | 30 июня 2017 г. | ||
Стражи Галактики: Серия The Telltale | Контрольные игры | Контрольный инструмент | 18 апреля 2017 г. | ||
Бэтмен: Враг внутри | Контрольные игры | Контрольный инструмент | 8 августа 2017 г. | ||
Minecraft: сюжетный режим — второй сезон | Контрольные игры | Контрольный инструмент | 11 июля 2017 г. | ||
ОРУЖИЕ 3 | Виртуальное программирование | Реальная виртуальность | будет объявлено позже | Поддержка Metal в бета-версии с 17 сентября 2017 г. [ нужна ссылка ] | |
MXGP3 | Виртуальное программирование | Нереальный Движок 4 | 23 ноября 2018 г. | ||
Гравий | Виртуальное программирование | Нереальный Движок 4 | 20 января 2019 г. | ||
Икс-Плейн 11 | Ламинарные исследования | Н/Д | 30 мая 2017 г. | Поддержка Metal в бета-версии со 2 апреля 2020 г. [22] | |
мыс | Дабл Файн Продакшнс | Будда Двигатель | 18 ноября 2016 г. | ||
Симс 4 | Максис | СмартСим | 17 февраля 2015 г. | Металлическая опора добавлена 12 ноября 2019 г. [ нужна ссылка ] | |
The Elder Scrolls Online | Зенимакс Онлайн Студии | Н/Д | 4 апреля 2014 г. | 22 октября 2018 г. | OpenGL Renderer заменен на Vulkan через оболочку MoltenVK (преобразует вызовы API Vulkan в Metal) в патче 4.2.5. |
Небо: Дети Света | Этагеймкомпания | Н/Д | 18 июля 2019 г. | Добавлена поддержка Native Metal после предглобальной трансляции в ноябре 2017 года. | |
Обитель Злой Деревни | Капком | РЭ двигатель | 28 октября 2022 г. | Первая игра для macOS с поддержкой MetalFX |
См. также
[ редактировать ]- Direct3D — DirectX 12 представляет низкоуровневые API.
- Mantle — низкоуровневый API от AMD
- Vulkan – преемник OpenGL с низкими издержками
- MoltenVK — библиотека совместимости программного обеспечения для запуска программного обеспечения Vulkan поверх Metal API
- Веб-графический процессор
- OpenGL — кроссплатформенный графический API
Ссылки
[ редактировать ]- ^ Маквертор, Майкл (9 сентября 2014 г.). «Это игра, которую Apple использовала, чтобы продемонстрировать iPhone 6» . Полигон . Вокс Медиа . Архивировано из оригинала 11 сентября 2014 года . Проверено 9 сентября 2014 г.
- ^ «Начало работы с Metal-CPP — Металл» .
- ^ Apple Inc. «Спецификация языка металлического шейдинга» (PDF) .
- ^ «Настройка структуры команд» . Apple Инк.
- ^ «Руководство по языку металлического шейдинга» . 8 сентября 2014 года . Проверено 10 сентября 2014 г.
- ^ Apple Inc. «Настройка режима хранения ресурсов» .
- ^ «Синхронизация управляемого ресурса» . Apple Инк.
- ^ «Выбор графического процессора в macOS» . Apple Инк.
- ^ «Шейдеры производительности металла» .
- ^ Мачкович, То же (2 июня 2014 г.). «Apple увлеклась играми и анонсировала платформу разработки Metal» . Арс Техника . Конде Наст .
- ^ Смит, Колин; Меза, Старлейн (8 июня 2015 г.). «Apple анонсирует OS X El Capitan с улучшенными возможностями и улучшенной производительностью» . Отдел новостей . Сан-Франциско : Apple .
- ^ «Архивная копия домашней страницы Metal, ноябрь 2017 г.» . Разработчик Apple . Яблоко . 20 ноября 2017 г. Архивировано из оригинала 20 ноября 2017 г. — через Wayback Machine .
{{cite web}}
: CS1 maint: bot: исходный статус URL неизвестен ( ссылка ) - ^ «Перенесите свое приложение Metal на компьютеры Apple Silicon Mac» . разработчик.apple.com . Проверено 13 июля 2020 г.
- ^ «Открой металл 3» . разработчик.apple.com . Проверено 24 июня 2022 г.
- ^ «Программа Metal на C++ с помощью metal-cpp» . разработчик.apple.com . Проверено 10 сентября 2022 г.
- ^ Кьяппетта, Марко (11 декабря 2018 г.). «Apple отвернулась от клиентов и NVIDIA с macOS Mojave» . Форбс .
- ^ Apple Inc. «Состояние платформ на WWDC 2017» .
- ^ «Приложения Vulkan, доступные на платформах Apple» . Пресс-релиз группы «Хронос» . Проверено 24 февраля 2021 г.
- ^ Ларабель, Майкл (1 июня 2018 г.). «Первоначальная производительность Vulkan на macOS с Dota 2 выглядит очень хорошо» . Фороникс . Проверено 5 июня 2018 г.
- ^ Кондрак, Кшиштоф [@k_kondrak] (9 февраля 2019 г.). «vkQuake2 получает поддержку MacOS» ( твит ) . Проверено 9 февраля 2019 г. - через Twitter .
- ^ «ОБНОВЛЕНИЕ БАЛАНСА HEROES OF THE STORM — 29 НОЯБРЯ 2017 ГОДА» . news.blizzard.com . 29 ноября 2017 г.
- ^ «Публичная бета-версия 1 X-Plane 11.50: Вулкан и Металл уже здесь» . Разработчик 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)