Texture Atlas Calculator

Round any texture to the nearest power of two and see its real GPU memory cost across compression formats — with mipmap and packing-efficiency estimates.

Texture

Rough packing estimate — MaxRects with trimming typically reaches 80–95%.

Power-of-Two

Next power-of-two (round up)1024 × 1024 px
Previous power-of-two (round down)512 × 512 px
Padding overhead when rounding up+74.8%
Effective atlas efficiency45.8%
GPU compatibilityFits 2048² — safe on all GPUs

Rounding up wastes a lot of space at this size — consider resizing content closer to 512 × 512, or packing more sprites into the larger atlas so the space isn't wasted.

GPU Memory at 1024 × 1024

RGBA 8888 (uncompressed)4.00 MB
RGBA 44442.00 MB
RGB 565 (no alpha)2.00 MB
DXT1 / BC1 (no alpha)512.0 KB
DXT5 / BC31.00 MB
ETC2 RGBA1.00 MB
ASTC 4×41.00 MB
ASTC 8×8256.0 KB

VRAM cost is decoded size, independent of PNG/JPG file size on disk. Block-compressed formats need power-of-two or multiple-of-4 dimensions and are set in your engine's import settings, not in the image file.

How It Works

1

Enter texture dimensions

Type the width and height of your texture or atlas — any size, it doesn't need to exist yet.

2

Set packing and mipmap options

Estimate how much of the area your sprites cover and whether the texture will have mipmaps.

3

Compare formats

See the nearest power-of-two sizes, rounding overhead, and VRAM cost from uncompressed RGBA down to ASTC.

Frequently Asked Questions

Modern GPUs render non-power-of-two textures fine, but block compression (DXT/ETC2/ASTC), mipmap generation, and texture wrapping often still require or prefer power-of-two dimensions — and some engine importers enforce it. When in doubt, power-of-two costs a little space and removes a class of problems.

For desktop, DXT5/BC3 gives 4:1 compression with alpha. For mobile, ETC2 (Android/GLES3) or ASTC (modern iOS/Android) are the standards. Uncompressed RGBA8888 is only worth it for UI or pixel art where compression artifacts are visible.

It's an estimate to reason about waste, not a simulation. Real efficiency depends on your sprites' shapes — run them through the atlas packer and check the actual result; MaxRects with trimming typically lands between 80% and 95%.

Disk size affects download and load time; VRAM cost affects runtime performance and is set purely by dimensions × format. Optimizing one doesn't optimize the other — a heavily compressed PNG still decodes to full-size RGBA unless the engine re-encodes it to a GPU format.

Group by usage, not by maximum size. Sprites that render together belong in one atlas (fewer draw-call switches); sprites from different scenes belong apart so memory can be freed when a scene unloads. One 4096 atlas holding every scene's art forces all of it to stay resident all the time.

Want the full workflow, engine tips, and format details? Read the Texture Atlas Generator guide