Texturing

ASTC

Mobile-era GPU texture compression

Also known as: Adaptive Scalable Texture Compression

Definition

ASTC is the modern texture-compression standard used on mobile GPUs (Adreno, Mali, Apple) and increasingly on console. Unlike BC formats which have fixed block sizes, ASTC supports variable block sizes from 4×4 up to 12×12, letting artists trade quality for size at per-texture granularity. ASTC 6×6 at 8 bits/pixel gives quality close to BC7 at the same bitrate; ASTC 8×8 halves memory at acceptable quality for non-hero textures.

In production

On mobile targets, default ASTC 6×6 for hero textures, ASTC 8×8 for everything else, and reserve ASTC 4×4 (the highest quality, largest footprint block size) for small but critical textures like UI icons or character face detail where compression artifacts are most visible. Unity and UE5 both transcode source textures to ASTC at import for iOS/Android builds, generating a separate cooked asset per platform so the same source PNG or TGA ships as BC7 on PC/console and ASTC on mobile without artist intervention. A common oversight is authoring textures at resolutions that don't divide evenly into the chosen block size, which wastes compressed memory on padding — a 1000x1000 texture at ASTC 8×8 rounds up to 1024x1024 internally. Apple's Metal and Android's Vulkan both mandate ASTC support on modern hardware, which is why it replaced the older ETC2 format as the mobile-first-class citizen, though ETC2 fallbacks are still shipped for older Android devices lacking ASTC decode hardware.

Learn ASTC in

Tools that use ASTC

See also