From ab8ed4e1e205d50985bd706f66c2384bb47a4d51 Mon Sep 17 00:00:00 2001 From: Nicolas Silva Date: Tue, 30 Oct 2018 17:01:23 +0100 Subject: [PATCH] Properly evict cached blob tiles when they are out of the visible area. --- webrender/src/resource_cache.rs | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/webrender/src/resource_cache.rs b/webrender/src/resource_cache.rs index 908956be64..5269afb627 100644 --- a/webrender/src/resource_cache.rs +++ b/webrender/src/resource_cache.rs @@ -1202,6 +1202,20 @@ impl ResourceCache { ); tiles.retain(|tile, _| { tile_range.contains(tile) }); + + let texture_cache = &mut self.texture_cache; + match self.cached_images.try_get_mut(&key) { + Some(&mut ImageResult::Multi(ref mut entries)) => { + entries.retain(|key, entry| { + if key.tile.is_none() || tile_range.contains(&key.tile.unwrap()) { + return true; + } + texture_cache.mark_unused(&entry.texture_cache_handle); + return false; + }); + } + _ => {} + } } pub fn request_glyphs(