Linux Adictos David Naranjo  

Ya fue liberada la nueva versión de Vulkan 1.2 y estos son sus cambios

Vulkan

Recientemente Khronos dio a conocer la liberación de la nueva versión de la especificación Vulkan 1.2, que se define como una API para acceder a las capacidades gráficas y de computación de la GPU. En la nueva especificación se han incorporado las correcciones y extensiones acumuladas durante dos años.

Vulkan es notable por simplificar drásticamente los controladores, llevar la generación de comandos de la GPU al lado de la aplicación, la capacidad de conectar capas de depuración, unificar la API para varias plataformas y usar una representación de código intermedio precompilado para la ejecución en el lado de la GPU.

 

Principales novedades de Vulkan 1.2

Se destaca que la implementación del lenguaje de programación de sombreadores HLSL desarrollado por Microsoft para DirectX está lista para su uso generalizado (la compatibilidad con HLSL en Vulkan hace posible usar solo sombreadores HLSL en aplicaciones basadas en Vulkan y DirectX y también simplifica la traducción de HLSL a SPIR-V).

Se propone utilizar el compilador DXC estándar para compilar sombreadores, que fue abierto por Microsoft en 2017 y se basa en la tecnología LLVM. El soporte de Vulkan se implementa a través de un backend separado, que permite traducir HLSL en una representación intermedia de sombreadores SPIR-V.

La implementación cubre no solo todas las características integradas de HLSL, incluidos los tipos matemáticos, flujos de control, funciones, conjuntos, tipos de recursos, espacios de nombres, Shader Model 6.2, estructuras y métodos, sino que también permite el uso de extensiones específicas de Vulkan, como VKRay de NVRIA.

En el modo HLSL en la parte superior de Vulkan, fue posible organizar el trabajo de juegos como Destiny 2, Red Dead Redemption II, Assassin’s Creed Odyssey y Tomb Raider.

Ademas se destaca que se ha actualizado la especificación SPIR-V 1.5, que define una representación intermedia universal de sombreadores para todas las plataformas, que se puede usar tanto para gráficos como para computación paralela.

La API principal de Vulkan incluye 23 extensiones para aumentar la productividad, mejorar la calidad de visualización y simplificar el desarrollo.

De ellos podremos encontrar Timeline semaphore: que unifican la sincronización con el host y las colas del dispositivo (permiten hacer con una primitiva para la sincronización omnidireccional entre el dispositivo y el host, sin usar primitivas VkFence y VkSemaphore separadas).

Estos están representados por un valor de 64 bits que aumenta monótonamente y que puede rastrearse y actualizarse a través de múltiples subprocesos.

Se han preparado versiones más cortas de la especificación para plataformas objetivo típicas, lo que simplifica el trabajo en plataformas para las que aún no se admiten todas las extensiones y permite prescindir de la activación selectiva de las capacidades básicas de la API de Vulkan.

De los demás cambios que se destacan:

  • Se continuó trabajando en un proyecto de portabilidad con otras API de gráficos.
  • Posibilidad de utilizar tipos numéricos en sombreadores con precisión reducida
  • Opción de diseño de memoria compatible con HLSL
  • Recursos no vinculados (sin enlace) que eliminan el límite en la cantidad de recursos disponibles para sombreadores mediante el uso del espacio virtual compartido de la memoria del sistema y la memoria de la GPU
  • Un modelo de memoria formal que define cómo los subprocesos paralelos pueden acceder a datos compartidos y operaciones de sincronización
  • Descriptores de indexación para reutilizar descriptores de diseño en múltiples sombreadores;
  • Enlaces de búfer.
  • Lista completa de extensiones agregadas
  • Se agregaron más de 50 nuevas estructuras y 13 funciones

Finalmente de los planes para el futuro, se destaca el desarrollo de extensiones para aprendizaje automático, trazado de rayos, codificación y decodificación de video, soporte para VRS (sombreado de velocidad variable) y sombreadores de malla.

Intel, AMD, ARM, Imagination Technologies y NVIDIA ya han lanzado controladores que admiten la nueva versión de Vulkan.

Mientras que el caso de Mesa (controladores libres), se ofrece soporte Vulkan 1.2 para controladores RADV (tarjetas AMD) y controladores ANV (Intel). La compatibilidad con Vulkan 1.2 también se implementa en el depurador RenderDoc 1.6, el SDK de LunarG Vulkan y un conjunto de muestrasVulkan-Samples.

Leave A Comment

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.