From c927e810defc302d7b0cc21b069a0657df0771ff Mon Sep 17 00:00:00 2001 From: Xiaopeng Li Date: Tue, 27 Sep 2022 14:49:21 +0800 Subject: [PATCH] Fix label leak (#3053) --- Cargo.lock | 7 ------- wgpu-hal/src/metal/command.rs | 6 +++--- wgpu-hal/src/metal/device.rs | 4 +++- 3 files changed, 6 insertions(+), 11 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 5e2ac814c2..6eda8fa13c 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -337,12 +337,6 @@ dependencies = [ "web-sys", ] -[[package]] -name = "copyless" -version = "0.1.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a2df960f5d869b2dd8532793fde43eb5427cceb126c929747a26823ab0eeb536" - [[package]] name = "core-foundation" version = "0.9.3" @@ -2249,7 +2243,6 @@ dependencies = [ "bitflags", "cfg_aliases", "codespan-reporting", - "copyless", "fxhash", "log", "naga", diff --git a/wgpu-hal/src/metal/command.rs b/wgpu-hal/src/metal/command.rs index 49337ee7ea..33e282ac2f 100644 --- a/wgpu-hal/src/metal/command.rs +++ b/wgpu-hal/src/metal/command.rs @@ -102,12 +102,12 @@ impl crate::CommandEncoder for super::CommandEncoder { } else { queue.new_command_buffer_with_unretained_references() }; + if let Some(label) = label { + cmd_buf_ref.set_label(label); + } cmd_buf_ref.to_owned() }); - if let Some(label) = label { - raw.set_label(label); - } self.raw_cmd_buf = Some(raw); Ok(()) diff --git a/wgpu-hal/src/metal/device.rs b/wgpu-hal/src/metal/device.rs index 81b9461f87..04810ec458 100644 --- a/wgpu-hal/src/metal/device.rs +++ b/wgpu-hal/src/metal/device.rs @@ -376,7 +376,9 @@ impl crate::Device for super::Device { }, ); if let Some(label) = desc.label { - raw.set_label(label); + objc::rc::autoreleasepool(|| { + raw.set_label(label); + }); } raw };