Desde que lo anunciaran, hemos oido sorprendentes declaraciones sobre Mantle, la nueva API (aplication programming interface). Los números que se han dicho, sobre la ganancia en rendimiento, parecen difícil de creer, concretamente en Battlefield 4 funcionando 45% más rapido en Mantle que sobre DirectX
Parece demasiado bueno para ser verdad, así que hemos hablado con Robert Hallock de AMD. Nos ha explicado como AMD ha conseguido alcanzar dichos resultados con su API y el por qué el piensa que hay una gran posibilidad de que se convierta en un standard. Si esta en lo cierto, Mantle puede dar enormes cambios sobre cómo se hacen los juegos y que tipo de rendimiento los PC-gamers pueden esperar de sus equipos.
En la actualidad cuando juegas un juego PC, DirectX esta trabajando a escondidas para coordinar el juego y el hardware, especialmente la GPU y el/la CPU.
"Draw Call es cuando pones un objeto en la pantalla" explica Hallock. "La GPU le habla a la CPU y dice: "Ey, esto tiene que ir a la pantalla". Las APIs que usamos están muy lmiitadas sobre el número de draw calls que se puede pedir por fotograma. Cada fotograma requiere varios miles de draw calls. Ahora, en el mejor caso posible, las APIs pueden dar entre 3000 y 5000 draw call. Esos son cuantos objetos pueden aparecer en pantalla.
"Mantle eleva este nivel hasta las 80 000 o 90 000. Es un incremento masivo en el número de objetos que la GPU puede manejar. Por supuesto, cuando incrementamos ese límite, no significa que los desarrolladores no usarán tanto potencial. Pero ellos pueden aumentar el rendimiento de los draw calls "
[opinion personal, esto es lo que sucederá con el parche para el BF4, se verá todo igual pero requerirá menos recursos para obtener un mejor resultado]
Hay dos factores principales detrás de ese aumento. El primero es que DirectX (OpenGL igual) y sus librerías no estaban preparadas para la era multinúcleo. El resultado no es la mejor aproximación a multithreading/multihilo según Hallock. Aun asi, hay que ver el rendimiento que se necesita "Hay un punto donde las APIs actuales no son capaces de responder todas las llamadas". Mantle ha sido diseñado teniendo en cuenta el hardware
moderno. El segundo factor es el propio lenguaje de programación de Mantle. "(Este aumento de rendimiento) son resultado de la baja carga de la API. A nivel fundamental, el código de Mantle es ejecutado en un lenguaje muy similar a la forma en que habla la propia arquitectura de la GPU. Cada arquitectura tiene su propio dialecto nativo".
Hallock continúa: "Reduciéndo esa carga aumenta rendimiento, permitiéndo hacer más eliminando inactividad en el hardware. Podemos calmar o direccionar esas instancas y permitir a la GPU trabajar más rápido y de manera más eficiente".
Mientras Mantle ofrece una enorme ganancia teórica esto no significa nada hasta que sea adoptado por los desarrolladores, que llevan muchos años y mucha experiencia con DirectX. Hallock entiende esto y sabe que el éxito de Mantle no esta garantizado.
"No hay duda que propia adopción de Mantle sea el mayor obstáculo. Nuestra mayor esperanza es que Mantle llegue a ser adoptado por la industria como standard o el hecho que si existiese y presente un mejor modelo sea la inspiración para nuevos productos. Asi que si llegamos a ser el standard y beneficia a la industria o algo como Mantle llega a ser el standard, indirecta o directamente, los PC-gamers se verán beneficiados" dice.
Pero el piensa que AMD tiene gran oportunidad de ser adoptado. Por esto, Mantle fue diseñado parcialemente en respuesta a lo que los desarrolladores necesitan y piden. DICE en particular, quería tener una API para que el desarrollo PC fuera eficiente para su equipo que estaba trabajando en las consolas.
Porque si tu lo piensas, el asombroso trabajo/desarrollo de las consolas ante todo. Como colección de componentes, la Xbox360 nunca llamó la atención y debería estar obsoleta desde hace años. Aun así es capaz, es capaz de correr los mismos juegos que el PC (no obstante el incremento fue en cierta manera sospechoso conforme pasaban los años).
"Ellos tenían una plataforma de hardware, asi que había el mismo hardware en cada consola" Hallock comenta."Esto deja al desarrollador, como Mantle, aproximarse mucho a la GPU y escribir casi el mismo código que la GPU [sin abstracción o capas de traducción]. De esta manera puedes obtener un rendimiento enorme debido a la plataforma usada. Y esto es algo que en los PC's no se podía hacer hasta que llega Mantle, porque cada PC is diferente".
Ahora, hay algo que Hallock no comentó pero es casi cierto que es uno de los mayores factores detrás de la adopción de Mantle: hardware AMD en las nuevas consolas. Esta plataforma en PS4 o XboxOne es territorio AMD, asi que no es dificil de observar cómo, sin más, trabajar con una API AMD puede ser muy atractivo.
Hallock admite "Lo inteligente detrás en Mantle es que es muy similar a los tipos de código que los desarrolladores están creando para las consolas, asi que el proceso para portar es bastante simple".
Esto es crucial por todo lo que vimos con la PS3 y su procesador cuando los desarrolladores se encuentraron al trabajar con algo no familiar debido a la inusual arquitectura de la consola. DirectX es bastante familiar siendo diseñado para ser un lenguaje bastante parecido a los que los desarrolladores conocen y usan. Mantle llegará a ser igual de cómodo por lo que tendrá éxito aunque ya que se trata de un lenguaje cercano al que la GPU usa no sea tán sencillo como lo es DirectX.
Estos problemas no tendrán importancia si los desarrolladores se habituan a trabajar con Mantle.
Lo "bonito" de Mantle es que no necesitas tirar todo el trabajo que tienes ya ni necesita empezar de cero. Hallock explica: "Hemos diseñado Mantle para ser compatible con DirectX Hight Level Shader Language. Así el código que se escribió en DirectX es directamente compatible con Mantle. No podré anunciar que DirectX se irá al garete. No es algo que esperamos reemplazar. Es una potente, importante y gran API".
Mantle sigue haciendosé un camino al mercado asi como AMD continua desarrollándolo y llevándolo a los desarrolladores. Pero la gente con GPU's de AMD podrán probar a finales de mes cuando salga el parche de Battlefield 4 que soporta Mantle. Será bastante interesante probar de primera mano lo que Mantle puede ofrecer a los gamers.
"Veo dos grandes cosas para Mantle"-dice Hallock. "Si no pasa nada, hay dos cosas que llevarán a la adopción [de Mantle]. Una: los desarrolladores les encanta mucho Mantle. Todos los desarrolladores que están trabajando con Mantle ha sido porque nos lo han pedido. Están emocionados usándolo. El segundo punto es que los jugadores verán los beneficios en el rendimiento y lo querrán usar siempre. Y esto nos llevado a ambos lados del desarrollo continuo de los videojuegos: impulsar a los desarrolladores y echar desde el punto de vista del consumo".