Vulkan SDK update
Our team has updated the Vulkan SDK with new sample code and tutorials. All sample code is released in github, under an MIT license. This latest SDK update includes two new Vulkan features: Vulkan Multipass and ASTC compression format available in the core Vulkan API.
By Gemma Paris

Our team has updated the Vulkan SDK with new sample code and tutorials. All sample code is released in github, under an MIT license. This latest SDK update includes two new Vulkan features with ARM Mali sample code and tutorials, which will help you to optimize your mobile graphics apps:
Vulkan Multipass
The Multipass feature in Vulkan enables developers to implement intense bandwidth requests without the need to access external memory. In the past, deferred shading on mobile was not feasible due to high bandwidth requirements on writing out a full G-Buffer to memory and then being read back as textures in the lighting pass. Extensions like GL_EXT_shader_pixel_local_storage in Open GL ES enabled developers to keep the G-Buffer on-tile to avoid these extra bandwidth requirements. However, now with Vulkan Multipass, there is no need of vendor-specific code paths to enable on-tile rendering anymore.
Multipass allows a render pass to contain multiple subpasses. This enables tiled-based GPUs like ARM Mali to merge two or more subpasses into one render pass, where the results from one subpass can be kept on-tile in-between the two subpasses. The resulting benefits are the removal of the need to access external memory, and so, making the implementation faster and reducing power consumption.
Adaptative Scalable Texture Compression
Texture compression is vital to reduce the size of games and other applications which rely heavily on textures. Furthermore, texture compression reduces bandwidth on the GPU which can improve performance and significantly reduce power consumption.
Adaptative Scalable Texture Compression (ASTC) produces high quality compressed textures at very low bit rates and in many different types of image format configurations. ASTC is the most flexible and efficient texture compression format, making it the leading edge texture compression standard for GPUs.
Figure 1: Game texture comparison: Original, traditional ETC format, newest ASTC format
ASTC was first released as an extension in OpenGL ES, as well as it was also included in the Google’s Android Extension Pack. In Vulkan, ASTC is available in the core API.
ASTC supports the following textures in Vulkan API:
- LDR and HDR textures, although only LDR textures are part of the core Vulkan API
- 2D and 3D textures, although only 2D textures are part of the core Vulkan API
- Any number of colour channels and uncorrelated channels for special purpose texture data
- Supports a wide range of quality settings ranging from 8bpp all the way down to less than 1bpp for 2D images in fine grained steps
- In LDR mode, UNORM and SRGB are supported
To know more about ASTC visit the ASTC page on developer.arm.com.
By Gemma Paris
Re-use is only permitted for informational and non-commerical or personal use only.

