La nueva API gráfica abierta de bajo nivel, desarrollada en conjunto entre los desarrolladores de juegos y de hardware gráfico.

Con un nombre que hace una clara alegoría a las capas terrestres, durante el evento GPU ´14, AMD y sus socios revelaron el nuevo API gráfico de bajo nivel Mantle (Manto), API que se une a los ya populares Microsoft DirectX y Khronos OpenGL, como un estándar de facto destinado a ofrecer un rendimiento superior en juegos y aplicaciones gráficas intensivas para estaciones de trabajo.

¿Qué es Mantle?

A diferencia de APIs de alto nivel como DirectX y OpenGL, Mantle es un API gráfica de bajo nivel y alto rendimiento, la que posee niveles mínimos de abstracción entre el código y el hardware (GPU), por lo que prácticamente permite programar “casi en el lenguaje nativo” del GPU, logrando sacar todo el verdadero potencial que es capaz de alcanzar el GPU, evitando las pérdidas de rendimiento ocasionadas por las capas de abstracción de las API gráficas de alto nivel.

¿Cómo nace Mantle?

Durante mucho tiempo, los desarrolladores de juegos para consolas tienen que lidiar con las limitaciones del hardware a medida que los juegos se hacen más y más complejos; una forma de luchar contra estas limitaciones es escribir parte del código del juego para que haga uso directo de las instrucciones nativas del hardware, la que combinan o no con las instrucciones del API grafico de la consola.

Gracias a lo anterior, las consolas consiguen desplegar un rendimiento y calidad gráfica muy superior al hardware para PC de similares especificaciones al de ellas, factor al que se suman los cada vez mejores, más complejos y optimizados algoritmos de los programadores para el hardware, los que podrán también ser usados en otras plataformas distintas a las consolas, aprovechando cada centavo y tiempo invertido por los desarrolladores.

Valiéndose de que el hardware de las consolas PlayStation 4 y XBox One son muy similares (CPU con 8 núcleos Jaguar + GPU basado en la arquitectura gráfica Graphics Core Next “GCN”), AMD en conjunto con los desarrolladores de títulos, desarrollaron esta nueva API, la que permitirá aprovechar las tareas de optimización gráfica ya realizadas en las consolas (incluso en la tarea de portar juegos PS4 <> XBox One), en otras plataformas como las PC/Notebooks (equipadas con GPUs AMD GCN), tablets x86 (SoC AMD Temash) e incluso en futuros dispositivos portátiles (SoCs AMD ARMv8); así como lo contrario (siempre y cuando el juego o su motor gráfico haya sido escrito en el lenguaje del API Mantle).

El rendimiento de Mantle

Gracias a su cercanía al código nativo del GPU, Mantle es capaz de ejecutar hasta 9 veces más llamadas gráficas (peticiones de dibujo) por segundo que las API gráficas de alto nivel, esto quiere decir que los juegos compatibles con Mantle, no requerirán de una potencia considerable de procesamiento del microprocesador, a diferencia de las API de alto nivel, las que en algunas ocasiones “sobrecargan” al CPU con llamadas gráficas.

Gracias a lo anterior, Mantle eliminará al CPU como el clásico cuello de botella que limita la cantidad de cuadros por segundo que es capaz de desplegar el GPU; pero con miras a futuro, Mantle puede hacer uso de múltiples hilos de procesamiento (hasta 8, justamente el número de hilos que son capaces de ejecutar PS4 y XBox One), a fin de repartir la carga originada por las llamadas gráficas al CPU, hacia los múltiples núcleos de los actuales microprocesadores.

AMD Mantle - 1

Aunque el API es capaz de procesar 9 veces más llamadas gráficas de dibujo que DirectX/OpenGL, ello no quiere decir que automáticamente se obtendrá un rendimiento 9 veces superior, pues ello se verá limitado por otros tipos de cálculos que realiza el GPU (AMD habló de dibujado, no de otras tareas como teselado, sombras, iluminación, alisado, difuminado, transparencia, efectos acelerados por GPU, etc), por lo que combinando todos los factores podríamos en el mejor de los casos incrementos de rendimiento inferiores a 2 o 3X (a menos que AMD nos tenga oculta alguna otra sorpresa por revelar).

