Texture memory (VRAM)
How much graphics memory textures take. It is plain arithmetic, width times height times bytes per pixel plus a third for mips, and it adds up quickly across a level.
Texture memory is the graphics memory (VRAM) that textures occupy while the game runs. It is usually the largest share of an environment's memory, and it is easy to work out: width × height × bytes per pixel × 4/3, where the extra third pays for the mip chain.
texture formats, compression and mipmaps explains how the formats work and gives a worked material example; texture streaming explains how engines keep only the mips they need. This page is the quick reference: bytes per format, the maths for odd cases, and how to read the memory reports.
#Bytes per pixel
Nathan Reed's guide gives the block sizes of the GPU compression formats. Each stores a 4 × 4 block of pixels (reedbeta.com: Understanding BCn Texture Compression Formats):
| Format | Bytes per 4×4 block | Bytes per pixel | Typical use (reedbeta.com) |
|---|---|---|---|
| BC1 | 8 | 0.5 | "most standard-issue color maps" |
| BC4 | 8 | 0.5 | height, gloss and other greyscale maps |
| BC3 | 16 | 1 | colour with full alpha |
| BC5 | 16 | 1 | "tangent-space normal maps" |
| BC6H | 16 | 1 | HDR images; "the only BCn format that can natively store HDR" |
| BC7 | 16 | 1 | high-quality colour, with or without alpha |
| RGBA8 (uncompressed) | 64 | 4 | reference point |
Reed: block compression "represents a 4:1 or 8:1 compression ratio, if the source image is in 8-bit RGBA format" (reedbeta.com: Understanding BCn Texture Compression Formats). An uncompressed 16-bit float RGBA texture uses 8 bytes per pixel (four channels of two bytes each).
#Calculations, including non-square textures and cubemaps
Epic notes that DXT5 textures "require near-twice the memory of their DXT1 counterpart" (Unreal Engine Documentation: Texture Format Support and Settings): choosing BC1 instead of BC3 or BC7 for an opaque colour map halves its cost.
#Other uses of VRAM
VRAM also holds render targets, buffers and geometry. Guerrilla's Killzone 2 talk shows how quickly screen-sized targets add up: its G-buffer of four RGBA8 targets plus depth "was just above 18mb", and turning on anti-aliasing "doubled the G-Buffer size to just bellow 37mb" (Guerrilla Games: The Rendering Technology of Killzone 2). Memory used by render targets is not available for textures.
#Reading the memory reports
Unreal Engine
stat streaming"Displays basic statistics on streaming assets, like how much memory streaming textures are using" (Unreal Engine Documentation: Stat Commands in Unreal Engine).stat memory"Shows statistics on how much memory is being used by various subsystems" (Unreal Engine Documentation: Stat Commands in Unreal Engine);stat rhishows "RHI memory and performance statistics" (Unreal Engine Documentation: Stat Commands in Unreal Engine).memreport: Ben Zeigler, writing on the Unreal Engine blog, says his first step is "always to use the memreport command", andmemreport -full"also has sections for individual assets like static meshes or textures" (Unreal Engine blog: Debugging and Optimizing Memory).
Unity
- The Memory Profiler package is "a tool which you can use to analyze and optimize the memory usage of your application", based on captured memory snapshots (Unity Manual: Memory Profiler). Unity's profiling guide recommends running it to make sure "the application is also within its memory budget" (Unity: Best practices for profiling game performance).
Hugh Chew's video walks through VRAM, compression, sampling and streaming in UE5 from an artist's point of view (YouTube: Your Textures Are Killing Performance, Here's…).
#Related pages
texture formats, compression and mipmaps · texture streaming · mipmaps · channel packing · texel density · virtual texturing · frame budgets · performance and profiling · trim sheets
#Further reading and watching
References
- · Understanding BCn Texture Compression Formats · reedbeta.com · article · accessed 2026-10-21
- · Texture Format Support and Settings · Unreal Engine Documentation · docs · accessed 2026-10-21
- · The Rendering Technology of Killzone 2 (GDC 2009) · Guerrilla Games, 2009 · talk · accessed 2026-10-21
- · Stat Commands in Unreal Engine · Unreal Engine Documentation · docs · accessed 2026-10-21
- · Debugging and Optimizing Memory · Unreal Engine blog, 2014 · article · accessed 2026-10-21
- · Memory Profiler · Unity Manual (package documentation) · docs · accessed 2026-10-21
- · Best practices for profiling game performance · Unity · article · accessed 2026-10-21
- · Your Textures Are Killing Performance, Here's Why · YouTube, 2026 · video · accessed 2026-10-21
Pages that link here
- Vertex colours Key term
- Texture file formats Reference
- Weighted (custom) normals Topic
- The mid-poly workflow Topic
- Hero assets, props and filler Topic
- Polygon and triangle budgets Topic
- Level of detail (LOD) Topic
- Sculpting damage and wear Guide
- Texture formats, compression and mipmaps Topic
- Texture streaming Key term
- Opacity, masked and translucent materials Key term
- Texture atlases Topic
- Vertex painting and blending Topic
- Performance and profiling Topic
- Frame budgets Key term
- Essential talks and videos Reference
- Game art breakdowns: a curated library Reference
Last updated 2026-10-22