mirror of
https://github.com/gfx-rs/wgpu.git
synced 2026-04-22 03:02:01 -04:00
metal: improve push | pop_debug_marker
This commit is contained in:
committed by
Dzmitry Malyshau
parent
73f42352f3
commit
ba07db90c8
2
Cargo.lock
generated
2
Cargo.lock
generated
@@ -995,7 +995,7 @@ dependencies = [
|
||||
[[package]]
|
||||
name = "metal"
|
||||
version = "0.23.1"
|
||||
source = "git+https://github.com/gfx-rs/metal-rs?rev=a357159#a35715916fec38bbc08a510ecf7d115edc500c72"
|
||||
source = "git+https://github.com/gfx-rs/metal-rs?rev=1aaa903#1aaa9033a22b2af7ff8cae2ed412a4733799c3d3"
|
||||
dependencies = [
|
||||
"bitflags",
|
||||
"block",
|
||||
|
||||
@@ -79,7 +79,7 @@ winapi = { version = "0.3", features = ["libloaderapi", "windef", "winuser", "dc
|
||||
native = { package = "d3d12", git = "https://github.com/gfx-rs/d3d12-rs.git", rev = "ffe5e261da0a6cb85332b82ab310abd2a7e849f6", features = ["libloading"], optional = true }
|
||||
|
||||
[target.'cfg(any(target_os="macos", target_os="ios"))'.dependencies]
|
||||
mtl = { package = "metal", git = "https://github.com/gfx-rs/metal-rs", rev = "a357159" }
|
||||
mtl = { package = "metal", git = "https://github.com/gfx-rs/metal-rs", rev = "1aaa903" }
|
||||
objc = "0.2.5"
|
||||
core-graphics-types = "0.1"
|
||||
|
||||
|
||||
@@ -39,13 +39,15 @@ impl super::CommandEncoder {
|
||||
}
|
||||
}
|
||||
|
||||
fn enter_any(&mut self) -> &mtl::CommandEncoderRef {
|
||||
fn enter_any(&mut self) -> Option<&mtl::CommandEncoderRef> {
|
||||
if let Some(ref encoder) = self.state.render {
|
||||
encoder
|
||||
Some(encoder)
|
||||
} else if let Some(ref encoder) = self.state.compute {
|
||||
encoder
|
||||
Some(encoder)
|
||||
} else if let Some(ref encoder) = self.state.blit {
|
||||
Some(encoder)
|
||||
} else {
|
||||
self.enter_blit()
|
||||
None
|
||||
}
|
||||
}
|
||||
|
||||
@@ -627,13 +629,23 @@ impl crate::CommandEncoder<super::Api> for super::CommandEncoder {
|
||||
}
|
||||
|
||||
unsafe fn insert_debug_marker(&mut self, label: &str) {
|
||||
self.enter_any().insert_debug_signpost(label);
|
||||
if let Some(encoder) = self.enter_any() {
|
||||
encoder.insert_debug_signpost(label);
|
||||
}
|
||||
}
|
||||
unsafe fn begin_debug_marker(&mut self, group_label: &str) {
|
||||
self.enter_any().push_debug_group(group_label);
|
||||
if let Some(encoder) = self.enter_any() {
|
||||
encoder.push_debug_group(group_label);
|
||||
} else if let Some(ref buf) = self.raw_cmd_buf {
|
||||
buf.push_debug_group(group_label);
|
||||
}
|
||||
}
|
||||
unsafe fn end_debug_marker(&mut self) {
|
||||
self.enter_any().pop_debug_group();
|
||||
if let Some(encoder) = self.enter_any() {
|
||||
encoder.pop_debug_group();
|
||||
} else if let Some(ref buf) = self.raw_cmd_buf {
|
||||
buf.pop_debug_group();
|
||||
}
|
||||
}
|
||||
|
||||
unsafe fn set_render_pipeline(&mut self, pipeline: &super::RenderPipeline) {
|
||||
|
||||
Reference in New Issue
Block a user