The Vulkan API released in Feb’16 by Khronos is the new generation graphics and compute API designed to work across all platform types from desktops to mobile and embedded. One of the key features is that it’s a very low level API, giving more explicit control of the underlying hardware architecture as well as memory management. Developers can therefore optimize their code, achieving better performance and reducing power consumption. Furthermore, with the increase of the number of CPU cores in smartphones, Vulkan supports multithreading, giving developers flexibility and control over the resources and when and how to execute the threads.
The new ARM Vulkan SDK v1.0.0 consists of a collection of resources: get started guide, sample code and tutorials; so that graphics developers can produce applications that run Android and Vulkan on an ARM processor. The only pre-requisite for developers is to have the latest Android Studio and NDK installed with an ARM Mali GPU based device that runs Android and supports Vulkan, like the Samsung Galaxy S7.
Pictures above - What you need to set up your environment and start programming in Vulkan
After the developer environment is set up and the graphics developer has gone through the basics on how the Vulkan API is designed, the SDK offers a set of sample code with its source code and tutorial, explaining step-by-step the lines of code, and this first release starts with the basic examples such as the “hello triangle”, “Rotating Texture” to introduce texturing and uniform buffers, “Multithreading”, “Introduction to Compute Shaders”, “Multisampling” to showcase the most efficient way to implement Multi Sample Anti-Aliasing (MSAA) with ARM Mali, and finally a “Spinning Cube” sample to introduce depth testing and push constants. You can download the SDK from our ARM Mali Developer Center: http://malideveloper.arm.com/resources/sdks/mali-vulkan-sdk/
Marius Bjorge, Hans-Kristian Arntzen and Panos Christopoulos are our lead engineers who built our new Vulkan SDK v1.0.0 for Android, a precious resource for graphics developers, so I encourage them to keep up the good work! And I am already looking forward to their next update, aimed at more experienced Vulkan developers, can’t wait!