2.3. Texture Compression

Texture compression is used to reduce memory requirements, decrease load times, and conserve bandwidth. When a shader program executes, the sampler retrieves the texture, then decompresses it to get RGBA. There are a number of popular compression formats in use, including ETC2, TXTC, BC1-5, BC6/7 and ASTC.

Intel® Processor Graphics Gen9 family components now have hardware support for ASTC. ASTC produces higher compression ratios than other compression technologies. When used with the low-power versions of these processors, larger ASTC tiles provide better quality than reducing texture resolution.

These enhancements implement lossless color compression with automatic compression on store to memory, and decompression on load from memory. There is a maximum peak compression ratio of 2:1.

In the image below, an 800 x 600 bitmap of a butterfly wing rendered in RGBA would consume 1920 Kbytes of data. Both ETC2 and ASTC can reduce the dataset to 480 Kbytes in a 4 x 4 block, but ASTC compression approaches 1.9 bits/pixel in 8 x 8 mode. The difference image below the picture indicates significant loss of data, but even in the highest compression modes the picture still looks remarkably like the uncompressed original.

Comparing compression techniques

Figure 3. Comparing compression techniques.

For more complete information about compiler optimizations, see our Optimization Notice.