Khronos Group, la organización responsable del desarrollo de estándares gráficos como OpenGL, ha publicado la versión 1.2 de la biblioteca gráfica de bajo nivel Vulkan. La ventaja de esta biblioteca frente a otras es que es multiplataforma, y una buena parte del esfuerzo de Khronos se ha puesto en asegurarse de que los controladores de Vulkan lleguen a todos los sistemas operativos, incluido macOS.
Hay diversos juegos que ya implementan Vulkan, como Destiny 2 (Stadia), No Man's Sky o Metro Exodus (Stadia), y otros títulos irán llegando con el tiempo. A pesar de que es una API (interfaz de programación de aplicaciones) de bajo nivel multiplataforma que llegó en febrero de 2016 —hace cuatro años—, la adopción de Vulkan ha sido bastante menor que la de DirectX 12, y tampoco es que esta hay cogido tracción hasta el año pasado.
Esto ha sido en parte debido a los problemas iniciales de desarrollo bajo esta API de bajo nivel ya que pasa a ser tarea del desarrollador controlador todo lo que ocurre en la tarjeta gráfica —en lugar de ser opaco a él como ocurre en DirectX 11 u OpenGL—, y es donde Khronos Group pone el foco en esta versión 1.2. O más bien en las extensiones, para que haya certeza que lo que un programa desarrolla va a estar en los controladores de cualquier plataforma.
Khronos ha añadido veintitrés extensiones al núcleo de la especificación Vulkan para facilitar la tarea de los programadores, aunque son extensiones que ya estaban en uso activo y eran compatibles con Vulkan 1.1. Eso incluye nuevos llamadas a la API para la gestión de recursos, tipos de datos en los sombreadores, referencia a búferes, y otros.
También se actualiza el lenguaje de representación intermedia relacionada de Vulkan con la versión SPIR-V 1.5, pero se pone el foco en los semáforos —los que hayáis dado concurrencia en programación en una ingeniería os sonará— de acceso a recursos compartidos por la tarjeta gráfica. Es una reprogramación mayor del funcionamiento de los semáforos en Vulkan, la cual era bastante mala, y Khronos ha incidido en que este nuevo funcionamiento es mucho más eficiente.
Otras mejoras interesantes de Vulkan 1.2 tienen que ver con el uso de juegos DirectX en Linux a través de la implementación del lenguaje de sombreado de Microsoft, HLSL. Con Vulkan 1.2, Khronos Group ha conseguido implementar el cien por cien de HLSL y por tanto facilitará el uso y disfrute de juegos DirectX 10 y 11 de manera emulada en Linux ya que permite portar cualquier juego a este sistema operativo. Incido en lo de emulada porque hay un proceso de adaptación de HLSL 6.2 al lenguaje de sombreado de Vulkan, y por tanto habrá una pérdida de rendimiento. Esto es bidireccional: permite escribir el código en HLSL y llevarlo a Vulkan, o escribirlo en SPIR-V y llevarlo a DirectX en sistemas con Windows. En general, debería reducir el tiempo de desarrollo de juegos en distintas plataformas.
En el horizonte se queda la futura inclusión de nuevas extensiones como aquellas relacionadas con el aprendizaje automático, trazado de rayos en tiempo real, nuevos métodos de codificación/decodificación de vídeo, sombreado en malla o sombreado de tasa variable.
Vía: AnandTech.