The OpenGL and OpenGL ES standards are ways for developers to build graphical applications to run on a number of different hardware platforms quickly and relatively easily. Whilst there is nothing wrong with the OpenGL standards, they date back to a time when devices were less capable and, typically, had fewer processor cores – both application cores and graphics processor cores. Putting this into the context of Android devices, the majority of hardware sold over the last three years benefits from multiple cores. Many of today's Android devices come with at least a quad core application processor and at least a dual core graphics processor; Khronos, an industry consortium building graphic standards, have designed a new graphics standard, Vulkan. Vulkan is designed to better realize the additional processor power afforded by today's multi-core chipsets and by doing so, it is able to save power and improve performance at the same time. The power saving comes from utilizing multiple processor cores: by sharing the load across multiple cores, this means that the chipset can run at a lower voltage and power consumption is proportional to the square of the voltage applied. Furthermore, by better sharing the load across multiple processor cores, performance can be improved. Under certain conditions, performance is dramatically improved as you can see from the video embedded at the end of this article. The technology better utilizes the hardware of the device.
We've recently covered how NVIDIA have released a version of Android 6.0 Marshmallow for its SHIELD products that comes with the necessary Vulkan drivers, and now Imagination Technologies, have released a software build for the Google Nexus Player that includes the necessary Vulkan 1.0 drivers. Regular readers will remeber that the Nexus Player uses the Intel Atom Z3560 chip, which contains the Imagination Technologies PowerVR G6430 graphics chipset. In conjunction with this software release, Imagination Technologies have released the Gnome Hoard demo, which is being used to demonstrate the advantages in using the the Vulkan API over OpenGL. Another advantage of the Vulkan API is that it is cross-platform; it is being developed in parrallel with Windows, LINUX and Android versions being built. This should make it easier to port applications and games from one platform to another.
Whilst the obvious application for Vulkan might seem to be gaming, rather than watching a field of gnomes, there is another important application: virtual reality. Vulkan includes important memory bandwidth improvements in conjunction with the improved framerate performance. For those memory-consuming applications – such as virtual reality – this should greatly benefit the technology. It could be the sort of technological breakthrough needed to push higher and higher quality virtual reality applications into a smartphone.