feat: add multi-layer image processing caches and controls#452
Open
EnTeQuAk wants to merge 1 commit intoCyberTimon:mainfrom
Open
feat: add multi-layer image processing caches and controls#452EnTeQuAk wants to merge 1 commit intoCyberTimon:mainfrom
EnTeQuAk wants to merge 1 commit intoCyberTimon:mainfrom
Conversation
- Cache GPU pipelines once per session and reuse them for every render to eliminate the shader rebuild on each adjustment. - Introduce an LRU processing cache that stores decoded masks, AI patches, and full-resolution transformed images keyed by image path and context (preview/original/fullscreen/export). - Cache AI mask bitmaps and patch decodes by content hash, so regenerated masks/patches reuse decoded data and never serve stale results. - Thread the transform cache through all render paths (preview, fullscreen, export, original view) and switch get_or_compute_transformed_image to pull from the shared cache. - Expose cache stats + size slider in the settings panel, add Tauri commands (get_cache_stats, set_cache_max_size, clear_processing_cache, apply_cache_settings), and persist the max size in AppSettings. - Clear per-image cache entries when loading a new file, log cache activity for debugging, and keep the uncropped preview path from polluting the main cache. Note: RAW load times are still dominated by demosaic/calibration; that work remains unchanged and will need a follow-up patch.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
This is a very first experiment. I don't quite know why, but the overall experience so far for me was rather sluggish, particularly when browsing through the gallery and editing pictures occasionally. I started experimenting with caching here and there, but, the main culprit, the RAW-file loading time (which spends a lot of time on demosaic) isn't affected by this branch.
I'd be interested to hear your feedback, if those caches do make the browsing experience somewhat smoother. It feels they do for me.
I'm still working on actual benchmarks to further proof if what I'm doing here is actually useful 🤣