diff options
author | 2020-01-19 18:06:46 +0100 | |
---|---|---|
committer | 2020-02-25 13:27:03 +0100 | |
commit | 4617da2818eb3ecc17b1da9571b7baa15056c026 (patch) | |
tree | 2e8b6b23576e86feb4ed42995a1d3244224b7bd8 /wgpu/src/image | |
parent | 8f9f44b9e8ff1f1629d2b19edd2ecdad79e80836 (diff) | |
download | iced-4617da2818eb3ecc17b1da9571b7baa15056c026.tar.gz iced-4617da2818eb3ecc17b1da9571b7baa15056c026.tar.bz2 iced-4617da2818eb3ecc17b1da9571b7baa15056c026.zip |
Implemented automatic deallocation of texture space for dropped allocations
Diffstat (limited to 'wgpu/src/image')
-rw-r--r-- | wgpu/src/image/raster.rs | 10 | ||||
-rw-r--r-- | wgpu/src/image/vector.rs | 8 |
2 files changed, 2 insertions, 16 deletions
diff --git a/wgpu/src/image/raster.rs b/wgpu/src/image/raster.rs index 648df0ff..884dd65a 100644 --- a/wgpu/src/image/raster.rs +++ b/wgpu/src/image/raster.rs @@ -91,17 +91,9 @@ impl Cache { memory } - pub fn trim(&mut self, texture_array: &mut TextureArray) { + pub fn trim(&mut self) { let hits = &self.hits; - for (id, mem) in &self.map { - if let Memory::Device(allocation) = mem { - if !hits.contains(&id) { - texture_array.deallocate(allocation); - } - } - } - self.map.retain(|k, _| hits.contains(k)); self.hits.clear(); } diff --git a/wgpu/src/image/vector.rs b/wgpu/src/image/vector.rs index a8746566..98588e5c 100644 --- a/wgpu/src/image/vector.rs +++ b/wgpu/src/image/vector.rs @@ -130,16 +130,10 @@ impl Cache { } } - pub fn trim(&mut self, texture_array: &mut TextureArray) { + pub fn trim(&mut self) { let svg_hits = &self.svg_hits; let rasterized_hits = &self.rasterized_hits; - for (k, allocation) in &self.rasterized { - if !rasterized_hits.contains(k) { - texture_array.deallocate(allocation); - } - } - self.svgs.retain(|k, _| svg_hits.contains(k)); self.rasterized.retain(|k, _| rasterized_hits.contains(k)); self.svg_hits.clear(); |