Skip to main content

Graphics checks & calculations

Texture memory calculator with mipmaps

Calculate uncompressed texture memory from width, height, format and count. Include exact mipmap levels and compare bytes, MiB, GiB, MB and GB.

Updated:

Texture memory calculator

Estimate uncompressed 2D pixel data. No GPU allocation is needed.

Texture settings

A format selection is a data budget, not a check of device or WebGL format support.

Width and height: 1–65,536 pixels. Texture count: 1–1,000,000. These are calculator limits.

Try an example

Calculated pixel data

Total for all textures

16 MiB

16,777,216 bytes

0.015625 GiB · 16.777216 MB · 0.016777 GB

Base level
16,777,216 bytes · 16 MiB
Additional mip levels
0 bytes · 0 MiB
Levels per texture
1
Mipmap overhead
0%

Base-level formula

1,024 × 1,024 × 4 × 4 = 16,777,216 bytes

Total = sum of width × height × bytes/pixel × texture count at every listed level.

View each mip level (1)
Calculated pixel data: Bytes / all textures
LevelDimensionsBytes / textureBytes / all textures
01024 × 10244,194,30416,777,216

Byte counts are exact; converted units are rounded to 6 decimal places. Binary: MiB = 2²⁰ bytes; GiB = 2³⁰ bytes. Decimal: MB = 10⁶ bytes; GB = 10⁹ bytes.

This is a tightly packed pixel data budget. Driver overhead, row padding, duplicate copies, render targets, compression, and other GPU resources are excluded. It does not measure installed or available VRAM.

Method & result interpretation

Texture memory formula

For an uncompressed 2D texture, base-level pixel data equals width × height × bytes per pixel × texture count. RGBA8 uses four 8-bit channels, or 4 bytes per pixel. Four 1024 × 1024 RGBA8 textures therefore contain 16,777,216 bytes: exactly 16 MiB, or approximately 16.78 MB.

Changing both width and height from 1024 to 2048 makes that base-level total four times larger, 64 MiB. An RGBA16F texel uses 8 bytes; RGBA32F uses 16. The format labels describe a data budget and do not guarantee your browser can upload or filter each format.

Why mipmaps need a level-by-level calculation

A full mip chain halves each dimension, rounding down and retaining a minimum dimension of one, until a 1 × 1 level remains. The calculator sums the pixel data at every level. For large square textures, the total approaches four thirds of the base level, but that shortcut is not exact for all shapes.

For example, an 8 × 1 RGBA8 texture has levels 8 × 1, 4 × 1, 2 × 1 and 1 × 1. Their sum is 60 bytes, compared with 32 bytes for the base level. A blanket four-thirds multiplier would undercount this thin texture. Non-power-of-two dimensions also need the exact sequence of rounded dimensions.

Compare binary and decimal units

One MiB is 1,048,576 bytes and one GiB is 1,073,741,824 bytes. One MB is 1,000,000 bytes and one GB is 1,000,000,000 bytes. The byte total is the common reference when two tools use different unit labels.

Choose whole-number dimensions and a texture count within the displayed limits. Unsupported values are shown as input errors rather than silently clamped into a different calculation. Large budgets remain arithmetic: the calculator never allocates the texture data.

Pixel data is not actual VRAM usage

The result excludes driver alignment, tiling, browser copies, framebuffers, multisampling and other application resources. Shared-memory systems may place resources in system RAM. A budget neither measures free graphics memory nor proves that a requested allocation will succeed.

This version covers the listed uncompressed 2D formats and optional complete mip chains. It does not estimate compressed BC/ASTC blocks, cube maps, 3D textures or an entire game. Download the calculation to keep the assumptions with the result, and use the testing methodology to understand the homepage’s RGBA8 estimate.

Technical references

Continue your checks

GPU texture rendering test