API Vulkan: qué es y cómo ayuda a mejorar el rendimiento en los juegos

API Vulkan: qué es y cómo ayuda a mejorar el rendimiento en los juegos

Javier López

Con el ingreso de DXR otras API se han quedado algo atrás en cuanto a implementar funciones como el trazado de rayos, donde Microsoft parece haber tomado cierta ventaja con la implementación de Ray Tracing, pero los desarrolladores siguen apostando por una API como Vulkan, pero ¿qué es y cómo ayuda a mejorar el rendimiento en los juegos actuales y futuros?

Vulkan tienen un largo y extenso recorrido, pero sobre todo tuvo un inicio prometedor

Vulkan-Khronous-Group

Antes de conocer la historia de Vulkan como tal, sus mejoras o novedades y su implementación en los juegos actuales, hemos de entender qué es una API, principal pilar en el que se basa Vulkan para existir como tal.

Una API o Application Programming Interface (interfaz de programación de aplicaciones) es un conjunto de protocolos, definiciones y subrutinas que se utilizan para desarrollar e integrar software en las aplicaciones.

Una API permite que un producto y un servicio se comuniquen con otros adyacentes y/o complementarios, sin que tengan por qué conocerse ni saber sus características, ya que representan un método independiente en cuanto a capas en la programación del software.

Entendido esto, ahora podemos comprender el funcionamiento y desempeño de Vulkan como API, pero antes, vayámonos a sus orígenes.

Mantle Benefits

La concepción de Vulkan como API se fraguó gracias a Khronos Group, los cuales simplemente querían mostrar una iniciativa alternativa y basada en OpenGL para la nueva generación.

Pero entonces llegó AMD, la cual se mostró interesada en adoptar un nuevo enfoque para una API de gráficos que definiera el futuro de los videojuegos y su implementación. Por ello, y desde el consorcio de OpenGL, los de Lisa Su crearon Mantle, una API que corría en paralelo a la versión primigenia de Vulkan y que tenía como principales ventajas la capacidad de control total del rendimiento del sistema a bajo costo, mejor eficiencia y capacidad de controlar múltiples núcleos de la CPU.

En este punto los caminos de AMD y Khronos Group se cruzaron, donde la primera le cedió el código a la segunda con la condición de desarrollar un estándar abierto similar a OpenGL, pero muy mejorado. Ahí nació Vulkan como API de bajo nivel, la cual fue lanzada al mercado y a disposición de todos el 16 de febrero de 2016.

Heredando lo mejor de Mantle y comenzando un camino tan brillante como duro de seguir

Aunque es cierto que Mantle fue desarrollado por AMD y por ello para su hardware de forma específica, Vulkan supuso un cambio de paradigma y una amplitud de miras hacia cualquier hardware actual, por lo tanto es multiplataforma y totalmente compatible con Windows 7, Windows 8, Windows 8.1 y Windows 10, aparte por supuesto de ofrecer compatibilidad con Linux mediante los drivers de cada tarjeta gráfica.

Como parte del desarrollo de AMD, Vulkan fue la primera en implementar el soporte para computación asíncrona, lo cual permitía unas cargas de trabajo paralelas al renderizado 3D común hasta ese momento.

Pero además y tras la adquisición por parte de Khronos Group, se le ha dado soporte para dispositivos móviles con un subconjunto de rutinas llamado OpenGL ES.

Vulkan-2

El camino de esta API le ha llevado a mejorar la reducción de la carga sobre el driver, y por lo tiempo optimizando las llamadas Draw Calls a la CPU, lo cual libera a esta última de cargas de trabajo y permite que empuje más el rendimiento del juego en cuestión.

Gracias a Mantle fue la primera API con un escalamiento muy mejorado de la CPU, donde se ofrece actualmente hasta soporte para 8 núcleos y 16 hilos de forma simultánea, estando al nivel de DXR en este aspecto. En cuanto a las GPUs, es capaz de administrar los núcleos (CU en AMD y SM en NVIDIA) junto con los Shaders gráficos, no teniendo que utilizar una API de alto nivel para los cálculos más complejos.

Como podemos ver, Mantle primero y Vulkan después han marcado el camino de los juegos actuales, donde ahora todas las API son de bajo nivel e implementan mejor escalabilidad con el hardware actual.