`raster_layer_cache` (one ~w·h·16-byte Rgba16Float CanvasPair per keyframe) had no size cap — scrubbing a long timeline grew VRAM without bound (~33 MB/frame at 1080p), the largest unbounded consumer. Added a recency LRU (RASTER_LAYER_CACHE_MAX = 12): `ensure_layer_texture` bumps the frame to most-recent and evicts the oldest past the budget; the shown frame (and any rendered this pass) is always most-recent so it's never the victim. Evicted textures re-upload cheaply from the resident/faulted-in pixels on revisit. `remove_layer_texture` keeps the LRU in sync. F3 debug overlay now reports the tracked VRAM (raster cache MB + frame count), pushed from the GPU brush whenever the cache changes (wgpu exposes no allocator query). |
||
|---|---|---|
| .. | ||
| beamdsp | ||
| egui_node_graph2 | ||
| lightningbeam-core | ||
| lightningbeam-editor | ||
| .gitignore | ||
| Cargo.lock | ||
| Cargo.toml | ||
| build-static.sh | ||
| build-windows.bat | ||