mirror of
https://github.com/storytold/lightcraft.git
synced 2026-10-25 02:30:15 -06:00
A decoded 64 MP original (Sony A7R VI: 9984×6656 linear float, 797 MB) is bigger than the default cache share (half of 1.5 GiB). MediaCache::enforce_budget evicted it as soon as the render handed it over, so every pan of a 1:1 view and every slider move while zoomed decoded the raw again (and lost the shared GPU copy, keyed by the CPU Arc). The frontend now tells the cache which photo Detail shows (MediaCache::set_on_screen, set per frame in panels::compare::prepare); that photo's original is not evicted for the budget and is let go as soon as another photo or view is shown. Keying it on "no newer preview of another photo" instead does not work: the neighbour prefetch stores previews after the original.