Vulkan vs DirectX 12: ¿Qué API utilizarán los juegos en el futuro?
Hace unos días os hablábamos de la polémica que había levantado Quantum Break, que fue lanzado para Steam en su versión basada en DirectX 11, mientras que la versión de DirectX 12 se queda de manera exclusiva en la tienda de Microsoft, y no recibiría más actualizaciones. En ese artículo explicamos a grandes rasgos qué era una API (básicamente, el código que comunica las instrucciones del juego con el hardware), y qué versión merecía más la pena entre DirectX 11 y 12. El futuro pasará por una de estas dos APIs: Vulkan o DirecX 12.
Antes de explicar lo que es Vulkan, debemos hablar brevemente de otra API que era de código libre y es incluso anterior a DirectX: Open Graphics Library, o más conocida como OpenGL. Fue lanzada en 1992 y se usa en diversos entornos de creación 3D, como CAD, simulación de vuelo, o en videojuegos, donde compite en PC con DirectX desde que este último fue lanzado en 1995.
DirectX ha tenido tradicionalmente un mejor rendimiento que OpenGL, sobre todo desde su versión más popular, DirectX 9.0c. Esto era debido a que DirectX funcionaba de manera nativa con Windows, que era y es el sistema operativo más extendido para jugar a videojuegos en PC.
Debido a que esta batalla estaba perdida, OpenGL necesitaba una evolución. A pesar de que no se utilizaba apenas ya en Windows, en Android sí ha tenido más popularidad, y es en los teléfonos móviles donde el rendimiento y el uso de batería se miden al milímetro. Por ello, crear una nueva API multiplataforma que sea más eficiente que sus predecesoras era vital, y así surgió Vulkan.
¿Qué es Vulkan?
Vulkan es una API de bajo nivel que permite utilizar los recursos gráficos de manera más directa y eficiente, con lo que se mejora el rendimiento al reducir el número de capas por las que tienen que pasar las instrucciones. El grupo encargado de desarrollar Vulkan, Khronos Group, se basó en la API de AMD, Mantle, para crear Vulkan, la cual tenía también como objetivo permitir a los desarrolladores extraer más rendimiento del hardware. DirectX 12 tiene un objetivo similar.
Vulkan es multiplataforma, y ya es compatible con las últimas versiones de Android, donde ha sustituido a OpenGL, y lo seguirá haciendo de aquí en adelante, ofreciendo mejor rendimiento al mismo consumo de recursos. También se beneficia de procesadores multinúcleo, que han sido uno de los talones de Aquiles de los juegos de ordenador en los últimos años.
¿Por qué Vulkan y DirectX 12 van mucho mejor en tarjetas AMD?
AMD desarrolló Mantle, y por tanto sus tarjetas gráficas eran compatibles con una tecnología llamada ‘computación asíncrona’, que permite ejecutar instrucciones de manera más eficiente, y en el caso de tarjetas AMD, llega hasta a duplicar el número de FPS con respecto a DirectX 11. Las diferencias con respecto a NVIDIA radican en temas de arquitectura, ya que cada marca tiene una distinta.
¿Por qué ocurre esto? Sencillo. Con una API que permita acceso a bajo nivel, se pueden utilizar mejor los recursos de los que dispone una tarjeta, y los desarrolladores pueden programar su código de manera más eficiente. Así, en lugar de utilizar el 60 o 70% del rendimiento de la tarjeta, se puede llegar a obtener el 80 o 90% de rendimiento de la misma, resultando en el gran aumento de FPS que vemos.
NVIDIA no ha tenido elementos de computación asíncrona hasta las tarjetas que ha sacado en los últimos meses basadas en la arquitectura Pascal, mientras que AMD lleva equipándolas en sus tarjetas desde el año 2012. Es por ello que en las pruebas de rendimiento hemos visto como las tarjetas de NVIDIA no tenían apenas ventajas en DirectX 12, o incluso perdían algo de rendimiento.
Vulkan vs DirectX 12: ¿Qué API ganará la batalla?
De momento, Vulkan ya está disponible en juegos de PC como DOOM, Dota 2, The Talos Principle, o el famoso Ashes of the Singularity, que tanto ha dado que hablar gracias a sus pruebas de rendimiento. En DOOM, Vulkan demuestra una gran ganancia de rendimiento con respecto a OpenGL, sin poder compararlo de tú a tú con DirectX 12. En tarjetas NVIDIA como la GTX 1080 y la 1070, la ganancia es un 11.2% y un 6.8%, respectivamente, mientras que la R9 Fury X obtiene un 39.5% más de rendimiento, o la RX 480 un 28.7%. Una auténtica barbaridad. La GTX 970 mejora tan sólo un 3.4%, pero es destacable que, a pesar de no tener computación asíncrona, se mejore algo el rendimiento.
DirectX 12 es exclusivo de Windows 10, y viendo como parece haberse estancado recientemente el número de usuarios que instalan este sistema operativo, podríamos ver claramente cómo Vulkan es más utilizado por los desarrolladores. Esto puede ser debido a que todavía quedan más usuarios en Windows 7 y Windows 8 que los que hay en Windows 10, y Vulkan es compatible con Windows 7 y Windows 8.
Lo que está claro es que las APIs de bajo nivel han llegado para quedarse, y que en los próximos años veremos cómo cada vez más juegos las utilizan. Vulkan es el primer rival serio a nivel de rendimiento que ha tenido DirectX desde 1995, y la experiencia nos dice que, si algo es mejor y encima es de código abierto, funciona con sistemas operativos anteriores, y encima es multiplataforma, está claro que tiene todas las de ganar.