promotional bannermobile promotional banner

Texture Scaler

A high-definition texture compression optimization mod compatible with low-end graphics cards.

Texture Scaler — stop the broken fonts and atlas crashes on low-limit GPUs.

The problem

Some GPUs report a comparatively small maximum texture size (GL_MAX_TEXTURE_SIZE): AMD RX 580 and most Intel integrated GPUs report 16384, older integrated GPUs only 8192. When a resource pack or another mod ships block or item textures of 1024–4096 px, Minecraft's block atlas — the single sheet that holds every block texture — can no longer be stitched:

java.lang.RuntimeException: Requested atlas size 32768 exceeds maximum 16384
net.minecraft.client.renderer.texture.StitcherException

The resource reload is aborted. Font textures, including every CJK glyph, never load: all text renders as empty boxes, and the game usually crashes shortly after.

What this mod does

Texture Scaler reads your GPU's limit at startup and downscales only the textures that would overflow the atlas, at load time, through a runtime overlay resource pack:

  • Nothing is modified. No mod jars, no resource packs, no files on disk are edited or replaced. The overlay pack sits above every other pack and serves downscaled copies only for the textures that need them.
  • Proportional downscaling, aspect ratio preserved, bilinear filtering.
  • Automatic threshold: cap = clamp(GL_MAX_TEXTURE_SIZE / 32, 256, 2048) — 1024 on NVIDIA (limit 32768), 512 on AMD RX 580 / Intel UHD (16384), 256 on older integrated GPUs (8192). Can be overridden manually.
  • Model UV safety: model JSONs that reference textures through absolute pixel UVs (texture_size) are detected, and those textures are skipped, so nothing renders misaligned.
  • Startup-friendly: results are cached in memory per reload and on disk (key = path + original size + cap), with a persistent size manifest and incremental re-checks between reloads. Typical cost is 2–3 seconds even on a very large modpack.

Requirements

  • Minecraft 1.20.1, Forge 47+
  • Java 17
  • Client-side only. Installing it on a server does nothing — servers do not render textures.

Configuration

config/texturescaler-client.toml:

Option Meaning
enabled Master switch (default true)
capOverride Force the pixel cap in pixels; 0 = automatic (default)
capDivisor / capMin / capMax Parameters of the automatic formula
diskCacheEnabled Cache downscaled results to disk (default true)
cacheDir Cache directory
skipNamespaces Namespaces left untouched (default ["minecraft", "texturescaler"])
extraTextureDirs Extra directories that feed the block atlas (e.g. ["blocks"])
debugLog Verbose logging (default false)

The cache lives in .minecraft/texturescaler/cache/. After updating the mod, or if you suspect a stale entry, simply delete that folder — it is rebuilt automatically on the next launch (the first launch afterwards is slower).

Notes

  • The mod is built for machines that currently fail. On a GPU with a large limit the automatic cap is 1024, so 2048/4096 px textures are still scaled down; if you would rather keep full quality there, raise capOverride (for example 2048) or set enabled = false.
  • If your log contains StitcherException or Requested atlas size ... exceeds maximum, that is exactly the failure this mod fixes.
  • Bug reports are welcome — please attach latest.log and your GPU model.

License and source

Licensed under the Mozilla Public License 2.0. Source code and issue tracker: see the links on this project page.

(AI-translated)

The Texture Scaler Team

profile avatar
  • 1
    Projects
  • 82
    Downloads