
El verano pasado, el Grupo Khronos anunció su intención de sustituir la actual API gráfica OpenGL con la API Vulakn de próxima generación, mucho más ligera y que permite un control más directo sobre el juego de hardware, tales como la CPU y la GPU.
Dicha API, estaría basada en la API Mantle de AMD, la cual lanzo de forma abierta para todo aquel que quisiera jugar con ella, y eso han echo los chicos del grupo Khronos, tras varias modificaciones y ampliaciones en su código, para convertirla en la nueva generacion de API Vulkan.
Desde la semana pasada, debido a la Game Developers Conference, se ha empezado a hablar de Vulkan de nuevo, la renovación next-gen de OpenGL, la cual todavía se encuentra en fase de desarrollo, sin embargo, se ha podido aprender bastante sobre ella, en una sesión que fue dada en la conferencia.
La sesión comenzó mencionando, lo mas importante sobre ella, que Vulkan está basada en la API Mantle de AMD, la cual simplemente ha sido adaptada para trabajar apropiadamente con un rango diferente de arquitecturas más modernas de GPUs.
Las GPUs de Imagination Technologies utilizan la renderización por vectores, a diferencia de la renderización de modo inmediato, como la gran mayoría de las GPUs de escritorio actuales.
La renderización por vectores puede ser más eficiente que las IMRs tradicionales, pero mantiene activa la información de la GPU en un buffer on-chip para extraer esa eficiencia.
Teniendo en cuenta que Vulkan es una interfaz de programación de bajo nivel, que proporciona a los desarrolladores de videojuegos, un mayor control sobre el hardware, que en otras versiones de OpenGL, es muy importante que se haga lo correcto respecto al renderizado por vectores, para que Vulkan pueda llegar a convertirse en un estándar factible multi-plataforma.
Respecto a ese trabajo de adaptación, parece que va en buen camino, ya que Imagination mostró una demo de Vulkan corriendo en PowerVR, en la planta de exposiciones del GDC, donde se demostraba basicamente, un port de una demo gráfica de OpenGL ES, pero emitiendo comandos de Vulkan que eran recibidios por los propios drivers gráficos de Vulkan de Imagination.
El port se hizo en dos meses, por tan solo dos ingenieros, lo cual indica la usabilidad de la API Vulkan.
Debido al acceso de bajo nivel de la GPU vía API, la firma dijo que su driver es «muy delgado», y que la mayor parte de la complejidad en la tarea de la programación se ha movido hacia la propia aplicación.
Vulkan tiene comandos que permiten al desarrollador hacer cargas explícitas y frame-buffer data, lo que Imagination describe como una «gran victoria para los vectores».
Otras APIs gráficas modernas como OpenGL y Direct3D mantienen la GPU a distancia de la aplicación, y como resultado, los drivers gráficos pueden modificar todo tipo de cosas sobre cómo los comandos a ejecutar.
La demo estaba aún algo verde, dado que todavia esta en fase beta en su pleno desarrollo, y no coincidía exactamente con la versión de OpenGL ES estipulada, pero aun así se veía realmente bien.
Según Imagination, el port a Vulkan no supuso ninguna mejora en el rendimiento, y eso se debe, mayormente, a que el uso de CPU era muy bajo, respecto al uso que daría, la susodicha versión de OpenGL ES.