Autor Tema: ¡Vulkan ha llegado!  (Leído 758 veces)

francismoy

  • Socio
  • New Jammer
  • *
  • Mensajes: 44
  • Molas: 8
    • Becoming Indie Developer
¡Vulkan ha llegado!
« en: 19 de Febrero de 2016, 01:21:25 pm »
¡Hola! Esto son muy buenas noticias y además jugosas para los programadores más hardcore ;) ¡A ver quién hace las primeras pruebas!

https://www.khronos.org/news/press/khronos-releases-vulkan-1-0-specification

JuDelCo

  • En evolución
  • Socio
  • Super Jammer
  • ***
  • Mensajes: 240
  • Molas: 35
  • The Game
    • Twitter
Re:¡Vulkan ha llegado!
« Respuesta #1 en: 19 de Febrero de 2016, 03:58:55 pm »
Ya he estado mirando cosillas desde el primer día y ayer asistí al webminar privado que hicieron (aunque van a publicarlo no se cuando creo)

JuDelCo

  • En evolución
  • Socio
  • Super Jammer
  • ***
  • Mensajes: 240
  • Molas: 35
  • The Game
    • Twitter
Re:¡Vulkan ha llegado!
« Respuesta #2 en: 19 de Febrero de 2016, 04:00:35 pm »
Ahhh, aquí está


RicoAlbe

  • Socio
  • Super Jammer
  • ***
  • Mensajes: 221
  • Molas: 40
Re:¡Vulkan ha llegado!
« Respuesta #3 en: 21 de Febrero de 2016, 01:42:16 pm »
Creo que este es el hilo más hermético del foro. ¿Quién se anima a dar una explicación simplificada (pero no simplista ni insuficiente) de qué es eso y qué está pasando?

JuDelCo

  • En evolución
  • Socio
  • Super Jammer
  • ***
  • Mensajes: 240
  • Molas: 35
  • The Game
    • Twitter
Re:¡Vulkan ha llegado!
« Respuesta #4 en: 22 de Febrero de 2016, 07:32:18 pm »
Pufff has metido muchas variables ahí con la pregunta, al estilo bueno bonito y barato... eso va a ser que no xD


Veamos... digamos que es un nuevo driver que han sacado que busca unificar aun más si cabe comparado con OpenGL el acceso al hardware gráfico (GPUs) ofreciendo para ello una nueva API de bajo nivel (muy muy jodida de aprender, una locura sin usar wrappers) que permite programar cualquier cosa en nuestras GPUs, ya que no existe una librería que lo "abstrae" como ocurre con la máquina de estados de OpenGL, esta API da acceso casi a nivel de ensamblador (sin pasarse pero casi).

Este driver está orientado a aquellos estudios triple AAA que buscan optimizar al EXTREMO sus motores de videojuegos y exprimir hasta el final la potencia de las GPUs (o a un desarrollador indie loco cazurro que quiera vender su alma a Khronos).

Y, para aquellos que esteis pensando en echarle un ojo, NO LO HAGAIS a menos que ya estéis aburridos de OpenGL porque no os suponga más un reto (lo cual dudo enormemente).

JuDelCo

  • En evolución
  • Socio
  • Super Jammer
  • ***
  • Mensajes: 240
  • Molas: 35
  • The Game
    • Twitter
Re:¡Vulkan ha llegado!
« Respuesta #5 en: 22 de Febrero de 2016, 07:35:34 pm »
Y como sé que aun advirtiéndoos no me vais a hacer caso, os pongo aqui el CHEATSHEET (la chuleta vaya) de referencia de la API v1.0

https://www.khronos.org/registry/vulkan/specs/1.0/refguide/Vulkan-1.0-web.pdf


Si no os asusta eso pues adelante  ;D

francismoy

  • Socio
  • New Jammer
  • *
  • Mensajes: 44
  • Molas: 8
    • Becoming Indie Developer
Re:¡Vulkan ha llegado!
« Respuesta #6 en: 22 de Febrero de 2016, 08:25:39 pm »
Jeje bueno, @JuDelCo ya ha dado su propia visión, y aunque la comparto, daré la mía por ampliar un poco la información.

Cuando OpenGL se diseñó hace alrededor de 20-25 años, el mundo del hardware era muy diferente. Las CPUs se alzaban como las reinas indiscutibles del rendimiento. Exprimir el rendimiento de una máquina consistía principalmente en conocer muy bien el ensamblador de la CPU o programar muy bien en C. Sin embargo, con el paso de los años, las GPUs (las CPUs de las tarjetas gráficas) les han ido comiendo terreno a ritmos agigantados a las CPUs. La mayor parte de los cuellos de botella en el rendimiento de los videojuegos actuales se deben a asunciones que se hicieron cuando se desarrollaron las APIs y los drivers que se comunican con las tarjetas gráficas. Dos de estas APIs son OpenGL y Directx. En particular, por la forma en que se diseñaron dichas APIs, los drivers tienen actualmente mucha responsabilidad, y por tanto, introducen mucha latencia entre el momento en que la aplicación genera un comando para la GPU, hasta que el driver entrega la información que la GPU necesita para ejecutar dicho comando.

Evidentemente, cuando se diseñaron inicialmente estas APIs, esto no era un problema. De hecho, era una bendición que hubiera una capa (el driver) que hiciera tanto trabajo sucio en las sombras sin que el desarrollador tuviera que preocuparse, y además, que no hubiera problemas de rendimiento por ello, porque las CPUs eran "mejores" que las GPUs.

Sin embargo y como he mencionado, ahora las reglas del juego han cambiado, y una capa tan gorda haciendo tanto trabajo entorpece el poder conseguir el máximo rendimiento de las GPUs. Esto lo llevan sabiendo muy bien los desarrolladores de consolas, que siempre han trabajado, como se dice en este mundillo, "close to the metal", es decir, a muy bajo nivel. Esto ha permitido exprimir hasta la última gota la potencia de las consolas, y es el principal motivo por el que históricamente las consolas han mostrado muy buenos gráficos (muchas veces incluso mejores que en PC) a pesar de tener un hardware inferior.

La idea de Vulkan, así como de DirectX 12 (que es muy muy parecida), es llevar esa filosofía "close to the metal" de las consolas al mundo del PC. Obviamente, esto conlleva un esfuerzo mayor para los desarrolladores, que ahora tienen que preocuparse de muchos aspectos de los que antes se preocupaba el driver, aunque en la mayor parte de ocasiones, esto se traduce principalmente en un correcto y eficiente tratamiento de la memoria y de la programación multi-hebra (múltiples hilos de ejecución simultáneos).

Tal y como el grupo Khronos menciona, sólo una muy pequeña parte de la comunidad se tendrá que preocupar de realmente aprender la nueva API, porque los casos de uso más probables son utilizar Vulkan a través de un motor como Unity, o utilizar librerías que faciliten el desarrollo en Vulkan.

Desde luego y como menciona @JuDelCo, para cualquier proyecto que cualquiera de nosotros de la asociación quiera abordar, OpenGL seguirá siendo lo único que necesitemos, pero si queréis saber qué está ocurriendo de verdad bajo la alfombra, Vulkan te dará mucha más información y control.