Vulkan™ started more than a year ago as a cross-industry effort to develop an explicit API designed to work optimally on today’s leading-edge hardware. The activity has been managed by the Khronos™ Group, the same non-profit organization that develops popular APIs such as OpenGL ES, OpenCL, WebGL, or OpenVX as well as the universal file format initiatives like COLLADA.
Imagination Technologies is part of the Vulkan working group and one of the major contributors to this API. Given that we have also been one of the first companies to demonstrate Vulkan (check out our Gnome Horde demo here), we are very excited to welcome today’s introduction of version 1.0 of the Vulkan specification and have set up a dedicated page where developers can access device images for supported platforms and code examples.
As Peter McGuinness (director of technology marketing for PowerVR multimedia) explains in the official press release, the Vulkan API is optimally designed to run on our PowerVR GPUs:
At Imagination we’re pleased to be a major contributor to the Vulkan project, and to have been among the first to demonstrate it on mobile platforms. Now that the specification is released, we feel that it is important to get it into the hands of developers as soon as possible. We’re distributing a developer image for the readily available Nexus Player, which features a PowerVR Series6 GPU. Developers can also access examples and tutorials on our Vulkan resources page and can look forward to Vulkan support being extended to all our tools in the very near future.
The last remark in the quote above is particularly important: not only are we providing a developer image for an affordable device integrating a high-performance, quad-cluster PowerVR Rogue GPU, but we’re also making a significant investment in our SDK and tools to help developers quickly and easily adopt Vulkan.
For example, the latest version of our SDK introduces the new PowerVR Framework, an intermediate layer that will help developers transition from OpenGL ES to Vulkan and other explicit APIs. We expect to have the support needed for Vulkan in place by the next iteration of the PowerVR Graphics SDK (to be released at GDC 2016).
Three exclusive compute Vulkan demos
The official strapline for Vulkan since its initial announcement has been: “Graphics and compute belong together.”
Since the unveiling at GDC 2015, most developers have been experimenting with the new API in game engines and other graphics-related applications. For example, we’ve used Vulkan in our Gnome Horde demo and saw a 10x performance improvement vs. OpenGL ES for certain workloads:
However, Vulkan is a very capable API when it comes to compute applications too. This is why today we’re introducing three new GPU compute demos written entirely in Vulkan. The demos show Vulkan compute shaders of increasing complexity, generating a number of effects which are then blitted directly to the screen, without using any graphics pipeline.
This is our simplest compute demo showing reading and writing to image buffers, as well as explicit synchronization of the pipeline. The whole workload is pre-recorded, and played back each frame with different input parameters.
Multiple passes of compute shaders are used in a feedback loop to simulate and render the fluid diffusion.
The raymarching compute shader uses rays with signed-distance field equations to render and shade what appears to be dynamic high-poly geometry without actually providing any geometry information to the shader.
You can find out more about Vulkan from the official website set up by the Khronos Group. And if you’re a developer attending GDC 2016, we welcome you to register for our idc16 event where our team of experts will show you how to use Vulkan on PowerVR to create great applications.
Don’t forget to bookmark and revisit our Vulkan early access program page as we continue to add new examples and update our existing resources. And check out these free webinars and blog articles on Vulkan written by Tobias HectorFollow @ImaginationTech