vulkan logo

Vulkan 1.1 mejora la multitarea

Khronos Group ha sacado la primera revisión mayor de la prometedora API abierta en la que ya se basan algunos de los principales motores gráficos.

Vulkan es el sucesor de OpenGL y rivaliza con DirectX. En sus dos años de existencia, algunos desarrolladores importantes de la industria del juego ha decidido adoptar esta API. Los ejemplos más relevantes son los motores gráficos Unreal, Unity, Source 2 y CryEngine entre otros.

Una de las novedades de Vulkan 1.1 es lo que se llama “operaciones en subgrupos” que permite compartir y manipular datos entre varias tareas que se ejecutan en paralelo de una forma muy eficiente. Esto se consigue haciendo que los hilos de ejecución se comuniquen directamente entre sí en vez de tener que hacerlo usando la memoria externa como intermediaria.

Además ahora se permite renderizar operaciones que necesitan recursos no accesibles por cuestiones de DRM (entiéndase DRM como protección anticopia y no como el gestor de renderizado de Linux).

Conjunta e inseparablemente a la API, se ha publicado la versión 1.3 de SPIR-V con la que ahora es posible mejorar las optimizaciones de la compilación en el cálculo de sombras. El resto de cambios sólo son relevantes a nivel de desarrollo (algunos, por cierto, destinados a la realidad virtual), así que si queréis más detalles, podéis visitar la nota de prensa de Khronos.

Por parte de la industria, parece que están recibiendo bien la actualización, lo cual no es de extrañar porque en parte son ellos los encargados de redactar las especificaciones. Uno de los jefes de software de AMD ha dicho que están “entusiasmados por la lanzamiento de las especificaciones de Vulkan 1.1 […] Las nuevas características de Vulkan 1.1 como el acceso en subgrupos en el procesamiento de sombras, permite realizar optimizaciones que darán la posibilidad a los desarrolladores a tener incluso más control sobre la GPU que antes”.

El comunicado de Nvidia ha sido más escueto y menos entusiasta, aunque eso se compensa con el hecho de que la última versión de sus controladores beta (la 389.10 para Windows y la 387.42.05 para Linux) que salieron ayer, ya vienen con soporte para la nueva versión de la API.

Y para completar un poco la entrada cabe mencionar que el proyecto DXVK encargado de traducir DirectX 11 a Vulkan en tiempo real está haciendo grandes progresos. Se trata de una capa de Wine (que todavía no está en producción) que mejora la compatibilidad de los juegos para Windows en Linux. En estos momentos el mayor inconveniente es que en la primera ejecución, el juego puede ir a saltos ya que las sombras se calculan por primera vez (y se guardan en caché). Una vez que este proceso termina, parece que da buenos resultados.

Ver comentarios