Skip to main content
Rendering artifactTextures

Texture Streaming Undersampling

Distinguish a real memory shortage from stale streaming data, bad scale estimates, and slow mip requests.

texturesstreamingmipmapsGPU memorymaterials

What you're seeing

A visible texture renders below its required resolution, sharpens late, or repeatedly changes mip quality.

Likely causes

  • The required texture pool exceeds the streaming memory budget.
  • Built UV scale or component bounds do not match how the material uses the texture.
  • Global or per-texture mip bias limits the available resolution.
  • Streaming data is stale, or IO and update cadence delay the required mip.

Check in this order

  1. 01Open Required Texture Resolution and compare loaded resolution with required resolution.
  2. 02Run STAT STREAMING and check whether Required Pool exceeds 100 percent.
  3. 03Use r.Streaming.DropMips 2 in a controlled test to remove cache and prefetch effects.
  4. 04Rebuild streaming data or correct UV scale and bounds before increasing the pool.
  5. 05Test the final budget and IO behavior on target hardware.

Views and commands

Streaming metrics

STAT STREAMING sortby=name maxhistoryframes=1

Shows required, visible, cached, and available streaming memory.

Controlled mip test

r.Streaming.DropMips 2

Drops cached and hidden mips so loaded resolution follows visible demand.

Build-status check

r.Streaming.CheckBuildStatus 1

Warns in PIE or simulation when texture streaming data needs rebuilding.

Texture analysis

r.Streaming.AnalysisIndex 0

Selects texture index 0 in Material Texture Coordinate Scale Accuracy view.

Required resolution view

View Mode > Optimization Viewmodes > Required Texture Resolution

Compares the current streamed resolution with the required resolution.

Epic documentation

Related guides

Unreal Directive is free and ad-free.

If it saved you time, you can help keep it that way.

Donate