Pipeline cache persistence uses full-size temporary heap buffers #2623
Labels
No labels
accessibility
autorelease: pending
autorelease: tagged
bug
dependencies
documentation
duplicate
enhancement
github_actions
good first issue
help wanted
invalid
question
testing wanted
wontfix
No milestone
No assignees
1 participant
Due date
No due date set.
Dependencies
No dependencies set
Reference
MagicBeanDev/Hookshot#2623
Loading…
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?
Pipeline-cache persistence still allocates temporary vectors as large as the cache:
pcache_file_read,play_file_writeand full base-cache saves on main55b976c0. That private allocation overlaps the driver's retained cache. #2206 provides a useful opt-out, but keeping the warm application cache should not require another complete heap buffer.Local reproduction:
ef81aee7host with byte-identical renderer API18 and the candidate renderer based on55b976c0; they are not a full current-host build.The scoped implementation keeps the cache format, generation retention, thresholds and existing switches. Reads validate the header first; Linux uses an owned private file snapshot. Writes use an owned sibling temporary and atomic publication of the actual returned length. Incomplete driver copies and I/O failures retain the old cache; a failed read must not delete a valid generation.
Linux snapshots need temporary disk space and extra I/O. Mapped pages still use RAM, and mapped media faults remain native faults. Driver-owned cache memory is not removed. Linux file tests pass; actual Linux Vulkan, AMD and Intel runtime validation are still missing.
Coordination: investigation claim, #2456 scope question. Preserve #2456's Intel synchronization, #2430's hardened opens/limits and #2317's path migration. #882's sandbox will need an intentional temporary-file policy; no in-place overwrite fallback is proposed.
Priority: S3 (1) × provisional reach 0.01 × reproduced confidence 1.0 = 0.01. Reach is an unmeasured planning assumption for large-cache installations, not an installed-base statistic or a claim to fix reported OOM crashes.