Vulkan
Información general
Tipo de programa API
Autor Khronos Group
Desarrollador Khronos Group
Lanzamiento inicial 16 de febrero de 2016
Licencia Código abierto
Información técnica
Plataformas admitidas Multiplataforma
Versiones
Última versión estable 1.3.279 (1 de marzo de 2024) ()
Lanzamientos
OpenGL
Vulkan
Enlaces

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:

OpenGL Vulkan[13]
Una sola máquina de estado global Basado en objetos sin estado global
El estado está ligado a un contexto único Todos los conceptos de estado están localizados en un buffer de comando
Las operaciones solo se pueden ejecutar secuencialmente La programación con múltiples subprocesos es posible
La memoria y la sincronización de la GPU suelen estar ocultas Control explícito sobre la administración y sincronización de la memoria
Amplia comprobación de errores Los controladores Vulkan no verifican errores en el tiempo de 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

Emuladores de consolas que soportan Vulkan

Referencias

  1. a b «More on Vulkan and SPIR - V: The future of high-performance graphics». Khronos Group. p. 10. Consultado el 27 de junio de 2015. «Thanks AMD!» 
  2. «Vulkan : Graphics and compute Belong Together» (PDF). Khronos.org. marzo de 2015. Consultado el 5 de marzo de 2015. 
  3. «Vulkan - Graphics and compute belong together». Khronos.org. Consultado el 5 de marzo de 2015. 
  4. Batchelor, James. «glNext revealed as Vulkan graphics API». develop-online.net. 
  5. Mah Ung, Gordon. «Mantle is a Vulkan: AMD's dead graphics API rises from the ashes in OpenGL's successor». PCWorld. 
  6. «AMD Gaming: One of Mantle's Futures: Vulkan | AMD Blogs». 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». ExtremeTech. Consultado el 5 de marzo de 2015. 
  8. «AMD's Mantle Lives On In Vulkan - Lays The Foundation For The Next OpenGL». 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». Legit Reviews. Consultado el 5 de marzo de 2015. 
  10. a b Hruska, Joel. «Next-generation Vulkan API could be Valve’s 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». 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». Ars Technica (en inglés estadounidense). Consultado el 20 de diciembre de 2018. 
  13. «FOSDEM 2016 - Vulkan in Open-Source». FOSDEM. Consultado el 27 de febrero de 2016.