Texture view leaks
xiaopengli89 opened this issue · 0 comments
xiaopengli89 commented
Description
Related to #5595
500804e only clean up the suspected resources, weak pointers will leak if the texture never be dropped.
Repro steps
Minimal reproducible example:
use std::{thread, time::Duration};
fn main() {
let ins = wgpu::Instance::default();
let (_adp, dev, que) = pollster::block_on(async {
let adp = ins.request_adapter(&<_>::default()).await?;
let (dev, que) = adp.request_device(&<_>::default(), None).await.ok()?;
Some((adp, dev, que))
}).unwrap();
let size = wgpu::Extent3d {
width: 32,
height: 32,
depth_or_array_layers: 1,
};
let tex = dev.create_texture(&wgpu::TextureDescriptor {
label: None,
size,
mip_level_count: 1,
sample_count: 1,
dimension: wgpu::TextureDimension::D2,
format: wgpu::TextureFormat::R8Unorm,
usage: wgpu::TextureUsages::TEXTURE_BINDING,
view_formats: &[],
});
loop {
let _view = tex.create_view(&<_>::default());
que.submit(None);
dev.poll(wgpu::Maintain::Wait);
thread::sleep(Duration::from_secs_f32(1. / 60.));
}
}
Expected vs observed behavior
Expected: process memory keeps stable
Observed: process memory grows without bound
Platform
macOS, wgpu@77a83fb0d