Vulkan
API para el desarrollo de gráficos 3d
Vulkan es una API multiplataforma para el desarrollo de aplicaciones con gráficos 3D. Fue
anunciada por primera vez en la GDC de 2015 por el Khronos Group.[1] [2]
[3]
Inicialmente, fue
presentada por Khronos como "la iniciativa OpenGL de próxima generación", pero luego el nombre
fue descartado, quedando Vulkan como definitivo.[4]
Vulkan está basado en Mantle, otra API de la empresa AMD, cuyo código fue cedido a Khronos con
la intención de generar un estándar abierto similar a OpenGL, pero de bajo nivel.[1] [5]
[6]
[7]
[8] [9]
Su principal característica es que puede aprovechar la cantidad de núcleos presentes en el
procesador principal de las PC, incrementando drásticamente el rendimiento gráfico.[10] En ese
sentido, es muy similar a DirectX 12, su competidor directo, que solo funciona en Windows 10.[10] A
diferencia de la API de Microsoft, Vulkan puede funcionar en una amplia gama de plataformas,
incluidas Windows 7, Windows 8, Windows 10, Android y Linux.[11] Pese a no existir versiones
oficiales para MacOS e IOS debido a las políticas restrictivas de Apple, se ha creado una versión no
oficial para estas plataformas. Así mismo, el ingeniero de Nvidia Martin Thomasha, recientemente
ha creado unos drivers para la tarjeta gráfica VideoCore IV, que llevan las Raspberry Pi (
https://twitter.com/0martint/status/1274012749174013954?s=20 ) [12]
Características
OpenGL y Vulkan son API de
renderizado, en ambos casos, la
GPU ejecuta shaders mientras que
la CPU ejecuta todo lo demás.
Vulkan está destinado a proporcionar una variedad de ventajas sobre otras API, así como su
predecesor, OpenGL. Vulkan ofrece una menor sobrecarga, un control más directo sobre la GPU y un
menor uso de la CPU. El concepto general y conjunto de características de Vulkan es similar a
Directx 12, Metal y Mantle.
Las ventajas previstas de Vulkan sobre las API de generación anterior incluyen:
Vulkan es ideal para tarjetas gráficas de alta
Vulkan
gama, así como para hardware de gráficos en
dispositivos móviles (OpenGL tiene un
subconjunto específico para dispositivos
móviles llamado OpenGL ES, sigue siendo una
API alternativa en dispositivos compatibles con
Vulkan).
A diferencia de Directx 12, Vulkan está
disponible en múltiples sistemas operativos
modernos; al igual que OpenGL, la API de
Vulkan no está disponible solo para un sistema
operativo específico. A partir del lanzamiento,
Vulkan se ejecuta en Android, Linux, Tizen,
Windows 7, Windows 8 y Windows 10,
Información general
Windows 11 (también está disponible el
Tipo de programa API
soporte de terceros para iOS y macOS).
Reducción de la sobrecarga del controlador, Autor Khronos Group
reduciendo las cargas de trabajo de la CPU. Desarrollador Khronos Group
Carga reducida en las CPU mediante el uso de
Lanzamiento inicial 16 de febrero de
procesamiento por lotes.
2016
Mejor escalamiento en CPU multi-core. Directx
11 y OpenGL 4 se diseñaron inicialmente para Licencia Código abierto
su uso con CPU de un solo núcleo y solo Información técnica
recibieron aumentos para ser ejecutados en
Plataformas Multiplataforma
núcleos múltiples. Incluso cuando los admitidas
desarrolladores de aplicaciones usan los
Versiones
aumentos, la API regularmente no se escala
bien en núcleos múltiples. Última versión 1.3.302 (21 de
estable noviembre de 2024)
OpenGL utiliza el lenguaje de alto nivel GLSL
()
para escribir shaders lo que obliga a cada
Lanzamientos
controlador OpenGL a implementar su propio
compilador para GLSL que se ejecuta en el
OpenGL Vulkan
tiempo de ejecución de la aplicación para
traducir los shaders del programa en el código Enlaces
máquina de la GPU. Se supone que los
Vulkan en Sitio web oficial (http://www.khron
controladores Vulkan ingieren shaders ya os.org/vulkan/)
traducidos a un formato binario intermedio
llamado SPIR-V (Representación intermedia Repositorio de código (https://github.com/Kh
ronosGroup/Vulkan-Docs)
portátil estándar), análogo al formato binario
en el que se compilan los shaders HLSL en
Directx. Al permitir la precompilación del shader, se mejora la velocidad de inicialización de la
aplicación y se puede usar una mayor variedad de shaders por escena. Un controlador Vulkan
solo necesita optimizar la GPU y la generación de código, lo que permite un mantenimiento más
fácil del controlador y, finalmente, paquetes de controladores más pequeños.
Administración unificada de núcleos de cómputo y shaders gráficos, eliminando la necesidad de
usar una API de cálculo separada junto con una API de gráficos.
[13]
OpenGL Vulkan
Una sola máquina de estado global Basado en objetos sin estado global
Todos los conceptos de estado están localizados en un buffer
El estado está ligado a un contexto único
de comando
Las operaciones solo se pueden ejecutar
La programación con múltiples subprocesos es posible
secuencialmente
La memoria y la sincronización de la GPU suelen Control explícito sobre la administración y sincronización de la
estar ocultas memoria
Los controladores Vulkan no verifican errores en el tiempo de
Amplia comprobación de errores ejecución,
hay una capa de validación para los desarrolladores
NVIDIA señala que OpenGL sigue siendo una gran opción para muchos casos de uso, ya que tiene
una complejidad y una carga de mantenimiento mucho menores que Vulkan, mientras que en
muchos casos sigue brindando un excelente rendimiento general.
Versiones
Vulkan 1.1
En SIGGRAPH 2016, Khronos anunció que Vulkan obtendría soporte para funciones multi-GPU
automáticas, similares a las que ofrece Direct3D 12.[40] El soporte multi-GPU incluido en la API
elimina la necesidad de SLI o Crossfire, que requieren que las tarjetas gráficas sean del mismo
modelo. En su lugar, la API multi-GPU permite a la API dividir de forma inteligente la carga de
trabajo entre dos o más GPU completamente diferentes[41] Por ejemplo, las GPU integradas
incluidas en la CPU pueden utilizarse junto con una GPU dedicada de gama alta para obtener un
ligero aumento del rendimiento.
El 7 de marzo de 2018, el Grupo Khronos publicó Vulkan 1.1.[42] Esta primera gran actualización de
la API estandarizó varias extensiones, como la multivista, los grupos de dispositivos, el uso
compartido entre procesos y API, la funcionalidad de cálculo avanzada, la compatibilidad con HLSL
y la compatibilidad con YCbCr. [43] Al mismo tiempo, mejoraba la compatibilidad con DirectX 12,
ofrecía soporte explícito para múltiples GPU y trazado de rayos,[44][45] y sentaba las bases para la
próxima generación de GPUs. 46] Junto con Vulkan 1.1, SPIR-V se actualizó a la versión 1.3.[43]
Vulkan 1.2
El 15 de enero de 2020, el Grupo Khronos publicó Vulkan 1.2[47].[48] Esta segunda gran
actualización de la API integra 23 extensiones adicionales de Vulkan probadas y de uso común en
el estándar Vulkan base. Algunas de las características más importantes son "semáforos de línea
de tiempo para una sincronización fácil de gestionar", "un modelo de memoria formal para definir
con precisión la semántica de la sincronización y las operaciones de memoria en diferentes
subprocesos" e "indexación de descriptores para permitir la reutilización de diseños de descriptores
por múltiples sombreadores". Las características adicionales de Vulkan 1.2 mejoran su flexibilidad
a la hora de implementar otras API gráficas sobre Vulkan, incluyendo "diseño estándar de búfer
uniforme", "diseño de bloques escalares" y "uso separado de plantillas"[49].
Vulkan 1.3
El 25 de enero de 2022, el Grupo Khronos publicó Vulkan 1.3.[50] Esta tercera gran actualización de
la API integra 23 extensiones Vulkan adicionales probadas y de uso común en el estándar Vulkan
base.[51] Vulkan 1.3 se centra en reducir la fragmentación haciendo que las nuevas características
no sean opcionales para que un dispositivo se considere compatible con Vulkan 1.3.[50][52] Las
nuevas características de Vulkan 1.3 incluyen renderizado dinámico, estado dinámico adicional, API
de sincronización mejorada y perfiles de dispositivo.
Funciones previstas
Cuando se publicó OpenCL 2.2, el Grupo Khronos anunció que OpenCL convergería en la medida de
lo posible con Vulkan para permitir la flexibilidad de despliegue de software OpenCL sobre ambas
APIs[53][54] Esto ha sido demostrado por Adobe Premiere Rush utilizando el compilador de código
abierto clspv[55] para compilar cantidades significativas de código OpenCL C kernel para ejecutarse
en un tiempo de ejecución Vulkan para su despliegue en Android[56].
Videojuegos que soportan Vulkan
The Talos Principle - el primer juego con soporte de Vulkan.
Dota 2 - el soporte de Vulkan se lanzó en mayo de 2016.
Doom - el soporte de Vulkan se lanzó en julio de 2016.
vkQuake - un port de Vulkan fue lanzado en julio de 2016.
Roblox - en marzo de 2017, se agregó el soporte de Vulkan.
Star Citizen - el Director de programación de gráficos para la Cloud Imperium Games, Alistair
Brown, anunció en los foros oficiales de Star Citizen que Cloud Imperium ahora solo se enfocará
en implementar Vulkan en Star Citizen y Squadron 42. Se eliminará el soporte para DirectX 12 ya
que requeriría que los clientes usen Windows 10.
Mad Max - los desarrolladores agregaron compatibilidad beta para Vulkan exclusivamente para el
port de Linux.
Ballistic Overkill - el soporte de Vulkan se lanzó en mayo de 2017.
Quake III Arena Kenny Edition - Una modificación del motor Quake 3 agregó el soporte Vulkan en
mayo de 2017.
Ashes of the Singularity: Escalation - se agregará el soporte de Vulkan en una próxima versión.
Counter-Strike 2 - el juego se transfirió al motor Source 2 y se añadió soporte a Vulkan.
vkDoom3 - un port Vulkan de soporte Doom3 BFG fue lanzado en agosto de 2017.
Wolfenstein II: The New Colossus - Lanzado en noviembre de 2017 con el soporte de Vulkan
New State Mobile - Lanzado en noviembre de 2021 con el soporte de Vulkan
F1 2017 - los desarrolladores del port de Linux (Feral Interative) solo dieron soporte Vulkan
No Man's Sky - A partir de la edición "Beyond" (2019), se elimina el uso de OpenGL para pasar a
utilizar Vulkan como API exclusiva.
Red Dead Redemption 2 - Se soporta Vulkan y DirectX 12 de lanzamiento en PC
World War Z - Se soporta Vulkan y Direct 11 de lanzamiento en PC
TO4:Tactical Operations - Usa Vulkan en su versión de linux. https://www.to4.co/
Tom Clancy's Ghost Recon Breakpoint - Se soporta DirectX 11 desde su lanzamiento y
actualmente Vulkan mediante una actualización para PC.
Tom Clancy's Rainbow Six Siege
Path of Exile - Soporta distintas versiones de DirectX y actualmente Vulkan en fase beta.
Serious Sam 4 - Soporta distintas versiones de DirectX y soporte directo con Vulkan.
Detroit: Become Human - Soporta Vulkan desde el lanzamiento.
Zombie Army 4:Dead War - Soporta Vulkan desde su lanzamiento en PC.
Strange Brigade - Soporta Vulkan desde su lanzamiento en PC.
Dirt 4 - los desarrolladores agregaron Vulkan exclusivamente para el port de Linux.
Total War: THREE KINGDOMS - los desarrolladores agregaron Vulkan exclusivamente para el port
de Linux.
Life is Strange 2 - los desarrolladores agregaron Vulkan exclusivamente para el port de Linux.
Shadow of the Tomb Raider: Definitive Edition - los desarrolladores agregaron Vulkan
exclusivamente para el port de Linux.
Total War Saga: THRONES OF BRITANNIA - los desarrolladores agregaron Vulkan exclusivamente
para el port de Linux.
Rise of the Tomb Raider - los desarrolladores agregaron Vulkan exclusivamente para el port de
Linux.
Wolfenstein: Youngblood - Soporta Vulkan desde su lanzamiento en PC.
DOOM Eternal - Soporta Vulkan desde su lanzamiento en PC.
Rage 2 - Soporta Vulkan desde su lanzamiento en PC.
Hollow Knight - Soporta Vulkan desde 2021, es opción por defecto en Linux.
Left 4 Dead 2 - Soporta Vulkan por medio de una actualización en junio de 2021.
Serious Sam Siberian Mayhem - Soporta Vulkan desde su lanzamiento en PC.
Crusader Kings 3 -
Asphalt Legends Unite - Se dio soporte a Vulkan en PC y Android por medio de la actualización a
Asphalt Legends Unite
Emuladores de consolas que soportan Vulkan
Mednafen
Dolphin
Mupen64Plus
RPCS3
PPSSPP
Xenia
Cemu
Yuzu
PCSX2 (implementación en etapa temprana)
Ryujinx
Duckstation
Citra
Referencias
1. «More on Vulkan and SPIR - V: The future of high-performance graphics» (https://www.khrono
s.org/assets/uploads/developers/library/2015-gdc/Khronos-Vulkan-GDC_Mar15.pdf) .
Khronos Group. p. 10. Consultado el 27 de junio de 2015. «Thanks AMD!»
2. «Vulkan : Graphics and compute Belong Together» (https://www.khronos.org/assets/uploads/
developers/library/overview/2015_vulkan_v1_Overview.pdf) (PDF). Khronos.org. marzo de
2015. Consultado el 5 de marzo de 2015.
3. «Vulkan - Graphics and compute belong together» (https://www.khronos.org/vulkan) .
Khronos.org. Consultado el 5 de marzo de 2015.
4. Batchelor, James. «glNext revealed as Vulkan graphics API» (http://www.develop-online.net/ne
ws/glnext-revealed-as-vulkan-graphics-api/0203867) . develop-online.net.
5. Mah Ung, Gordon. «Mantle is a Vulkan: AMD's dead graphics API rises from the ashes in
OpenGL's successor» (http://www.pcworld.com/article/2894036/mantle-is-a-vulkan-amds-dea
d-graphics-api-rises-from-the-ashes-as-opengls-successor.html) . PCWorld.
6. «AMD Gaming: One of Mantle's Futures: Vulkan | AMD Blogs» (http://community.amd.com/co
mmunity/amd-blogs/amd-gaming/blog/2015/03/03/one-of-mantles-futures-vulkan) .
Community.amd.com. Consultado el 5 de marzo de 2015.
7. Hruska, Joel. «Not dead yet: AMD’s Mantle powers new Vulkan API, VR efforts» (http://www.ext
remetech.com/extreme/200286-not-dead-yet-amds-mantle-powers-new-vulkan-api-vr-effort
s) . ExtremeTech. Consultado el 5 de marzo de 2015.
8. «AMD's Mantle Lives On In Vulkan - Lays The Foundation For The Next OpenGL» (http://wccftec
h.com/mantle-lives-vulkan-wip/) . Wccftech.com. 20 de junio de 2014. Consultado el 5 de
marzo de 2015.
9. Kirsch, Nathan. «Is AMD Mantle Dead As We Have Known It? Vulcan API Uses Mantle
Technology for OpenGL» (http://www.legitreviews.com/amd-mantle-dead-known-vulcan-api-us
es-mantle-technology-opengl_159339) . Legit Reviews. Consultado el 5 de marzo de 2015.
10. Hruska, Joel. «Next-generation Vulkan API could be Valve’s killer advantage in battling
Microsoft» (http://www.extremetech.com/gaming/200836-next-generation-vulkan-api-could-be
-valves-killer-advantage-in-battling-microsoft) . Extreme Tech. Consultado el 26 de junio de
2015.
11. «A DirectX 12 rival emerges: Khronos Group releases Vulkan 1.0 graphics API specification» (ht
tp://www.pcworld.com/article/3033211/software/a-directx-12-rival-emerges-khronos-group-rel
eases-vulkan-10-graphics-api-specification.html) . PC World. Consultado el 30 de marzo de
2016.
12. Bright, Peter (26 de febrero de 2018). «Vulkan is coming to macOS and iOS, but no thanks to
Apple» (https://arstechnica.com/gadgets/2018/02/vulkan-is-coming-to-macos-ios-but-no-than
ks-to-apple/) . Ars Technica (en inglés estadounidense). Consultado el 20 de diciembre de
2018.
13. «FOSDEM 2016 - Vulkan in Open-Source» (https://fosdem.org/2016/schedule/event/vulkan_gr
aphics/) . FOSDEM. Consultado el 27 de febrero de 2016.
Enlaces externos
Esta obra contiene una traducción parcial derivada de «Vulkan (API)» de Wikipedia en
inglés, concretamente de esta versión (https://en.wikipedia.org/wiki/Vulkan_(API)?oldid=7097348
20), publicada por sus editores (https://en.wikipedia.org/wiki/Vulkan_(API)?action=history) bajo
la Licencia de documentación libre de GNU y la Licencia Creative Commons Atribución-
CompartirIgual 4.0 Internacional (https://creativecommons.org/licenses/by-sa/4.0/deed.es).
Datos: Q19407678
Multimedia: Vulkan (https://commons.wikimedia.org/wiki/Category:Vulkan) / Q19407678 (htt
ps://commons.wikimedia.org/wiki/Special:MediaSearch?type=image&search=%22Q19407678%
22)