El grupo Khronos anunció hoy el lanzamiento oficial de la versón 1.0 de Vulkan, la API gráfica sucesora de OpenGL de estándar abierto y libres de regalías, que ofrece acceso al hardware de bajo nivel, un control más directo sobre la GPU, y menor uso de la CPU.

Vulkan, nombrada como la «Open GL de siguiente generación» o «GLNext» , está especialmente diseñada para distribuir la carga de trabajo entre mayor cantidad de CPUs haciendo que el rendimiento de la GPU mejore extraordinariamente en Sistemas con CPUs de 4 o mas nucleos.

El grupo Khronos, compuesto por miembros escolares a empresariales responsables del mantenimiento del estándar libre, API’S como OpenGL y OpenCL. Tras 18 meses de trabajo, los miembros de  Khronos hacen el debut oficial de Vulkan 1.0, lo cual tendrá un gran impacto en el mercado, dado que estudios desarrolladores podrán comenzar a implementarlo en las tecnologías gráficas de sus propios juegos y proyectos.

Gabe Newell, co-fundador y director de Valve dijo lo siguiente:

“Estamos realmente agradecidos con la rápida ejecución e inclusión de la nueva API Vulkan en la industria. Gracias a la disponibilidad de las opciones de multiplataforma que presenta, se verá un mayor rendimiento y ecosistemas de código libre. Esperamos ver una aceptación por los desarrolladores de software, y que esto excedan sus expectativas sobre API’S similares las cuales se hallan limitadas a sistemas operativos específicos.”

Vulkan, al igual que OpenGL, será un API agnóstica y multi-plataforma, soportando virtualmente cualquier GPU que soporte los API OpenGL 4.3 y OpenGL ES 3.1, factor que contribuirá a que el API cuente con una gran plataforma base instalada (muchos GPUs para PCs y dispositivos móviles podrían soportar Vulkan con tan sólo nuevos controladores gráficos compatibles con el API).

Además de la gran plataforma base inicial que se estima tendrá Vulkan, su fácil port DirectX 12/Vulkan, facilitará a los desarrolladores de juegos, el llevar sus juegos Windows hacia otras plataformas, dispositivos y consolas (como los Steam Machines), lo que contribuirá a la rápida penetración de mercado del API.

Dentro de las características mas destacables, encontramos:

  • Proporcionar un formato binario intermedio llamado SPIR-V (Standard Representación Intermedia Portable). Lo cuál reduce la carga de trabajo sobre los proveedores de controladores, permite shader pre-compilación, y permite que los desarrolladores de aplicaciones escribir shaders en distintos lenguajes como GLSL.
  • API multiplataforma compatible en ambos dispositivos móviles y tarjetas gráficas de gama alta (no generará variantes de ningún tipo según plataforma, no existirán versiones como OpenGL y OpenGL ES, todos las plataformas entrarán SIEMPRE dentro del estándar VULKAN)
  • Agnóstico del Sistema Operativo, para mejorar la portabilidad de las aplicaciones creadas utilizando la API (no está diseñada para ningún
  • Sistema Operativo en particular, será 100% compatible con TODOS los Sistemas Operativos)
  • Mejor soporte para los sistemas modernos que utilizan múltiples hilos.
  • Reducción de la carga en las CPUs en situaciones en que la CPU es el cuello de botella, lo que permite un mayor rendimiento para los cálculos de GPU y renderizado.
  • Soporte para MultiGPU. Incluso para GPUs de diferentes fabricantes.
  • Brinda soporte a cualquier tarjeta gráfica que actualmente tenga soporte para OpenGL ES 3.1 y OpenGL 4.1 en Adelante (esto no implica que, automáticamente, todas las tarjetas viejas puedan soportar Vulkan; ya que también depende del soporte de los controladores que brinde cada compañía de Hardware)

Aprovechando el estreno de la nueva API, el estudio desarrollador Croteam ha lanzado una beta para The Talos Principle, brindando soporte para Vulkan. Dean Sekulic, miembro del equipo Croteam, dijo que «esto es solamente el comienzo, y estamos rasguñando la superficie de todo lo que podrá ser posible realizar con esta nueva API”, a lo que agregoó «el port de The Talos Principle a Vulkan, debería ser visto como una prueba de concepto”.

Según Croteam, el desarrollado para portear a Vulkan consiste en tres pasos principales:

  1. Desarrollar el un port lo más rápido posible simplemente utilizando wrappers alrededor de Vulkan sobre el diseño actual del motor, evitando inconvenientes y cuellos de botella. Éste es el paso en el que se encuentra el primer parche lanzado en la beta a bierta de Talos Principle.
  2. Utilizar Vulkan para el renderizado multi-threaded. El motor gráfico Serious Engine ha sido diseñado realmente bien para el renderizado multihilo, pero por ahora sólo hay un wrapper en medio, las llamadas a la API gráfica (como Vulkan) no son multijilo. De momento.
    Este es el próximo paso que realizaremos. Y probablemente lanzaremos un parche con ese cometido también para Talos. En su día se intentó llevar a cabo un proceso similar con Direct 3D 11 y resulto un horror con apenas o más bien ningún beneficio. Por esta razón hemos decidido mantener una actitud más conservadora en lo que se refiere al renderizado multihilo :/
  3. Rediseñar el motor completo para Vulkan. Éste es el paso de mayor envergadura y se puede dividir en dos:
  • Precachear todos los estados de renderizado (que a grandes rasgos significa materiales en el juego) al frente. Esto hará las llamadas de renderizado mucho más simples y rápidas. Así que, en vez de decidir en tiempo de renderizado, qué es necesario para un material para ser renderizado vía Vulkan, hacemos esto en tiempo de carga y entonces, cuando los materiales necesitan ser renderizados simplemente se lo dejamos a Vulkan, con sólo una o dos simples llamada.
  • Precachear toda la geometría, materiales, texturas, todo lo que es necesario para renderizar un objeto. Esto básicamente crea un buffer de comandos de llamada listo para Vulkan, y no es necesarion ningún otro extra necesita ser seteado o creado en tiempo de renderizado.

La tercera parte es, obviamente, la más compleja del port, y tomará más tiempo modificar el diseño del motor para conseguirlo, paso a paso.

Vulkan está disponible en múltiples versiones de Microsoft Windows, desde Windows 7 a Windows 10, y ha sido adoptada como un render nativo de computo en plataformas que incluyen LINUX, SteamOS, Tizen y Android.

Aquellos desarrolladores que estén buscando más detalles sobre Vulkan, al igual que los Links para los correspondientes Drivers y SDK de hardware y software. Deberán visitar el sitio web oficial de Vulkan o The Khronos Gruop’s Github Repos.

Los interesados en probar The Talos Principle con el nuevo API, deberán descargar los nuevos drivers 356.39 beta de Nvidia, o los nuevos beta de AMD.