GPU-ready texture cache: store block-compressed textures on disk (skip J2C decode + encode on reload) #274
Labels
No labels
amd
avatars
bug
builder
cannot-reproduce
crash
epic
feature
from-viewer
gl-removal
known-limitation
monitoring
parity
perf
platform
priority
critical
priority
high
priority
low
priority
medium
provenance
rendering
rt
status
in-progress
status
testing
status
up-next
triage
ui
upstream
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Blocks
Reference
sky_line/Slipstream#274
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Cache GPU-ready block-compressed texture data on disk, so textures seen before skip the JPEG2000 decode and the GPU encode on later loads.
Why
Today every texture goes: download or LL disk cache (J2C) → CPU JPEG2000 decode (OpenJPEG; the most expensive CPU work in the viewer, which saturates the decode threads at login and teleports) → RGBA upload → GPU BC encode (#263 texture compression).
With a BC cache, a texture already seen loads from disk straight into the GPU: no J2C decode, no encode. Expected wins:
Design sketch
Costs and risks
Measure
Login and teleport time to "textures settled" and the peak RSS (#262), first visit vs return visit, with the cache on vs off, at a heavy region.
Part of #405 (RAM/VRAM management epic).
Ticket audit 2026-10-07: done and shipped in 1.0.0 Beta 10. On-disk GPU-ready (block-compressed) texture cache with LRU budget, validation, Clear Cache purge and preferences (
e112c99873,f1b9153fdf,2e46bbcecd,aa1f0e8780,34ea8d1163,2574b6b7f2). If you still see the problem on the current beta, please reopen or file a new report.