Vulkan

De Wikipedia, la enciclopedia libre
Ir a la navegación Ir a la búsqueda
Vulkan en Khronos.org
Vulkan.svg
Información general
Desarrollador(es) Grupo Khronos
Autor(es) Khronos Group
Lanzamiento inicial 16 de febrero de 2016
Última versión estable 1.1.87
07 de octubre de 2018 (1 mes y 6 días)
Género API
Programado en GLSL
Sistema operativo Android, Linux, Microsoft Windows, Tizen
Plataforma Multiplataforma
Licencia Código abierto

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 sólo funciona en Windows 10.[10]​ A diferencia de la API de Microsoft, Vulkan puede funcionar en una amplia gama de plataformas, incluyendo Windows 7, Windows 8, Windows 10, Android y Linux.[11]

Características[editar]

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 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á bloqueada en un único sistema operativo. A partir del lanzamiento, Vulkan se ejecuta en Android, Linux, Tizen, Windows 7, Windows 8 y Windows 10 (también está disponible el soporte de terceros para iOS y macOS).
  • Reducción de la sobrecarga del controlador, reduciendo las cargas de trabajo de la CPU.
  • Carga reducida en las CPU mediante el uso de procesamiento por lotes.
  • Mejor escalamiento en CPU multi-core. Directx 11 y OpenGL 4 se diseñaron inicialmente para su uso con CPU de un solo núcleo y solo recibieron aumentos para ser ejecutados en núcleos múltiples. Incluso cuando los desarrolladores de aplicaciones usan los aumentos, la API regularmente no se escala bien en núcleos múltiples.
  • OpenGL utiliza el lenguaje de alto nivel GLSL para escribir shaders lo que obliga a cada controlador OpenGL a implementar su propio compilador para GLSL que se ejecuta en el tiempo de ejecución de la aplicación para traducir los shaders del programa en el código máquina de la GPU. Se supone que los controladores Vulkan ingieren shaders ya traducidos a un formato binario intermedio llamado SPIR-V (Representación intermedia 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.
OpenGL Vulkan[12]
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.

Videojuegos que soportan vulkan[editar]

  • 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: Global Offensive - el juego se transferirá a Source 2 y será compatible con 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
  • F1 2017 - los desarrolladores del port de Linux (Feral Interative) solo dieron soporte Vulkan

Emuladores de consolas con Vulkan[editar]

  • Mednafen
  • Dolphin
  • Mupen64Plus
  • RPCS3
  • PPSSPP
  • Xenia

Referencias[editar]

  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 (2015-03-03). «glNext revealed as Vulkan graphics API». develop-online.net. 
  5. Mah Ung, Gordon (2015-03-06). «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 (2015-03-04). «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. «FOSDEM 2016 - Vulkan in Open-Source». FOSDEM. Consultado el 27 de febrero de 2016. 

Enlaces externos[editar]