Skip to content

Buffer leaks #5940

@xiaopengli89

Description

@xiaopengli89

Description
Memory leaks when creating and writing buffers.

Repro steps

use std::{thread, time::Duration};

async fn run() {
    let ins = wgpu::Instance::new(wgpu::InstanceDescriptor {
        backends: wgpu::Backends::DX12,
        ..Default::default()
    });
    let adp = ins
        .request_adapter(&wgpu::RequestAdapterOptions::default())
        .await
        .unwrap();
    let info = adp.get_info();
    println!("Using {} ({} {})", info.name, info.backend, info.driver);
    let (dev, que) = adp
        .request_device(
            &wgpu::DeviceDescriptor {
                memory_hints: wgpu::MemoryHints::MemoryUsage,
                ..Default::default()
            },
            None,
        )
        .await
        .unwrap();
    let buf_src = vec![255u8; 4 << 10];
    loop {
        let buf = dev.create_buffer(&wgpu::BufferDescriptor {
            label: None,
            size: 4 << 10,
            usage: wgpu::BufferUsages::COPY_DST | wgpu::BufferUsages::UNIFORM,
            mapped_at_creation: false,
        });
        que.write_buffer(&buf, 0, &buf_src);
        dev.poll(wgpu::Maintain::Wait);
        que.submit(None);
        thread::sleep(Duration::from_secs_f32(1. / 60.));
    }
}
pub fn main() {
    pollster::block_on(run());
}

Extra materials
image
img_v3_02cm_0f3a2369-5a8c-4abc-bc40-6601fb55a78g

Platform
Windows 10, wgpu@ef0ce05d3a6ffae396c3335d71ef76069a2d480d

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    Status

    Done

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions