GPU Texture Compression (Beta)

Compress textures into GPU-native formats for real-time rendering pipelines

Overview

GPU texture compression encodes textures into formats that the GPU can decompress in hardware at render time, reducing VRAM usage and improving rendering performance. This feature is available in both the Generator and Optimizer tabs.

When a game-engine metadata format is selected in the Generator, additional GPU compression controls appear automatically:

OptionDescription
Texture FormatGPU compression algorithm (BC1, BC3, BC7, ETC1, ETC2 RGB, ETC2 RGBA, ASTC, PVRTC) or None
ContainerDDS (desktop/DirectX) or KTX2 (cross-platform/Vulkan)
Generate MipmapsCreate a full mipmap chain for LOD rendering

Note: When a GPU compression format is selected, atlas padding is automatically increased to at least the block size (typically 4 pixels) to prevent compression artifacts at block boundaries.

Desktop Formats (BC)

Block Compression formats for DirectX-based desktop rendering. Compressed via the etcpak Python library.

FormatAlso Known AsChannelsDescription
BC1DXT1RGB only4:1 compression, no alpha support
BC3DXT5RGBA4:1 compression with interpolated alpha
BC7RGBAHigh-quality RGBA, best quality-to-size ratio

BC formats can be stored in both DDS and KTX2 containers.

ETC Formats

Ericsson Texture Compression for mobile and embedded GPUs. Compressed via the etcpak Python library.

FormatChannelsDescription
ETC1RGB onlyLegacy mobile format, widest compatibility
ETC2 RGBRGB onlyImproved quality over ETC1, required by OpenGL ES 3.0+
ETC2 RGBARGBAETC2 with full alpha channel support

ETC formats are stored in KTX2 containers only (not DDS).

ASTC Formats

Adaptive Scalable Texture Compression for modern mobile and desktop GPUs. Requires the external astcenc CLI tool.

Block SizeQualityBits/PixelDescription
ASTC 4×4Highest8.0 bppBest quality, largest file size
ASTC 6×6Balanced3.56 bppGood balance of quality and compression
ASTC 8×8Lowest2.0 bppSmallest file size, lower quality

ASTC formats are stored in KTX2 containers only (not DDS).

PVRTC Formats

PowerVR Texture Compression, primarily for iOS devices. Requires the external PVRTexToolCLI tool from Imagination Technologies.

FormatBits/PixelDescription
PVRTC 4bpp4.0 bppStandard quality, good for most textures
PVRTC 2bpp2.0 bppHigher compression, lower quality

PVRTC formats are stored in KTX2 containers only (not DDS).

Important: PVRTC requires the separate PVRTexToolCLI binary and is not included with the standard installation.

Container Formats

ContainerExtensionBC SupportETC SupportASTC SupportPVRTC SupportMipmaps
DDS.dds
KTX2.ktx2

DDS is recommended for desktop DirectX games. KTX2 is the cross-platform choice supporting Vulkan, OpenGL ES, and WebGL.

Mipmap Generation

Mipmaps are pre-computed, progressively smaller versions of a texture used for level-of-detail (LOD) rendering. Each mipmap level is half the resolution of the previous one, generated using Lanczos resampling.

Enable the Generate Mipmaps checkbox when GPU compression is active. Mipmaps are embedded in both DDS and KTX2 containers.

External Tool Requirements

ToolTypeFormatsHow to Install
etcpakPython pip packageBC1, BC3, BC7, ETC1, ETC2pip install etcpak
astcencCLI toolASTC 4×4, 6×6, 8×8Download from ARM GitHub, add to PATH
PVRTexToolCLICLI toolPVRTC 4bpp, 2bppDownload from Imagination Technologies, add to PATH

Note: The etcpak pip package is included in the standard installation requirements. ASTC and PVRTC tools must be installed separately and made available on your system PATH.

Metadata Format Support

GPU texture compression is available when generating atlases in these game-engine metadata formats:

  • JSON Hash / JSON Array
  • Spine Atlas
  • Phaser 3 JSON
  • Plist (Cocos2d)
  • Godot Atlas
  • Egret2D JSON
  • Paper2D (Unreal Engine)
  • Unity TexturePacker

More resources