Vulkan es una nueva API para gráficos acelerados por hardware (y computación general) a través de GPU tradicionales. OpenGL continuará desarrollándose, ya que es una API de nivel más alto de lo que Vulkan pretende ser. Originalmente referido a "glNext", se puede inferir que Vulkan probablemente terminaría siendo "OpenGL 5", pero que el organismo de estándares finalmente decidió que un nuevo nombre coincidiría mejor con la ruptura relativamente limpia que la API pretende hacer de las existentes. Paradigmas de OpenGL.
Las ventajas prácticas de Vulkan para los desarrolladores de juegos son principalmente sobre el control (como permitir más, lo que potencialmente permite mejores optimizaciones a costa de un trabajo inicial significativamente más por parte del desarrollador). Específicamente:
- La API está orientada a la generación asíncrona de buffers de comandos en varios subprocesos y al procesamiento secuenciado de esos buffers en una tubería de comandos. Esto refleja las realidades del hardware moderno. La mayoría de los programas de alto perfil y / o alto rendimiento creados en OpenGL implementan hoy este tipo de comportamiento; Tener la API admite esto en sí mismo, lo que significa que los desarrolladores no necesitan implementar y mantener ese marco ellos mismos, o que pueden hacerlo con menos esfuerzo.
- Las tareas de gestión de hilos y memoria se dejan a la aplicación, no al controlador, lo que permite a los desarrolladores de juegos un mayor control sobre esos comportamientos y, por lo tanto, una adaptación potencialmente más precisa de esos comportamientos a las necesidades de sus juegos individuales.
- Las capas de validación y diagnóstico se pueden habilitar de forma independiente, lo que permite en teoría una mejor integración de herramientas con la API (algo que OpenGL ha sufrido) y la desactivación de la validación excesiva, en teoría permitiendo que " los gráficos en el nivel tres " sean mucho más eficaces.
- No existe una diferencia diferencial de API entre las versiones para dispositivos móviles y de escritorio, lo que en teoría facilitará la transferencia de juegos multiplataforma y, en todo caso, reducirá los dolores de cabeza de verificación de versiones que todo el mundo odia.
Vulkan es muy similar a C / OpenGL en estructura superficial (la apariencia de las llamadas API, etc.) Sin embargo, está mejor tipeado (en el sentido de que no todo es simple int
; hay tipos de letra relevantes, etc.).
Es mucho más bajo que OpenGL. Uno puede esperar un salto en la configuración operativa y la complejidad entre OpenGL y Vulkan, como se vio en la transición D3D9 a D3D10, que expuso muchos más detalles ocultos del funcionamiento del dispositivo GPU al cliente API. La transición es en realidad más parecida a D3D11 a 12, ya que D3D12 es en sí una API muy similar a Vulkan, en cuanto a capacidad.