AMD Mantle - 2

Mantle y los desarrolladores

Aunque Mantle ha sido desarrollado a petición de los desarrolladores de juegos para consolas; no será para todos, dada su naturaleza “hardcode” o de bajo nivel (más difícil de programar y con un bajo número de programadores que la dominen), probablemente su implementación por parte de las desarrolladoras pequeñas no será muy amplia, por lo que es más probable que sea implementado únicamente por las mayores desarrolladoras de la industria.

Otro punto interesante son los motores gráficos de los juegos (game engine) optimizados para Mantle, como Frostbite 3.0 (más engines optimizados para Mantle serán revelados posteriormente), el que al ser compatible con el API Mantle, hará que automáticamente cualquier juego basado en dicho motor automáticamente sea compatible con el API (de momento se han anunciado 15 juegos basados en Frostbite 3, entre ellos Battlefield 4).

Productos AMD compatibles con Mantle

Dado que el API Mantle está optimizada para la arquitectura gráfica Graphics Core Next y superiores de AMD, tenemos que de momento es soportada por los siguientes productos de AMD:

  • GPUs AMD Radeon HD 7000 Series.
  • GPUs AMD Radeon HD 8000 OEM Series.
  • GPUs AMD Radeon R 200 Series.
  • APUs AMD A Series de cuarta generación “Kaveri”.
  • SoCs AMD A/E Series “Kabini”.
  • SoCs AMD A/E Series “Temash”.

¿Mantle en GPUs no AMD?

A diferencia de APIs gráficas propietarias como la difunta 3dfx Glide, AMD y sus socios mantienen el API abierta a otros fabricantes de GPUs (AMD no mantiene un control estricto del API), por lo que hipotéticamente empresas como Intel, Nvidia, S3 Graphics u otras, podrían desarrollar su propio “Mantle driver”, el cual se comunicará directamente con el API Mantle, permitiéndoles ejecutar los juegos y motores gráficos desarrollados con el API Mantle y disfrutar muchos de sus beneficios.

De momento ni Intel ni Nvidia han mostrado interés alguno en apoyar a esta nueva API. Aunque ello podría cambiar en el futuro.

¿Mantle en sistemas operativos “no Windows”?

De momento Mantle funcionará en los sistemas operativos nativos de PlayStation 4 y XBox One, así como en las PC basadas en Windows (probablemente Windows 7 y superiores); pero AMD afirma también estar trabajando en implementar Mantle en otras plataformas, entre las que podríamos tener a Mac OSX y Linux.

Mantle: beneficioso en la actualidad ¿perjudicial a futuro?

Dado que es un API de bajo nivel, ello podría significar que de cierta forma, no sea capaz de aprovechar muchas de las optimizaciones y nuevas características de futuros GPUs basados en arquitecturas evolucionadas de Graphics Core Next, o basados en arquitecturas gráficas completamente nuevas y desarrolladas para mantener compatibilidad con las futuras versiones de los API DirectX y OpenGL.

Este escenario es algo difícil de predecir, probablemente, AMD u otras empresas que desarrollen drivers Mantle, podrán adaptar sus controladores para mantener compatibilidad con el API, a la vez que ofrecen un mayor rendimiento, pero probablemente no podrán usar características que no estén presentes en los GPUs de las consolas.

El escenario anterior podría remediarse con nuevas versiones del API, pero ellas podrían tener características no soportadas por las consolas, para las que deberá mantenerse una versión legada (legacy) del API. Difícil predecir como manejarán dicha situación AMD y los desarrolladores de juegos involucrados en la creación del API Mantle.

Links:

WebmasterDesarrolloVídeo Juegosalto nivel,AMD,API gráfico,bajo nivel,directx,GPUs,openglLa nueva API gráfica abierta de bajo nivel, desarrollada en conjunto entre los desarrolladores de juegos y de hardware gráfico. Con un nombre que hace una clara alegoría a las capas terrestres, durante el evento GPU ´14, AMD y sus socios revelaron el nuevo API gráfico de bajo nivel Mantle...comunidad virtual para compartir y difundir: información, conocimiento y experiencias relacionadas con las Tecnologías de la Información y la Comunicación.