Articulo de referencia

Metal (API)

"},"developer":{"wt":"[[Apple Inc.]]"},"released":{"wt":"{{start date and age|2014|06}}"},"latest release version":{"wt":"4"},"latest release date":{"wt":"{{start date and age|2...

Metal es una API de sombreado de gráficos 3D y computación acelerada por hardware de bajo nivel y bajo consumo de recursos, creada por Apple y lanzada en iOS 8. Metal combina funciones similares a OpenGL y OpenCL en una sola API. Su objetivo es mejorar el rendimiento ofreciendo acceso de bajo nivel al hardware de la GPU para aplicaciones en iOS , iPadOS , macOS , tvOS y visionOS (aunque no en watchOS ). Es similar a las API de bajo nivel de otras plataformas , como Vulkan y DirectX 12 .

Metal es una API orientada a objetos que se puede invocar utilizando los lenguajes de programación Swift , Objective-C o C++17 [ 4 ] . La ejecución completa en GPU se controla mediante el lenguaje de sombreado de Metal. [ 5 ]

Características

Metal tiene como objetivo proporcionar acceso a la GPU con baja sobrecarga. Los comandos se codifican previamente y luego se envían a la GPU para su ejecución asíncrona. La aplicación controla cuándo esperar a que finalice la ejecución, lo que permite a los desarrolladores aumentar el rendimiento codificando otros comandos mientras se ejecutan en la GPU o ahorrar energía esperando explícitamente a que finalice 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 precalculan de antemano, lo que permite al controlador de la GPU saber con anticipación cómo configurar y optimizar la canalización de renderizado antes de la ejecución del comando. [ 6 ]

Metal mejora las capacidades de programación GPGPU mediante el uso de sombreadores de cómputo . Metal utiliza un lenguaje de sombreado específico basado en C++14 , implementado con Clang y LLVM . [ 7 ]

Metal permite a los desarrolladores de aplicaciones crear recursos de Metal, como búferes y texturas. Los recursos se pueden asignar a la CPU, la GPU o ambas, y proporciona herramientas para actualizar y sincronizar los recursos asignados. Metal también puede garantizar el estado de un recurso durante la vida útil de un codificador de comandos. [ 8 ] [ 9 ]

En macOS, Metal permite a los desarrolladores de aplicaciones especificar qué GPU utilizar. Pueden elegir entre la GPU integrada de bajo consumo de la CPU, la GPU dedicada (en ciertos MacBooks y Macs) o una GPU externa conectada mediante Thunderbolt. Además, tienen preferencia sobre cómo se ejecutan los comandos de la GPU y sobre qué GPU se ejecutan de forma más eficiente (por ejemplo, los comandos para renderizar una escena pueden ser ejecutados por la GPU dedicada, mientras que el posprocesamiento y la visualización pueden ser gestionados por la GPU integrada). [ 10 ]

Shaders de rendimiento metálico

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 y, al mismo tiempo, reducir el trabajo de mantenimiento de las funciones específicas de la familia de GPU. [ 11 ] Proporciona funciones que incluyen:

  • Algoritmos de filtrado de imágenes
  • Procesamiento de redes neuronales
  • operaciones matemáticas avanzadas
  • trazado de rayos

Historia

Metal está disponible desde el 2 de junio de 2014 en dispositivos iOS con procesador Apple A7 o posterior, [ 12 ] y desde el 8 de junio de 2015 en Macs (modelos de 2012 o posteriores) con OS X El Capitan . [ 13 ]

El 5 de junio de 2017, en la WWDC , Apple anunció la segunda versión de Metal, compatible con macOS High Sierra , iOS 11 y tvOS 11. Metal 2 no es una API independiente de Metal y es compatible con el mismo hardware. Metal 2 permite una depuración y un análisis de rendimiento más eficientes en Xcode , un aprendizaje automático acelerado , una menor carga de trabajo de la CPU , compatibilidad con la realidad virtual en macOS y, en particular, con las especificidades de la GPU Apple A11 . [ 14 ]

En la WWDC 2020 , Apple anunció la migración de la Mac a Apple Silicon . Las Mac que utilicen Apple Silicon contarán con GPU de Apple con un conjunto de características que combinan lo que antes estaba disponible 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. [ 15 ]

En la WWDC 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 introduce el marco de escalado MetalFX, que renderiza escenas complejas en menos tiempo por fotograma con escalado de alto rendimiento y suavizado de bordes, y compatibilidad con sombreadores de malla. [ 16 ] También se anunció la posibilidad de usar C/C++ para la API de Metal. [ 17 ]

En la WWDC 2023 , Apple anunció un nuevo kit de herramientas llamado Game Porting Toolkit para portar juegos de Windows 10/11. Incluye un entorno para probar binarios, capas de traducción de HLSL a MSL y enlaces Metal-cpp. Jeremy Sandmel anunció un nuevo Modo Juego para macOS Sonoma , y ​​Hideo Kojima anunció Death Stranding para la App Store de macOS. [ 18 ]

En la WWDC de 2024 , Apple anunció Game Porting Toolkit 2, junto con el lanzamiento de nuevos juegos como Control: Ultimate Edition , Frostpunk 2 y Assassin's Creed Shadows para macOS. [ 19 ]

En la WWDC 2025 , Apple anunció Metal 4, una nueva versión de la API que incluye un sistema de codificación de comandos unificado, soporte para renderizado neuronal y nuevas tecnologías como MetalFX Frame Interpolation y un eliminador de ruido de trazado de rayos. [ 20 ]

GPU compatibles

La primera versión de Metal admite el siguiente hardware y software: [ 21 ]

La segunda versión de Metal es compatible con el siguiente hardware y software:

La tercera versión de Metal admite el siguiente hardware y software: [ 22 ]

La cuarta versión de Metal es compatible con el siguiente hardware y software:

Adopción

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. [ 24 ] Los juegos de macOS que utilizan Metal para la renderización se enumeran a continuación.

Véase también

  • Direct3DDirectX 12 introduce API de bajo nivel.
  • Mantle : API de bajo nivel de AMD
  • Vulkan : sucesor de OpenGL con bajo consumo de recursos.
  • MoltenVK : biblioteca de compatibilidad de software para ejecutar software Vulkan sobre la API de Metal.
  • WebGPU
  • OpenGL : API gráfica multiplataforma

Referencias

  1. McWhertor, Michael (9 de septiembre de 2014). "Este es el juego que Apple usó para mostrar el iPhone 6" . Polygon . Vox Media . Archivado del original el 11 de septiembre de 2014. Recuperado el 9 de septiembre de 2014 .
  2. "Notas de Lina sobre AGX" .
  3. "gist.github.com" .
  4. "Primeros pasos con Metal-CPP - Metal" .
  5. Apple Inc. "Especificación del lenguaje de sombreado metálico" (PDF) . Archivado (PDF) del original el 29 de octubre de 2016. Recuperado el 3 de septiembre de 2018 .
  6. "Configuración de una estructura de comandos" . Apple Inc.
  7. "Guía del lenguaje de Metal Shading" . 8 de septiembre de 2014. Archivado del original el 15 de marzo de 2016. Consultado el 10 de septiembre de 2014 .
  8. Apple Inc. "Configuración del modo de almacenamiento de recursos" .
  9. "Sincronización de un recurso administrado" . Apple Inc.
  10. "Selección de GPU en macOS" . Apple Inc. Archivado del original el 22 de noviembre de 2019. Consultado el 3 de mayo de 2020 .
  11. "Metal Performance Shaders" .
  12. Machkovech, Sam (2 de junio de 2014). "Apple se centra en los videojuegos y anuncia la plataforma de desarrollo Metal" . Ars Technica . Condé Nast .
  13. Smith, Colin; Meza, Starlayne (8 de junio de 2015). "Apple anuncia OS X El Capitan con una experiencia refinada y un rendimiento mejorado" . Sala de prensa . San Francisco : Apple . Archivado del original el 8 de junio de 2015. Consultado el 10 de septiembre de 2017 .
  14. "Metal 2" . Desarrollador de Apple . Apple . 20 de noviembre de 2017. Archivado del original el 20 de noviembre de 2017 , vía Wayback Machine .
  15. "Lleva tu aplicación Metal a las Mac con Apple Silicon" . developer.apple.com . Archivado del original el 3 de enero de 2021. Consultado el 13 de julio de 2020 .
  16. "Descubre Metal 3" . developer.apple.com . Archivado del original el 13 de junio de 2022. Consultado el 24 de junio de 2022 .
  17. "Programar Metal en C++ con metal-cpp" . developer.apple.com . Consultado el 10 de septiembre de 2022 .
  18. "WWDC 2023 - Actualizaciones de Game Porting Toolkit y Metal" . YouTube . 5 de junio de 2023. Consultado el 25 de julio de 2025 .
  19. "WWDC 2024 - Game Porting Toolkit 2 y más" . YouTube . 10 de junio de 2024. Consultado el 25 de julio de 2025 .
  20. "WWDC 2025 - Anuncio de Metal 4" . YouTube . 9 de junio de 2025. Consultado el 25 de julio de 2025 .
  21. Chiappetta, Marco (11 de diciembre de 2018). "Apple da la espalda a sus clientes y a NVIDIA con macOS Mojave" . Forbes .
  22. "Tablas de conjuntos de características de Metal" (PDF) . Apple . Archivado (PDF) del original el 14 de octubre de 2022. Recuperado el 15 de octubre de 2024 .
  23. "Tablas de conjuntos de características de Metal (2022)" (PDF) . Apple . Archivado del original (PDF) el 14 de octubre de 2022. Consultado el 12 de junio de 2025 .
  24. Apple Inc. "WWDC 2017 Plataformas Estado de la Unión" . Archivado del original el 6 de junio de 2019. Consultado el 6 de octubre de 2017 .
  25. "Aplicaciones Vulkan habilitadas en plataformas Apple" . Comunicado de prensa de Khronos Group. Archivado del original el 28 de febrero de 2018. Consultado el 24 de febrero de 2021 .
  26. Larabel, Michael (1 de junio de 2018). "El rendimiento inicial de Vulkan en macOS con Dota 2 se ve muy bien" . Phoronix. Archivado del original el 7 de febrero de 2022. Recuperado el 5 de junio de 2018 .
  27. "NOTAS DEL PARCHE DE EQUILIBRIO DE HEROES OF THE STORM — 29 DE NOVIEMBRE DE 2017" . news.blizzard.com . 29 de noviembre de 2017.
  28. 1 2 "Hollow Knight - Un juego de aventuras | Hecho con Unity" . Unity . Consultado el 11 de mayo de 2026 .
  29. "Hollow Knight: Silksong en Steam" . store.steampowered.com . Consultado el 11 de mayo de 2026 .
  30. Kondrak, Krzysztof [@k_kondrak] (9 de febrero de 2019). "vkQuake2 obtiene soporte para MacOS" ( Tweet ) . Recuperado el 9 de febrero de 2019 vía Twitter .
  31. 1 2 "Transport Fever 2 - Transport Fever 2 recibe soporte para Mac y Vulkan - Noticias de Steam" . store.steampowered.com . 23 de febrero de 2021. Archivado del original el 25 de febrero de 2021. Recuperado el 12 de febrero de 2026 .
  32. "Depósito 1066783 (Transport Fever 2 Mac)" . SteamDB . Consultado el 12 de febrero de 2026 .
  33. "X-Plane 11.50 Beta pública 1: Vulkan y Metal ya están aquí" . Desarrollador de X-Plane . 2 de abril de 2020. Archivado del original el 3 de abril de 2020. Consultado el 2 de abril de 2020 .
  • Metal para desarrolladores
  • Guía de programación de Metal (preliminar)
  • Demo de la WWDC14 ; versión extendida
  • Instalación de macOS 10.14 Mojave en Mac Pro (mediados de 2010) y Mac Pro (mediados de 2012) : artículo de Apple que explica qué GPU son compatibles con las API Metal de Apple en el sistema operativo Mac OS 10.14 (Mojave).