Vulkan > OpenGL

Definitivamente la noticia de Vulkan ha sido impactante estos últimos días en el mundo de la Informática Gráfica. En pocas palabras: Vulkan es el sucesor de OpenGL. Vulkan es entonces la nueva generación del API gráfico OpenGL Esta noticia fue dada a conocer en el GDC 2015 (The Game Developers Conference) por The Khronos Group, quienes mantenían dicha actualización con el nombre clave glNext (que ya ha sido descartado).

vulkan1-640x320Después de 22 años donde originalmente fue planteado para “graphics workstations”, OpenGL ha pasado por muchas revisiones, extensiones, actualizaciones, incorporación al mundo móvil (OpenGL ES) y de computación de propósito general en la GPU (compute shaders), Vulkan trata de incorporar todo ello en un solo paquete.

Según el website de Vulkan https://www.khronos.org/vulkan, Vulkan es la nueva generación, API de estándar abierto para el acceso del cómputo gráfico y cómputo general en las GPUs modernas ofreciendo altos rendimientos en cuanto a su eficiencia. Así, Vulkan provee a las aplicaciones control directo sobre la aceleración en la GPU para maximizar el rendimiento y previsibilidad.

Vulkan está diseñado pensando en el desarrollo sobre PCs y dispositivos móviles, una diferencia actual presente por OpenGL y OpenGL ES. Igualmente, ciertas características presentes actualmente en OpenGL no son relevantes en la programación de rendering 3D en las GPUs modernas. La idea es simplificar los drivers existentes así como la forma como los programas son compilados. Actualmente, cada driver debe incluir un compilador de los programas escritos en GLSL lo cual es complejo y propenso a errores (de acuerdo al fabricante). Entonces, Vulkan toma la idea de compilación de shader empleada en Direct3D: el shader se compila una vez por el programador en bytecodes, y el driver procesa dicho bytecode. Es allí donde Vulkan propone un lenguaje intermedio llamado SPIR-V (Standard Portable Intermediate Representation) que actualmente está en su versión 2.0.

Vulkan_SPIR-V

SPIR es un lenguaje intermedio para computación paralela y gráficos. De hecho, Khronos también anunció OpenCL 2.1 que es un API para la programación paralela de propósito general. Esta versión es un gran cambio ya que soporta C++ como lenguaje de kernel que es un subconjunto de funciones presentes en C++ (lambda, clases, sobrecarga de operadores, clases, templates, etc.). La idea es simplificar los drivers ya que solo deben interpretar el lenguaje intermedio SPIR-V code.

Este cambio no viene solo ya que grandes empresas como Intel, ARM, Nvidia, AMD y Qualcomm (fabricante de muchos chipsets del mundo, muuuchos), Madiatek y Imagination han apoyado está iniciativa de emplear Vulkan en un futuro cercano. Además de las empresas de hardware, empresas como Epic, Valve, Unity y Blizzard también se unieron.

La primera versión de Vulkan bajo SPIR empleará LLVM (y no, LLVM no es un acrónimo) pero en un futuro no será así (por eso el nombre de SPIR-V).

Imagination Technologies crearon un demo empleando los drivers en período de prueba de Vulkan donde aplican physically-based rendering, HDR rendering y 4x multi-sample antialiasing. En su blog encontrarán más información del demo.

Muchos más detalles (técnicos sobre todo) están en la página de Vulkan https://www.khronos.org/vulkan dentro de The Khronos Group.

Resumen: Tristemente, adiós OpenGL :(. Felizmente, bienvenido Vulkan 🙂

Anuncios

Acerca de smittynpro

Escribiendo algunas cosas de computación gráfica
Esta entrada fue publicada en Bibliotecas, Noticias y etiquetada , , . Guarda el enlace permanente.

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s