Vulkan-Specific Optimisations

Advice on Vulkan-related optimisations

Vulkan® is a new generation graphics and compute API. It has been built upon components from AMD’s Mantle API, which was donated to Khronos® by AMD. Vulkan is a highly efficient, streamlined, and modern API designed to take advantage of current and future device architectures. It works on a wide variety of platforms such as desktop PCs, consoles, mobile devices, and embedded devices.

Vulkan is designed from the ground up to take advantage of modern CPU architecture such as multi-core and multi-threaded systems. Rendering work can be spread over many logical threads - our Vulkan Gnome Horde demo in our SDK is a good demonstration of this aspect.

The application does not necessarily need to implement multi-threading to take advantage of Vulkan as the API is very efficient, which results in extremely low CPU overhead. Vulkan requires less work to be carried out by the CPU to instruct the graphics core, which significantly reduces CPU usage. For mobile devices this can reduce thermal output and power consumption.

Vulkan feels more akin to modern object orientated programming languages. The rendering state is packaged into easily manageable independent API objects, rather than one giant global state machine as found in OpenGL ES.