summaryrefslogtreecommitdiffstats
path: root/wgpu/src/image/atlas.rs
diff options
context:
space:
mode:
authorLibravatar Héctor Ramón Jiménez <hector@hecrj.dev>2024-04-24 21:29:30 +0200
committerLibravatar Héctor Ramón Jiménez <hector@hecrj.dev>2024-04-24 21:29:30 +0200
commit493c36ac712ef04523065b94988a88cc4db16b1a (patch)
tree9a19baac6fa56025a2aa29f3e5d77c7c98cec4b7 /wgpu/src/image/atlas.rs
parentfdcec0319757d2f87c82787eab34c6bef8c5a799 (diff)
downloadiced-493c36ac712ef04523065b94988a88cc4db16b1a.tar.gz
iced-493c36ac712ef04523065b94988a88cc4db16b1a.tar.bz2
iced-493c36ac712ef04523065b94988a88cc4db16b1a.zip
Make image `Cache` eviction strategy less aggressive in `iced_wgpu`
Instead of trimming unconditionally at the end of a frame, we now trim the cache only when there is a cache miss. This way, images that are not visible but still a part of the layout will stay cached. Eviction will only happen when the images are not a part of the UI for two consectuive frames.
Diffstat (limited to '')
-rw-r--r--wgpu/src/image/atlas.rs15
1 files changed, 11 insertions, 4 deletions
diff --git a/wgpu/src/image/atlas.rs b/wgpu/src/image/atlas.rs
index ea36e06d..ae43c3b4 100644
--- a/wgpu/src/image/atlas.rs
+++ b/wgpu/src/image/atlas.rs
@@ -94,7 +94,7 @@ impl Atlas {
entry
};
- log::info!("Allocated atlas entry: {entry:?}");
+ log::debug!("Allocated atlas entry: {entry:?}");
// It is a webgpu requirement that:
// BufferCopyView.layout.bytes_per_row % wgpu::COPY_BYTES_PER_ROW_ALIGNMENT == 0
@@ -147,13 +147,20 @@ impl Atlas {
}
}
- log::info!("Current atlas: {self:?}");
+ if log::log_enabled!(log::Level::Debug) {
+ log::debug!(
+ "Atlas layers: {} (busy: {}, allocations: {})",
+ self.layer_count(),
+ self.layers.iter().filter(|layer| !layer.is_empty()).count(),
+ self.layers.iter().map(Layer::allocations).sum::<usize>(),
+ );
+ }
Some(entry)
}
pub fn remove(&mut self, entry: &Entry) {
- log::info!("Removing atlas entry: {entry:?}");
+ log::debug!("Removing atlas entry: {entry:?}");
match entry {
Entry::Contiguous(allocation) => {
@@ -266,7 +273,7 @@ impl Atlas {
}
fn deallocate(&mut self, allocation: &Allocation) {
- log::info!("Deallocating atlas: {allocation:?}");
+ log::debug!("Deallocating atlas: {allocation:?}");
match allocation {
Allocation::Full { layer } => {