Vulkan 1.0: la API multiplataforma para gráficos de alto rendimiento

El 16 de Febrero de este año el Khronos Group anunció el lanzamiento de Vulkan 1.0 (dado que la fecha prevista de lanzamiento a finales del año 20015 no pudo ser lograda), posterior a dos años de arduo trabajo por fin está listo para salir al mundo. El primer juego con motor Vulkan también está disponible en beta pública a partir del 16/02/16, sin embargo la situación de Linux no es del todo favorable para los usuarios y jugadores finales ya que la mayoría de los vendedores todavía están determinando si ayudaran a través del soporte de Linux en Windows. Ignorando estas diferencias del sistema operativo, necesitas estar seguro de que tus expectativas son realistas antes de probar el nuevo juego de Vulkan mientras le damos tiempo a los desarrolladores para aprender y diseñar para esta nueva API de gráficos.

Vulkan 1.0

Vulkan es la respuesta del Khronos Group para Microsoft DirectX 12, Apple’s Metal y la antigua API de AMD Mantle para proporcionar gráficos de alto rendimiento. Primero se referían a esta AP como la “iniciativa OpenGL de próxima generación”, pero una vez nombrada Vulkan, el título anterior quedo en el pasado. Vulkan deriva y fue construido basándose en la tecnología ADM Mantle la cual fue donada por AMD con la intención de dar a Khronos una base sobre la cual comenzar a desarrollar una API que pudieran estandarizar en toda la industria (al igual que OpenGL), pero Vulkan ha evolucionado mucho más allá, ya no está atada al diseño GNC hardware de AMD y es capaz de ajustarse todos los casos de uso en todos los ecosistemas, la API ha evolucionado mucho después de haber sido revisada por muchas partes diferentes. El presidente de Khronos, Neil Trevett, dejó en claro que Vulkan es mucho más que un enfoque diferente en Mantle.

Entre los objetivos de Vulkan esta diseñar aplicaciones con gráficos 3D en tiempo real, como juegos y medios interactivos en todas las plataformas, así mismo, está destinado a proporcionar una gran variedad de ventajas sobre otras API, ofreciendo gastos indirectos más bajos, control más directo sobre la GPU y mayor rendimiento con menor uso menor del CPU, siendo capaz de distribuir mejor el trabajo entre los múltiples núcleos del CPU. También se caracteriza por ser una API multiplataforma que se apoya en tarjetas gráficas de gama alta y cuenta con OS agnóstico para mejorar la portabilidad de las aplicaciones creadas usando esta API.

Vulkan 1.0 está diseñado para adaptarse a los casos de uso del teléfono inteligente, escritorio y consolas, ahora es una API con capacidades multi-threading, con sobrecarga mucho más baja en comparación con los controladores OpenGL y que apoya shaders precompilados a través de SPIR-V. A diferencia de otras APIs alternativas, Vulkan es una multiplataforma y un verdadero estándar de la industria. Actualmente existen Vulkan SDK disponibles para Android, Linux y Windows, aunque siguen en fase beta, AMD y Nvidia han dado a conocer que apoyan Vulkan. Vulkan 1.0 no es la versión final, las futuras revisiones vendrán, por supuesto, una vez que el grupo de trabajo ha recibido los feedback de los demás desarrolladores.

¿Y qué pasará con OpenGL?

Mientras Vulkan 1.0 está a la vanguardia para encargarse de los gráficos de alta capacidad, OpenGL no está siendo abandonado por el Khronos Group, los desarrolladores encargados de este proyecto se mantendrán y deben evolucionar. Vulkan no es estrictamente necesario para todos los desarrolladores de juegos y aplicaciones, esto dependerá de que tanto te preocupa el rendimiento, si necesitas ayuda de la tarjeta de gráficos, si buscas una API que sea más accesible, si tu workload no puede ser paralelizado, etc.

También se ha hablado de la adición de soporte SPIR-V para OpenGL y otras mejoras en ese frente. Sin embargo el Khronos Group no ha anunciado de manera oficial nuevas especificaciones o actualizaciones de OpenGL, pero es cuestión de estar atentos durante los próximos meses.

Una de las extensiones de OpenGL (no oficiales) expuesto por el controlador de NVIDIA es el GL_NV_draw_vulkan_image. Esta extensión proporciona a DrawVkImageNV la capacidad de dibujar un rectángulo que permita mostrar todos o algunos de los contenidos de VkImage en Vulkan de manera bidimensional. Esta extensión también proporcionará funciones para la sincronización de dibujo entre Vulkan y OpenGL, básicamente la extensión proporcionará una manera de presentar contenido de Vulkan dentro de un contexto OpenGL.

Juegos y Vulkan

El pasado 16 de Febrero Croteam ha lanzado Talos Principle, subido en la plataforma Steam usando el motor de Vulkan. Por desgracia la versión de este juego para Linux aún no se encuentra disponible al público, pero pronto lo estará

El retraso se debe a la búsqueda de los drivers de conformancia. Estos drivers de Vulkan 1.0 serán lanzados próximamente ya que sabemos que la versión beta de Windows está disponible en Steam. Desde Valve, también se espera que Dota2 esté pronto disponible con el apoyo Vulkan, así mismo aparecerán en el futuro otros juegos.

Michael Larabel, escritor del foro Phoronix comentó que “como desarrollador de juegos que tuvo una participación temprana en Vulkan había sido prevenido a no pretender esperar un milagro con el rendimiento de los juegos de Vulkan”. Esto se debe a que la API de Vulkan ofrece muchas posibilidades de mejor rendimiento y mayores optimizaciones, los juegos y sus motores están siendo afinados para DirectX 11 y OpenGL. No será hasta la aparición de los nuevos juegos o de los motores rediseñados alrededor de Vulkan que existirá un mejor rendimiento en OpenGL/DX11. Por esto es que los juegos disponibles actualmente en Vulkan pueden ser más lentos que aquellos existentes en el procesador OpenGL, esto mientras se trabajan en varios bugs de los juegos y drivers.

Aunque los desarrolladores de juegos están emocionados con las posibilidades que ofrece Vulkan, les tomará tiempo para que se conviertan totalmente. Una situación parecida a esta sucedió cuando Direct3D 11 fue lanzado y comenzó dar soporte a los juegos, un tiempo después los juegos comenzaron a correr más rápido que en Direct3D 9.


Categorías

GNU/Linux, Noticias

Ing. Electricista. Desarrollador de Software apasaionado por las Bases de Datos, Inteligencia de Negocios y Data Science. Pianista y gamer en los ratos ibres. “Sin el conocimiento libre, sin comprender el trabajo y las funciones de la máquina, el hombre no puede ser libre, no puede gobernar a sí mismo y siempre va a seguir siendo un esclavo.”―George Gurdjieff

2 comentarios

  1.   stalker dijo

    Buen post, a ver lo que da de sí para los juegos. Se acercan buenos tiempos para los juegos en el mundo opensource

  2.   HO2Gi dijo

    “20015” creo que te sobra un cero

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

*

*

  1. Responsable de los datos: Miguel Ángel Gatón
  2. Finalidad de los datos: Controlar el SPAM, gestión de comentarios.
  3. Legitimación: Tu consentimiento
  4. Comunicación de los datos: No se comunicarán los datos a terceros salvo por obligación legal.
  5. Almacenamiento de los datos: Base de datos alojada en Occentus Networks (UE)
  6. Derechos: En cualquier momento puedes limitar, recuperar y borrar tu información.