diff --git a/src/backend/renderer/multigpu/mod.rs b/src/backend/renderer/multigpu/mod.rs index 2ebe3ea10f..bc0ad1bdff 100644 --- a/src/backend/renderer/multigpu/mod.rs +++ b/src/backend/renderer/multigpu/mod.rs @@ -1240,6 +1240,10 @@ where ) .map_err(Error::Target)?; let sync = frame.finish().map_err(Error::Target)?; + render + .renderer_mut() + .cleanup_texture_cache() + .map_err(Error::Render)?; return Ok(sync); } @@ -1291,6 +1295,10 @@ where } if mappings.is_empty() { + render + .renderer_mut() + .cleanup_texture_cache() + .map_err(Error::Render)?; return Ok(sync::SyncPoint::signaled()); } @@ -1335,9 +1343,18 @@ where .map_err(Error::Target)?; } } - return frame.finish().map_err(Error::Target); + let sync = frame.finish().map_err(Error::Target)?; + render + .renderer_mut() + .cleanup_texture_cache() + .map_err(Error::Render)?; + return Ok(sync); } + render + .renderer_mut() + .cleanup_texture_cache() + .map_err(Error::Render)?; return Ok(sync); }