Cuando disfrutamos de un juego, hay muchos componentes y programas informáticos que se comunican para que todo funcione. Esto es un proceso complicado, sobre todo el software, y suelen tener diferentes «idiomas». Se requiere un elemento unificador como son las API y, dentro de estas, tenemos la API Vulkan, una de las más usadas dentro del mundo de los videojuegos y que os puede resolver algún que otro problema de rendimiento con esa novedad que ha llegado recientemente al mercado.
La API Vulkan nace de una necesidad detectada por parte de AMD, ya que no existía una alternativa viable a DirectX de Microsoft. El proyecto inicial de la compañía, denominado Mantel, suponía que se iban a ver muy beneficiados porque ofrecer una posibilidad equivalente a la solución de Microsoft parecía una osadía que, curiosamente, con el paso del tiempo (y transformada por AMD) se ha visto respaldada por la industria. Y aunque inicialmente buscaban desarrollar una solución universal de código abierto, el clásico todo para todos, Mantel funcionaba mejor con su hardware que con el de la competencia.
Esto hacía que las posibilidades de integración en juegos se redujeran bastante. Al final, los desarrolladores querían una API universal y gratuita para la creación de juegos. Vamos, que no querían pagar y querían que funcionara igual de bien con hardware de Intel y NVIDIA. De las brasas creadas por Mantle nació Vulkan, una API de bajo nivel que cada vez tiene más fuerza y de la que seguramente has escuchado hablar alguna vez que te has puesto a jugar con tu ordenador, donde esa última novedad que has comprado te ofrece la posibilidad de elegirla, además del clásico DirectX de Microsoft.
¿Qué es Vulkan?
Es una API (Application Programming Interface) de bajo nivel y multiplataforma de código abierto. Ha sido desarrollada para los gráficos 3D y permite a los desarrolladores obtener mayor control de los recursos de la GPU para obtener un mejor rendimiento sin tener que realizar costosas labores de desarrollo específicas. De esta manera, pueden tener un mayor control sin demasiado esfuerzo para conectar el software con el hardware.
La API Vulkan originalmente fue desarrollada por parte de AMD y DICE con el nombre Mantle. Todo el desarrollo de Mantle fue cedido a Khronos Group, quien le cambió el nombre y continuó su desarrollo. Actualmente, AMD sigue colaborando activamente en el desarrollo de Vulkan como un participante más junto a los socios originales.
Se pretende con Vulkan explotar mejor los recursos existentes en el sistema para aplicaciones de gráficos 3D, como puedan ser videojuegos y medios interactivos. Es una solución más moderna y completa que OpenGL y una alternativa a DirectX de Microsoft sin coste para los desarrolladores. Por lo que sobre el papel son todo ventajas, así que vamos a explicar cómo puedes obtener de ella el máximo rendimiento de tu ordenador, activándola en la mayoría de juegos que llegan ahora mismo a Steam, Epic Games Store o cualquier otro sitio de PC.
¿En qué se diferencia Vulkan de DirectX?
Es probable que en este punto nos estemos preguntando en qué se diferencia realmente Vulkan de DirectX, ya que ambas API hacen más o menos lo mismo, por lo que en cuanto a usuario muchas veces es posible que no notemos la diferencia entre una y otra. Donde realmente podemos encontrarlas es en el ámbito del desarrollo, ya que es aquí donde vemos que son muy diferentes una de otra.
En primer lugar, y lo que más podemos destacar es el hecho de que Vulkan es una API mucho más flexible que DirectX, y es que la de Microsoft está creada, como bien podemos imaginar, para ofrecer un soporte específico para su sistema operativo, Windows, mientras que Vulkan al ser de código abierto y por estar diseñada con un propósito más general es multiplataforma, por lo que se puede utilizar en PC, consolas, dispositivos móviles, gafas de VR…
Por otra parte, Vulkan ofrece un rendimiento superior a DirectX, ya que permite a los desarrolladores establecer mucho mejor el control sobre el uso del hardware que va a tener la aplicación que se ha desarrollado mediante esta API. Si hablamos por otra parte, de la fácil que resulta utilizar cada una, es donde notaremos que DirectX tiene ventaja, principalmente por el hecho que todos sabemos, está apoyada por Microsoft, lo que hace que cuente con una variedad de herramientas y bibliotecas preconstruidas mucho más grandes en comparación con un modelo de código abierto.
En general ambas tienen tanto sus puntos positivos como negativos, pero en general no es algo que afecte demasiado al usuario medio, como mucho podremos notar la diferencia si tenemos un PC de baja gama y utilizamos Vulkan, ya que como bien hemos indicado ofrece un rendimiento superior al utilizar menos recursos. Si por el contrario sois desarrolladores, al final tendréis que elegir entre si preferís que sea todo más fácil pero que se limite prácticamente a Windows, o aumentar el grado de dificultad para hacer que aquello que queráis desarrollar sea mucho más flexible.
Cómo instalar Vulkan en nuestro PC
La realidad sobre la instalación de Vulkan como API en pleno 2019 es más sencilla de lo que parece, ya que por norma y en casi la totalidad de los PC actuales, dicha versión estará instalada casi por defecto. Y es que actualmente son los tres grandes de las tarjetas gráficas los que instalan de forma automática dicha API mediante sus drivers, donde la mayoría de tarjetas gráficas ofrece soporte para la misma en la actualidad.
Vulkan en Intel, AMD o NVIDIA
Cada actualización de driver suele incluir las últimas actualizaciones de lanzamiento, donde siguiendo con el ejemplo de NVIDIA, su última actualización fue el 13 de octubre en sus drivers 436.56 para Windows y 435.27.01 para Linux, donde añadió soporte para VK_KHR_spirv_1_4 y corrigió un error.
AMD por su parte ofrece soporte mediante sus drivers a partir de las APU serie 2000 y sus tarjetas gráficas HD 7000M hasta las actuales iGPU y GPU. Se podría resumir como todas las tarjetas basadas en la arquitectura GCN bajo Windows 7, 8.1, 10 y Linux. Así como las tarjetas gráficas basadas en las arquitecturas RDNA como las gamas RX 5000 y RX 6000. Además, con los últimos drivers Adrenalin ya incorporan extensiones.
En cuanto a Intel, el soporte es bastante más restringido que en sus rivales, ya que ofrece compatibilidad mediante su driver desde las iGPU Iris Plus 505 hasta las actuales GPU Intel Xe que incorporan las últimas generaciones de Intel Core. En cuanto a las Intel ARC estas van a tener sin duda soporte de serie para Vulkan.
Configurar la API Vulkan ¿es realmente posible?
NVIDIA, por ejemplo, ofrece dicho soporte mediante sus drivers desde las tarjetas GeForce 600M para portátiles hasta sus últimas GPU con arquitecturas Turing y Ampere pertenecientes a las gamas RTX 20 y RTX 30, donde también se incluye el soporte para la serie Volta y Quadro. Básicamente, el listado se podría resumir de la siguiente manera: Ampere,Turing, Volta, Pascal, Maxwell (primera o segunda generación) o Kepler.
No como tal, por lo menos en Windows, pero sí es cierto que en ciertos juegos tendremos que descargarnos el soporte del mismo a través de las principales plataformas de juegos online como pueden ser Steam y Epic Games Store o cualquier otra tienda online que tenemos en el PC (GoG, EA Access, Ubisoft+, etc.). Aunque nuestro driver y tarjeta gráfica sean compatibles, por norma general los juegos se ejecutarán bajo DirectX, por lo que en la mayoría de casos tendremos que forzar el uso de esta API dentro del menú o a través de programas de terceros que lo permiten.
Un método simple, siempre que sea posible, es cambiar dicha API dentro del propio juego, algo que será muy sencillo si el desarrollador nos deja dicha opción. En cambio, otros juegos tienen que ser forzados a usar esta API si así lo deseamos, es el caso de DOTA 2, el cual tendrá que ser forzado desde el cliente de Steam mediante una serie de comandos específicos dentro de las propiedades del juego, pero sin llegar a entrar en él.
También existe la opción de actualizar manualmente la API y no depender ni de NVIDIA, Intel o AMD, ya que cada versión se sube a GitHub, donde podremos descargarla de forma gratuita.
Descárgate el SDK de Vulkan, LunarG
Puede que tengas interés en descargarte el kit de desarrollo de Vulkan, en ese caso te lo puedes bajar de la página web oficial para cada uno de los sistemas operativos en los que está disponible y realizar programación gráfica y desarrollar con ello aplicaciones que empleen gráficos en 3D a tiempo real.
- Descargar Vulkan para Windows
- Descargar Vulkan para Mac
- Descargar Vulkan para Linux
- Descargar Vulkan para Android
Tened en cuenta que Vulkan es agnóstico de plataforma, por lo que os va a servir para crear aplicaciones gráficas que sirvan para cualquier sistema operativo y de paso recordar que es la API gráfica principal del servicio de juego en la nube Google Stadia (que desgraciadamente ya cerró a principios de 2023). Por lo que es una plataforma en sí misma abierta a muchas oportunidades, pero, sobre todo, que cuenta con respaldo de actores importantes para que siga evolucionando en los próximos años.
¿Qué ventajas proporciona la API Vulkan frente a DirectX?
La realidad es que depende de varios factores. Cuando hablamos de API gráficas casi siempre nos referimos a juegos, y depende de cómo hayan integrado en un juego una u otra API puedes tener diferente resultado dependiendo de la tarjeta gráfica que tengas. Dicho de otra manera, un juego que permite elegir entre las dos API puede dar un resultado u otro dependiendo de la tarjeta gráfica que tengas.
Así pues, no es que te vaya a proporcionar ventajas el utilizar una u otra por el simple hecho de utilizarla, ya que depende de tu GPU, de la implementación y de la optimización en cada juego, por lo que simplemente te recomendamos probar entre una y otra para ver cuál de las dos es la que te da mejor rendimiento, puesto que visualmente no vas a notar nada y es solo en el rendimiento donde podrás notar una diferencia, sin más.
La realidad es que pocos juegos usan Vulkan a día de hoy debido a que el hecho de que DirectX sea una API cerrada y propietaria hace que no dependa de consorcios y no tiene el problema de las extensiones en las que los fabricantes añaden ampliaciones a la API para sacar provecho de sus procesadores gráficos que luego las aplicaciones han de utilizar. No obstante si quieres dedicarte al desarrollo de videojuegos, Vulkan es la API universal por antonomasia y es soportada en gran cantidad de plataformas, por lo que tenerla instalada para aprender desarrollo de juegos profesional es altamente recomendable.
Así que será en los próximos tiempos cuando podamos volver a este tema y sentenciar si de verdad Vulkan ha supuesto una evolución para el mundo del gaming y el multimedia de PC o si, por el contrario, ha quedado sepultado por alternativas menos abiertas y que siempre suponen un pequeño frenazo en las ganas de avanzar de muchas empresas que desarrollan para ordenadores.
¿Cuántos juegos hay compatibles con Vulkan actualmente?
Para conocer el uso que se le da a una API está claro que lo importante está en conocer la cantidad de juegos que la incorporan, en el caso de Vulkan la lista crece con el paso de los años ya que cada vez más desarrolladores la utilizan para sus juegos o por lo menos ofrecen al usuario la capacidad de elegir entre esta o DirectX como es el caso de Baldur’s Gate 3. La lista de títulos compatibles con dicha tecnología no es tan grande como podemos imaginar, hay miles de juegos en el mercado y a diario se lanzan decenas de ellos en diversas plataformas, pero aun así hay menos de mil juegos compatibles con Vulkan.
Y es que actualmente hay un total de 242 juegos con la capacidad de ejecutar esta API, teniendo en cuenta que OpenGL o DirectX (en muchas de sus versiones) superan prácticamente los 1000 títulos relevantes, podemos ver que la diferencia entre unas y otras es extremadamente grande incluso si Vulkan en un principio parece mejor sobre el papel. Al final depende en gran medida del apoyo que reciben por parte de los creadores, como bien hemos explicado antes en el caso de DirectX al tener detrás a Microsoft, la documentación y en general todo lo relacionado con la misma suele ser más sencilla de entender al igual que también tiene más extensiones.
El hecho de que grandes juegos como Red Dead Redemption 2 o Baldur’s Gate 3 ofrezcan la opción de elegir entre DirectX/Vulkan demuestra que las posibilidades de ambas API a la hora de crear juegos son realmente grandes, motivo por el que podrían fomentar que más desarrolladores utilicen la que no es cerrada y propietaria.
Ray Tracing en Vulkan, ¿mejor que en DirectX 12?
En cualquier API gráfica actual, el trazado de rayos comienza a ser menos un lujo, y más una necesidad. Y es aquí donde estos motores necesitan de una eficiencia extrema. Conocemos que DirectX 12 ha mantenido la hegemonía en este campo gracias a DirectX Raytracing. Pero las extensiones de Vulkan Ray Tracing KHR han conseguido equilibrar la balanza. Todo, mediante una interfaz de código abierto y multiplataforma que supera en varios aspectos al sistema de Microsoft.
La principal ventaja de Vulkan la encontramos en su capacidad de gestión más pormenorizada de las estructuras de aceleración. Hablamos de las Bottom-Level Acceleration Structures y las Top-Level Acceleration Structures. Estas configuraciones permiten que los desarrolladores puedan controlar más de cerca el uso de la memoria de vídeo, y así reducir los ciclos de cómputo innecesarios. Crucial cuando trabajamos con hardware que no cuenta con los núcleos RT de NVIDIA.
En títulos relativamente nuevos, como DOOM: The Dark Ages, o actualizaciones de S.T.A.L.K.E.R., hemos visto que Vulkan ha logrado una mayor tasa de FPS nítidos estables en comparación con DX12. Y ello se debe a que Vulkan permite un control más directo sobre las colas asíncronas. Traducido: Facilita que el trazado de rayos se ejecute en paralelo junto a otras tareas de renderizado… sin cuellos de botella. Para los usuarios de AMD e Intel, esta tecnología es más que interesante. DX12 a menudo depende de las optimizaciones de driver para cada juego, pero Vulkan expone el hardware de manera más directa. Por lo que el motor del juego dicta cómo se deben trazar los rayos.
Y como resultado de todo ello, tenemos una iluminación global y reflejos más precisos, y con un menor impacto en el sistema. Por lo que demuestra que la eficiencia del código puede ser tan importante como la potencia del procesador.
