Cache store: zstd compression for GPU-ready textures #710
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.
Dependencies
No dependencies set.
Reference
sky_line/Slipstream#710
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?
Part of #715 (cache rewrite epic).
Measured on one install (sample of the GPU-ready cache, one Zen 4 core):
By format at level 3: BC1 29%, BC3 18%, BC5 61%, BC7 42% -- about 45% overall.
Interface audit (step 1 of #715): the codec shim and how GPU-ready uses it.
Touches
run_write(:282) /run_read(:252). The payload is what gets compressed; the 128-byteLLGpuTexHeader(llgputexcache.h:65) becomes record meta + an uncompressed prefix.releasedflag (llcleanrenderervk.cpp:12170). Compression runs on the store's writer side after the copy, so the renderer is unchanged.Slice of the interface
raw_bytesandstored_bytes;RecordInfoexposes both, so budgets count stored bytes and stats show the ratio.KindPolicy.codec = IDENTITY) works per kind at runtime. Old records stay readable because each record names its codec.preadinto the record).Codecis used by the object cache without the store (#713).Drop-in plan
indra/cmake/3p_manifest.json(scripts/3p/manifest.py add; Linux + Windows cross). It is not a dependency today (zlib-ng only).Codecin the store library with round-trip and corrupt-input tests.