gfx-rs / metal-rs

Rust bindings for Metal
Apache License 2.0
567 stars 112 forks source link

Raytracing example crash in autorelease #319

Closed xorza closed 3 months ago

xorza commented 3 months ago

I was playing with Raytracing demo and updated winit dependency to 0.30, which requires different approach of persisting some objects. Migrating demo revealed some problem hidden in Renderer::new() method. Basically to reproduce it without making too many changes and updating winit, just change:

    let mut renderer = renderer::Renderer::new(device);
    renderer.window_resized(cg_size);

to

    let mut renderer = autoreleasepool(|| {
        let mut renderer = renderer::Renderer::new(device);
        renderer.window_resized(cg_size);
        renderer
    });
image

Any advice, I'm not familiar with obj-c intricacies?