Imagination Already Ported Vulkan API To Its PowerVR GPUs

Last summer, the Khronos Group announced its intention to replace the current OpenGL graphics API with a next-generation API that is much leaner and gives more direct control over gaming hardware such as the CPU and the GPU.

Some gaming developers have complained for years that while graphics APIs such as DirectX and OpenGL can standardize a variety of different CPUs and GPUs, that abstraction layer was too thick, and it significantly reduced the performance of that hardware. This is why it's game developers that have been pushing for an API like AMD's Mantle, which was then given to Khronos to modify and extend and turn it into the next-generation Vulkan API.

Although Khronos has just announced the new Vulkan API at GDC, Imagination has already created a proof of concept driver for its PowerVR GPUs. The company has also ported one of its OpenGL ES 3.0 demos to the new API, which it showed at the event.

As Vulkan is meant to cover all devices from embedded to desktop, it's no surprise that it should work on mobile GPUs as well. In fact, Khronos said that all hardware that supports the OpenGL ES 3.1 API right now will support Vulkan, too. In the demo, Imagination showed the following effects:

High-quality, physically-based shadingHDR (High dynamic range) rendering20 unique 2K PVRTC textures2 GiB of texture data compressed to 266 MiB using Imagination's PVRTC texture compression standard4 x MSAA (Multi-sample anti-aliasing)16 x Anisotropic texture filteringPhysically-correct material parametersLow CPU usage, very efficient GPU usageCorrect specular reflections on reflective materialsMore than 250,000 trianglesPost processing effects: saturation, exposure and tone mapping

Even though the OpenGL ES API was created with efficiency in mind so it's suitable for the mobile environment, the Vulkan API still manages to go beyond that with a much higher CPU efficiency due to the lower overhead and the more direct access to the hardware. Such a leaner API can lead to higher performance in games and drivers that are less complex and easier to write and update than ever before.

Imagination said that higher-level management of the GPU will now have to be performed in the application itself, rather than in the driver, which could be extra work for developers. However, this could be offset by the fact that developers don't have to work around the driver anymore, either. They can tell the GPU exactly what they want it to do. If that application uses an engine to do the rendering, the management will be done by that engine anyway, so most developers can get the Vulkan speed-up virtually for free, with no extra work.

Along with the free performance gain, Vulkan will also give games more consistent performance, which isn't possible right now because different GPU hardware can respond differently to certain GPU commands in OpenGL.

The Vulkan API, unlike OpenGL ES, is much more parallel as well, and it can do work in multiple threads more easily. Rendering commands can now be created on all of a CPU's cores, which can be useful to games that need to recreate their render commands often (games such as Minecraft).

Vulkan also has a much more intuitive and transparent design, which gives developers more control over their own applications.

“Vulkan gives you the advantage of knowing exactly the state that you are setting. Take for example the glActiveTexture() function in OpenGL ES: it is not obvious whether this function will change the state globally for all shaders or maybe change the state just for the current shader program.In Vulkan, this is explicitly defined: you know that when you bind your resources, it is changing the state for the bound command buffer because that is the first parameter to the function."

In OpenGL ES, the memory allocation process is a black box. In Vulkan, the application knows how much and what type of memory it is using. This type of control can help to further optimize resource-heavy applications.

Khronos promised to release the full Vulkan specs later this year and have hardware supporting the new API soon after that. Imagination also said that it will continue to work on porting the Vulkan API to its PowerVR GPUs and release example source code in the near future.

Follow us @tomshardware, on Facebook and on Google+.

Lucian Armasu
Lucian Armasu is a Contributing Writer for Tom's Hardware US. He covers software news and the issues surrounding privacy and security.
  • ZolaIII
    Valve is also developing an Intel graphics Vulcan driver & they intent to open source it. Hopefully Imagination will go same path soon. ;)
    Somehow their is so much wonderful news tied for software future of graphics and computing in last couple of days that it's overwhelming. & I am usually a over all critic but not this time & not about this.
  • Gaidax
    This seems to require a hardware support, DX12 can be supported by any hardware released in the last couple of years, but what about this one?
  • antilycus
    STOP WITH THE SPECULARITY, it makes your tech demos look trashy
  • Marius Cirsta
    IMG will not open source anything, they like finding excuses too much. Luckily Intel dropped PowerVR graphics from their chips and I do trust Intel graphics more + the open source Linux stuff Intel have is the best.
  • redspot
    Vulkan should work on anything that OpenGL ES 3.1 supports, which means it should work on most graphics cards produced late 2009 and early 2010 onward.
  • photonboy
    DX12 is for XBOX ONE, and for most games on PC.

    However, the PS4 and most mobile devices aren't tied to DX12. Not sure if PS4 is a possibility (probably not) but since the PowerVR GPU is coming we know for sure some mobile devices will support this.
  • antilycus
    If PS4 supports OpenGL ES 3.1 (which I think it does) Vulkan should work on it.
  • bit_user
    STOP WITH THE SPECULARITY, it makes your tech demos look trashy
    I had the same thought, except I think they did it to emphasize the chip's ability to do bump mapping, local light sources, etc. Any half-decent artist would have turned it way down, on most of those surfaces.