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:
| Option | Description |
|---|---|
| Texture Format | GPU compression algorithm (BC1, BC3, BC7, ETC1, ETC2 RGB, ETC2 RGBA, ASTC, PVRTC) or None |
| Container | DDS (desktop/DirectX) or KTX2 (cross-platform/Vulkan) |
| Generate Mipmaps | Create 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.
| Format | Also Known As | Channels | Description |
|---|---|---|---|
| BC1 | DXT1 | RGB only | 4:1 compression, no alpha support |
| BC3 | DXT5 | RGBA | 4:1 compression with interpolated alpha |
| BC7 | — | RGBA | High-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.
| Format | Channels | Description |
|---|---|---|
| ETC1 | RGB only | Legacy mobile format, widest compatibility |
| ETC2 RGB | RGB only | Improved quality over ETC1, required by OpenGL ES 3.0+ |
| ETC2 RGBA | RGBA | ETC2 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 Size | Quality | Bits/Pixel | Description |
|---|---|---|---|
| ASTC 4×4 | Highest | 8.0 bpp | Best quality, largest file size |
| ASTC 6×6 | Balanced | 3.56 bpp | Good balance of quality and compression |
| ASTC 8×8 | Lowest | 2.0 bpp | Smallest 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.
| Format | Bits/Pixel | Description |
|---|---|---|
| PVRTC 4bpp | 4.0 bpp | Standard quality, good for most textures |
| PVRTC 2bpp | 2.0 bpp | Higher 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
| Container | Extension | BC Support | ETC Support | ASTC Support | PVRTC Support | Mipmaps |
|---|---|---|---|---|---|---|
| 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
| Tool | Type | Formats | How to Install |
|---|---|---|---|
| etcpak | Python pip package | BC1, BC3, BC7, ETC1, ETC2 | pip install etcpak |
| astcenc | CLI tool | ASTC 4×4, 6×6, 8×8 | Download from ARM GitHub, add to PATH |
| PVRTexToolCLI | CLI tool | PVRTC 4bpp, 2bpp | Download 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
- Supported Formats for complete input/output format lists
- User Manual — Generate Tab for atlas generation workflow
- Image Optimizer for post-processing GPU compression
- Installation Guide for setup details