SIGN IN SIGN UP

perf(relief): upload the color-relief DEM texture once per tile instead of every frame (#8209)

renderColorRelief called demTexture.update() unconditionally for every
visible tile on every frame - a full RGBA re-upload of pixels that never
change between a tile's (re)load and a neighbor backfilling its border.
A viewport of DEM tiles panned at 60 fps re-uploaded hundreds of MB/s
for nothing, which is most visible on bandwidth-poor devices and Safari.

The upload now sits behind a needsColorReliefPrepare flag on the tile,
set exactly where needsHillshadePrepare and needsTerrainPrepare already
are and checked the way terrain checks its own; hillshade and terrain
both guard their uploads of this same texture, color-relief was the
only per-frame caller.

Co-authored-by: Claude Fable 5 <noreply@anthropic.com>
S
Samuel committed
23703cb2e62fa72d6ae9eb950dc5da9c1e5e6782
Parent: 6a817c0
Committed by GitHub <noreply@github.com> on 8/23/2026, 11:50:32 AM