Algo sobre Vulkan

Hoy me he dedicado a leer el overview de Vulkan, la nueva API gráfica del Grupo Khronos, para no estar muy en pañales acerca del tema. Soy más bien un proigramador de alto nivel, y las cosas que van bajo el capó a veces me resbalan y se olvidan con el tiempo, pero siempre algo queda.
Resulta interesante el vuelco tan revolucionario que ha dado el Grupo Khronos (suena a organización secreta de supervillanos peliculeros). Vulkan plantea una serie de cambios necesarios, como acceso más directo al hardware o mejor uso del multihilo, pero en una forma que no me esperaba. Ahora los drivers se simplificarán, y muchas cosas irán a parar al lado de la aplicación (eso me suena de Wayland).
Un clásico ejemplo de esto es SPIR-V, un lenguaje de representación intermedia, que al principio no me quedaba claro para qué rayos servía. Decía soportar la representación de programas OpenCL y Vulkan, lo cual para mí no significaba nada. Esto de ser ignorante es un poco molesto a veces, pero bueno, leyéndome el overview me cae una gota de conocimiento y me percato de la genialidad de SPIR-V: es un lenguaje intermedio (se nota que nunca aprobé Técnicas de Compilación). Actualmente, el driver incluye un compilador que convierte el shader GLSL en un código que el GPU ejecuta. Con Vulkan, compilamos el GLSL a SPIR-V, y el resultado es lo que distribuimos con el juego, amén de que el driver se ahorra compilar. Y quien dice GLSL, dice OpenCL. Es más, que esto abre la posibilidad de que Chicho el Cojo se haga su propio lenguaje shader para su exclusivo motor Zypote3D, con solo tomarse el trabajo de hacer un compilador que genere el código SPIR-V.
No menos bienvenido es que con Vulkan el CPU podrá formar command buffers en diferentes hilos, trayendo al fin el necesario soporte de paralelismo que ya mencionaba antes, o el impulso a un ecosistema de herramientas libres, como el Depurador que han venido desarrollando Valve y LunarG.
Montones de cosas, que es una pena que no estén aquí ya, pero que en menos de un año ya podríamos estar disfrutando.

Comentarios