You copied the Doc URL to your clipboard.

AFBC textures

Compatible with the Mali-T760 GPU onwards, Arm FrameBuffer Compression (AFBC) is a lossless image compression format. AFBC can be used for compressing framebuffer outputs from the GPU.


You must understand the following concepts:

  • Texture compression techniques.
  • Framebuffer attachments.

Using AFBC

When enabled, AFBC is automatic and functionally transparent to the application. However, it is useful to be aware of some areas where AFBC cannot be used, and that can require the driver to insert run-time decompression from AFBC back to an uncompressed pixel format.

How to optimize the use of AFBC textures

Try using the following optimization steps:

  • Use the texture() functions in shaders to access textures and images that were previously rendered by the GPU as framebuffer attachments.
  • When packing data into color channels, to get the best compression rates, store the most volatile bits in the least significant bits of the channel.

Something to avoid when using AFBC textures

Do not use imageLoad() or imageStore() to read or write into a texture or image that was previously rendered by the GPU as a framebuffer attachment. Doing so triggers decompression.

The negative impact of not using AFBC textures correctly

Arm recommends that you keep in mind that the incorrect use of AFBC can trigger decompression.