PERF.TEX002
An uncompressed texture costs several times the VRAM of a compressed one
A texture imported with Compression: None is stored as raw pixels. A 2048×2048 RGBA32 texture is 16 MB uncompressed; the same texture as DXT/BC gives you roughly 4 MB, ASTC 6×6 rather less. That multiplier applies to both the download/install size and the memory the texture occupies while it’s loaded.
What the scan looks at
Textures whose largest dimension is 256 px or more and whose effective import format for the active build target is uncompressed. The check reads the per-platform setting (with the default as fallback), so a texture that is compressed on Android but left uncompressed on Standalone is reported for the target you’re actually building.
Why it costs you
Block compression is decoded by the GPU’s texture units at sample time — it is not “decompressed into memory” the way a PNG is. So the compressed form is what sits in VRAM, and the saving is real at runtime, not just on disk. Uncompressed textures also burn more memory bandwidth per sample, which matters on mobile long before total VRAM does.
How to fix it by hand
Set Compression to Normal Quality (or High Quality for hero art) in the texture’s Inspector and reimport. If the result shows visible artifacts, the usual escalation ladder is:
- Keep compression, raise quality (
High Quality, or ASTC 4×4 instead of 6×6). - Halve Max Size instead of going uncompressed — a compressed 1024 usually beats an uncompressed 512.
- For gradients and skyboxes, where banding shows up worst, uncompressed can be the right call. Those are the exceptions, not the rule.
Textures that must stay lossless — lookup tables, data encoded into pixels, masks read by shaders bit-exactly — should stay uncompressed, and ideally shouldn’t be textures the artists ever touch.
What PerfLint does about it
Each finding carries the estimated memory delta between the current uncompressed format and a compressed one, so the list sorts by payoff instead of by folder. Pro can set Compression to Compressed from the finding row, individually or in bulk; it’s an importer change, so it’s reversible.
One caveat the scan is explicit about: switching the setting doesn’t guarantee the texture ends up compressed. When the dimensions don’t fit the block format, the importer silently falls back to uncompressed — that case has its own rule, PERF.TEX005.
Check your own project. The scan is free, runs entirely on your machine, and reports this rule with the exact assets that trip it — nothing is uploaded.
Last reviewed · All rules