Vulkan 1.4.325 incluye una extensión de punteros no tipados para Shaders

La nueva versión Vulkan 1.4.325 ya está disponible y trae consigo una extensión muy interesante: VK_KHR_shader_untyped_pointers. Esta extensión abre la puerta a punteros no tipados en shaders, ofreciendo a los desarrolladores más flexibilidad y eficiencia al manejar datos en memoria.

¿Qué son los punteros no tipados?

Los punteros no tipados permiten a los shaders reinterpretar datos a través de instrucciones de memoria y atómicas sin depender del tipo de dato declarado en la variable.

Esto significa que puedes, por ejemplo, cargar un vector de valores flotantes desde una variable declarada como arreglo de enteros, sin conversiones extra.

Algunos beneficios clave:

  • Facilitan la traducción eficiente de operaciones templadas de carga/almacenamiento en lenguajes de alto nivel.
  • Simplifican shaders que operan con tipos de datos pequeños, como float16, sin necesidad de almacenamiento extra.
  • Proporcionan una alternativa eficiente a los punteros fuertemente tipados y al type-punning en C/C++.

¿Quiénes contribuyeron?

Ingenieros de Google, Arm, LunarG y AMD colaboraron en el desarrollo de esta extensión, asegurando compatibilidad amplia y buenas prácticas en la implementación SPIR-V.

Compatibilidad y soporte de drivers

Luego del lanzamiento, los drivers Mesa NVK y ANV ya añadieron soporte para VK_KHR_shader_untyped_pointers. El soporte para RADV aún está pendiente, pero se espera que llegue pronto.


Conclusión

Esta actualización de Vulkan 1.4.325 no solo agrega punteros no tipados, sino que también corrige pequeños errores en la especificación. Para desarrolladores de gráficos y entusiastas de GPUs, es una mejora clave que facilita la manipulación avanzada de memoria en shaders modernos.

Vistas: 1