Who is this for?

Software developers of Android applications and mobile games who are interested in learning how to enable Arm Fixed Rate Compression (AFRC) to improve performance.

What will you learn?

Upon completion of this Learning Path, you will be able to:

  • Query for fixed-rate compression support.
  • Specify what compression to use.
  • Verify that compression is applied.

Prerequisites

Before starting, you will need the following:

  • An appropriate Android device (e.g., Google Pixel 8) supporting the required Vulkan extensions.
  • Knowledge of the Vulkan API.
  • A Vulkan application that creates and uses images. This Learning Path shows how to use an API Sample in the Khronos Vulkan Samples repository as an example.

Summary

AI-assisted

This summary was drafted with an approved AI-assisted workflow and reviewed by Arm contributors before publication. Human technical review remains part of the process so the final page reflects engineering rigor, accuracy, and Arm editorial standards.

Close
?
You’ll enable and verify Arm Fixed Rate Compression for Vulkan images on Android. You’ll confirm the required Vulkan extensions, define image settings, query fixed-rate support, and request compression with the appropriate pNext structure. Then, you’ll inspect the compression state to validate the setting for your images, including swapchain-specific extension requirements.

Frequently asked questions

AI-assisted

These FAQs were drafted with an approved AI-assisted workflow and reviewed by Arm contributors before publication. Human technical review remains part of the process so the final page reflects engineering rigor, accuracy, and Arm editorial standards.

Close
?
How do I check whether my device supports the required Vulkan extensions?
Call vkEnumerateDeviceExtensionProperties and look for VK_EXT_image_compression_control. If present, add it to VkDeviceCreateInfo.ppEnabledExtensionNames before vkCreateDevice.
What should I do differently for swapchain images?
Swapchain images also require VK_EXT_image_compression_control_swapchain. Enable this extension in addition to VK_EXT_image_compression_control if you want fixed-rate compression on swapchain images.
Can I follow this Learning Path without creating a new Vulkan sample?
Yes. You can use your own Vulkan application and refer to the Khronos Vulkan Samples code as a reference.
How do I know if a specific image configuration supports fixed-rate compression?
Populate VkImageCreateInfo with your format, image type, tiling, and usage, then use these properties to query support before creating the image. If supported, proceed to request fixed-rate compression.
How do I request and verify that fixed-rate compression is applied?
Provide a VkImageCompressionControlEXT with VK_IMAGE_COMPRESSION_FIXED_RATE_DEFAULT_EXT in the pNext chain of VkImageCreateInfo when creating the image. Use VK_EXT_image_compression_control to inspect the compression state and confirm that fixed-rate compression is active.
Next