Desarrollador(es) | Compañía Apple Inc. |
---|---|
Lanzamiento inicial | Junio 2014 ( 2014-06 ) |
Versión estable | 24/octubre 2022 ( 2022-10 ) |
Escrito en | Lenguaje de sombreado : C++14 , Tiempo de ejecución/API: Objective-C |
Sistema operativo | iOS , iPadOS , macOS , tvOS |
Tipo | Gráficos 3D y API de cómputo |
Licencia | Propiedad |
Sitio web | desarrollador.apple.com/metal/ |
Metal es una API de sombreador de gráficos y computación 3D acelerada por hardware de bajo nivel y bajo consumo de recursos creada por Apple y que debutó en iOS 8. Metal combina funciones similares a OpenGL y OpenCL en una sola API. Su objetivo es mejorar el rendimiento al ofrecer acceso de bajo nivel al hardware de la GPU para aplicaciones en iOS , iPadOS , macOS y tvOS . Se puede comparar con las API de bajo nivel de otras plataformas, como Vulkan y DirectX 12 .
Metal es una API orientada a objetos que se puede invocar mediante los lenguajes de programación Swift , Objective-C o C++17 [2] . La ejecución completa en la GPU se controla mediante el lenguaje Metal Shading. Según los materiales promocionales de Apple: "MSL [Metal Shading Language] es un lenguaje único y unificado que permite una integración más estrecha entre los programas gráficos y de cómputo. Dado que MSL está basado en C++, te resultará familiar y fácil de usar". [3]
Metal tiene como objetivo proporcionar un acceso a la GPU con bajo consumo de recursos. Los comandos se codifican de antemano y luego se envían a la GPU para su ejecución asincrónica. La aplicación controla cuándo esperar a que se complete la ejecución, lo que permite a los desarrolladores de aplicaciones aumentar el rendimiento codificando otros comandos mientras se ejecutan en la GPU o ahorrar energía esperando explícitamente a que se complete la ejecución en la GPU. Además, la codificación de comandos es independiente de la CPU, por lo que las aplicaciones pueden codificar comandos para cada hilo de la CPU de forma independiente. Por último, los estados de renderizado se calculan previamente de antemano, lo que permite que el controlador de la GPU sepa de antemano cómo configurar y optimizar el flujo de renderizado antes de la ejecución del comando. [4]
Metal mejora las capacidades de programación de GPGPU mediante el uso de sombreadores de cómputo . Metal utiliza un lenguaje de sombreado específico basado en C++14 , implementado mediante Clang y LLVM . [5]
Metal permite a los desarrolladores de aplicaciones crear recursos de Metal, como buffers y texturas. Los recursos se pueden asignar en la CPU, la GPU o ambas, y proporciona funciones para actualizar y sincronizar los recursos asignados. Metal también puede hacer cumplir el estado de un recurso durante la vida útil de un codificador de comandos. [6] [7]
En macOS, Metal puede proporcionar a los desarrolladores de aplicaciones la discreción de especificar qué GPU ejecutar. Los desarrolladores de aplicaciones pueden elegir entre la GPU integrada de bajo consumo de la CPU, la GPU discreta (en ciertas MacBooks y Macs) o una GPU externa conectada a través de Thunderbolt. Los desarrolladores de aplicaciones también tienen la preferencia sobre cómo se ejecutan los comandos de la GPU en qué GPU y proporciona sugerencias sobre qué GPU es más eficiente para ejecutar un determinado comando (los comandos para renderizar una escena pueden ser ejecutados por la GPU discreta mientras que el posprocesamiento y la visualización pueden ser manejados por la GPU integrada). [8]
Metal Performance Shaders es una biblioteca altamente optimizada de funciones gráficas que puede ayudar a los desarrolladores de aplicaciones a lograr un gran rendimiento al mismo tiempo que reduce el trabajo de mantenimiento de funciones específicas de la familia GPU. [9] Proporciona funciones que incluyen:
Metal está disponible desde el 2 de junio de 2014 en dispositivos iOS con Apple A7 o posterior, [10] y desde el 8 de junio de 2015 en Mac (modelos 2012 o posteriores) con OS X El Capitan . [11]
El 5 de junio de 2017, en la WWDC , Apple anunció la segunda versión de Metal, que será compatible con macOS High Sierra , iOS 11 y tvOS 11. Metal 2 no es una API separada de Metal y es compatible con el mismo hardware. Metal 2 permite una creación de perfiles y una depuración más eficientes en Xcode , aprendizaje automático acelerado , menor carga de trabajo de la CPU , compatibilidad con realidad virtual en macOS y especificidades de la GPU Apple A11 , en particular. [12]
En la WWDC de 2020 , Apple anunció la migración de Mac a Apple Silicon . Las Mac que usan Apple Silicon contarán con GPU de Apple con un conjunto de características que combina lo que estaba disponible anteriormente en macOS e iOS, y podrán aprovechar las características adaptadas a la arquitectura de renderizado diferido basado en mosaicos (TBDR) de las GPU de Apple. [13]
En la WWDC de 2022 , Apple anunció la tercera versión de Metal (Metal 3), que debutaría con el lanzamiento de macOS Ventura , iOS 16 y iPadOS 16. Metal 3 presenta el marco de mejora de escala MetalFX, que renderiza escenas complejas en menos tiempo por fotograma con mejora de escala de alto rendimiento y compatibilidad con anti-aliasing y sombreadores de malla. [14] También se anunció la posibilidad de usar C/C++ para la API de Metal. [15]
La primera versión de Metal admite el siguiente hardware y software: [16]
La segunda versión de Metal admite el siguiente hardware y software:
La tercera versión de Metal admite el siguiente hardware y software: [17]
Según Apple, más de 148.000 aplicaciones utilizan Metal directamente y 1,7 millones lo utilizan a través de marcos de alto nivel , a junio de 2017. [18] Los juegos de macOS que utilizan Metal para renderizar se enumeran a continuación.
Título | Desarrollador (versión macOS) | Motor de juego | Fecha de lanzamiento de MacOS (OpenGL/DirectX) | Fecha de lanzamiento basada en metal | Notas de soporte de metal |
---|---|---|---|---|---|
EVE en línea | Juegos del PCCh | N / A | 6 de noviembre de 2007 | 14 de octubre de 2021 | Anteriormente disponible en macOS a través de DirectX 9.0 desde noviembre de 2007 hasta febrero de 2009; versión nativa de macOS que utiliza Metal lanzada el 14 de noviembre de 2021 [ cita requerida ] |
Civilización VI | Medios de comunicación Aspyr | CIENCIA | 24 de octubre de 2016 | Soporte de metal desde el 5 de abril de 2019 [ cita requerida ] | |
Batman: Ciudad Arkham | Feral interactivo | Motor irreal 3 | 18 de octubre de 2013 | Soporte de Metal desde el 21 de febrero de 2019 con v1.2 [ cita requerida ] | |
Dota 2 | Válvula | Fuente 2 | 18 de julio de 2013 | MoltenVK se anunció el 26 de febrero de 2018. [ 19] La opción para usarlo estuvo disponible el 31 de mayo de 2018. [ 20] | |
Terremoto II | Software de identificación | Motor del Quake II | 9 de febrero de 2019 | Se lanzó un puerto que utiliza MoltenVK llamado vkQuake2. [21] | |
Tomb Raider | Feral interactivo | Motor de la Fundación | 17 de enero de 2014 | Soporte de Metal con v1.2 en julio de 2019 [ cita requerida ] | |
El ascenso de Tomb Raider | Feral interactivo | Motor de la Fundación | 12 de abril de 2018 | ||
La sombra del Tomb Raider | Feral interactivo | Motor de la Fundación | 2019 | ||
Fórmula 1 2016 | Feral interactivo | Motor EGO 4.0 | 6 de abril de 2017 | ||
La vida es extraña 2 | Feral interactivo | Motor irreal 4 | 2019 | ||
La vida es extraña: antes de la tormenta | Feral interactivo | Motor Unity | 13 de septiembre de 2018 | ||
Divinidad: Pecado original II | Estudios Larian | Motor de divinidad 2 | 31 de enero de 2019 | ||
La puerta de Baldur III | Estudios Larian | Motor Divinity 4.0 | 22 de septiembre de 2023 | Soporte de metal en acceso anticipado desde el 6 de octubre de 2020 [ cita requerida ] | |
Compañía de Héroes 2 | Feral interactivo | Motor de esencia 3 | 21 de enero de 2015 | Soporte de metal desde el 19 de octubre de 2018 [ cita requerida ] | |
Sicario | Feral interactivo | Glaciar 2 | 20 de junio de 2017 | ||
¡Los ferrocarriles de Sid Meier! | Feral interactivo | Juego de bryo | 1 de noviembre de 2012 | Soporte de metal desde el 18 de diciembre de 2018 [ cita requerida ] | |
Warhammer 40,000: El amanecer de la guerra III | Feral interactivo | Motor de esencia 4 | 9 de junio de 2017 | ||
Total War: Roma remasterizada | Feral interactivo | Motor TW 2 | 29 de abril de 2021 | ||
Guerra total: Tres reinos | Feral interactivo | Motor TW 3 | 23 de mayo de 2019 | ||
Guerra total: Warhammer | Feral interactivo | Motor TW 3 | 19 de abril de 2017 | ||
Guerra total: Warhammer II | Feral interactivo | Motor TW 3 | 20 de noviembre de 2018 | ||
Saga Total War: Tronos de Britannia | Feral interactivo | Motor TW 3 | 24 de mayo de 2018 | ||
Saga Total War: Troya | Feral interactivo | Motor TW 3 | 13 de agosto de 2020 | ||
Medieval II: Guerra Total | Feral interactivo | Motor TW 2 | 17 de diciembre de 2015 | Soporte de metal desde el 25 de octubre de 2018 [ cita requerida ] | |
Imperio: Guerra Total | Feral interactivo | Motor TW 3 | 4 de marzo de 2009 | Soporte de metal desde el 16 de diciembre de 2019 [ cita requerida ] | |
Napoleón: Guerra total | Feral interactivo | Motor TW 3 | 2 de julio de 2013 | Soporte de Metal desde el 25 de octubre de 2019 con v1.2 [ cita requerida ] | |
Guerra total: Shogun 2 | Feral interactivo | Motor TW 3 | 31 de julio de 2014 | Soporte de metal desde el 4 de octubre de 2019 [ cita requerida ] | |
Total War: Shogun 2: La caída del samurái | Feral interactivo | Motor TW 3 | 18 de diciembre de 2014 | Soporte de metal desde el 4 de octubre de 2019 [ cita requerida ] | |
Bioshock remasterizado | Feral interactivo | Motor Unreal 2.5 | 22 de agosto de 2017 | ||
Bioshock 2 remasterizado | Feral interactivo | Motor Unreal 2.5 | 22 de octubre de 2020 | ||
Fórmula 1 2017 | Feral interactivo | Motor EGO 4.0 | 25 de agosto de 2017 | ||
Deus Ex: La humanidad dividida | Feral interactivo | Motor del amanecer | 12 de diciembre de 2017 | ||
Rally de suciedad | Feral interactivo | Motor EGO 2.5 | 16 de noviembre de 2017 | ||
Exceso de balística | Estudio de juegos Aquiris | Motor Unity 5 | 28 de marzo de 2017 | ||
Tecnología de batalla | Planes descabellados | Motor Unity 5 | 24 de abril de 2018 | ||
Mafia III | Medios de comunicación Aspyr | Motor de ilusión | 11 de mayo de 2017 | ||
Mundo de Warcraft | Entretenimiento Blizzard | Motor WoW | 23 de noviembre de 2004 | Soporte de metal desde agosto de 2016 [ cita requerida ] | |
nave estelar | Entretenimiento Blizzard | Motor de Warcraft II modificado | 20 de noviembre de 2001 | Soporte de Metal desde el 2 de julio de 2020 con v1.23.5 [ cita requerida ] | |
StarCraft II | Entretenimiento Blizzard | Motor SC2 | 27 de julio de 2010 | Soporte de Metal en versión beta desde el 24 de enero de 2017 [ cita requerida ] | |
Héroes de la tormenta | Entretenimiento Blizzard | Motor SC2 | 2 de junio de 2015 | Soporte de Metal en versión beta desde el 24 de enero de 2017 (eliminado temporalmente el 29 de noviembre de 2017 [22] hasta ?) [ cita requerida ] | |
Fortnite | Juegos épicos | Motor irreal 4 | 25 de julio de 2017 | ||
Obducción | Mundos cian | Motor irreal 4 | 29 de marzo de 2017 | ||
Espacio eterno | Pez roca | Motor irreal 4 | 26 de mayo de 2017 | ||
Ark: La supervivencia evolucionó | Estudio Wildcard | Motor irreal 4 | 29 de agosto de 2017 | ||
Observador | Equipo Bloober | Motor irreal 4 | 24 de octubre de 2017 | ||
Torneo irreal | Juegos épicos | Motor irreal 4 | Cancelado | Soporte de metal desde enero de 2017 [ cita requerida ] | |
Refundir | Dominique Grieshofer | Motor irreal 4 | 5 de septiembre de 2016 | ||
Ciudades: Skylines | Paradoja interactiva | Motor Unity 5 | 10 de marzo de 2015 | Soporte de metal desde el 18 de mayo de 2017 [ cita requerida ] | |
Sandbox del universo | Ejército gigante | Motor Unity 5 | Por confirmar | Soporte de Metal en versión beta desde junio de 2017 [ cita requerida ] | |
Trueno de guerra | Entretenimiento Gaijin | Motor Dagor 4 | 1 de noviembre de 2012 | Se agregó soporte de metal el 24 de mayo de 2017 (se eliminó en ? 2018 y se reintrodujo el 27 de agosto de 2020 ) [ cita requerida ] | |
El testigo | Thekla, Inc | Motor Thekla | 8 de marzo de 2017 | ||
Serie mundial de Micro Machines | Programación virtual | Motor Unity 5 | 30 de junio de 2017 | ||
Guardianes de la Galaxia: La serie Telltale | Juegos de Telltale | Herramienta reveladora | 18 de abril de 2017 | ||
Batman: El enemigo interior | Juegos de Telltale | Herramienta reveladora | 8 de agosto de 2017 | ||
Minecraft: Modo historia - Temporada 2 | Juegos de Telltale | Herramienta reveladora | 11 de julio de 2017 | ||
ARMA 3 | Programación virtual | Virtualidad real | Por confirmar | Soporte de Metal en versión beta desde el 17 de septiembre de 2017 [ cita requerida ] | |
MXGP3 | Programación virtual | Motor irreal 4 | 23 de noviembre de 2018 | ||
Grava | Programación virtual | Motor irreal 4 | 20 de enero de 2019 | ||
X-Plane 11 | Investigación laminar | N / A | 30 de mayo de 2017 | Soporte de Metal en versión beta desde el 2 de abril de 2020 [23] | |
Cabecera | Producciones Doble Fina | Motor de Buda | 18 de noviembre de 2016 | ||
Los Sims 3 | Maxis Redwood Shores | El motor de Los Sims 3 | 2 de junio de 2009 | 28 de octubre de 2020 | |
Los Sims 4 | Maxis | Sim inteligente | 17 de febrero de 2015 | Soporte de metal añadido el 12 de noviembre de 2019 [ cita requerida ] | |
Los Pergaminos Antiguos en Línea | Estudios en línea Zenimax | N / A | 4 de abril de 2014 | 22 de octubre de 2018 | El renderizador OpenGL se reemplazó con Vulkan a través del contenedor MoltenVK (traduce las llamadas de la API de Vulkan a Metal) en el parche 4.2.5 |
Cielo: Hijos de la Luz | Esa compañía de juegos | N / A | 18 de julio de 2019 | Se agregó soporte para Native Metal desde el lanzamiento mundial previo en noviembre de 2017 | |
Residente malvado pueblo | Capcom | Motor RE | 28 de octubre de 2022 | Primer juego para macOS con soporte para MetalFX |
{{cite web}}
: CS1 maint: bot: estado de URL original desconocido ( enlace )