diff --git a/wgpu/Cargo.toml b/wgpu/Cargo.toml index 6aad3a9ac9..3b7bbe472a 100644 --- a/wgpu/Cargo.toml +++ b/wgpu/Cargo.toml @@ -26,14 +26,14 @@ vulkan-portability = ["wgc/gfx-backend-vulkan"] package = "wgpu-core" version = "0.5" git = "https://github.com/gfx-rs/wgpu" -rev = "6e3e88dd1058fdd0c9906ba672bbbba811422c56" +rev = "92aaa2bba6f2125a93525aabb404ec2952421696" features = ["raw-window-handle"] [dependencies.wgt] package = "wgpu-types" version = "0.5" git = "https://github.com/gfx-rs/wgpu" -rev = "6e3e88dd1058fdd0c9906ba672bbbba811422c56" +rev = "92aaa2bba6f2125a93525aabb404ec2952421696" [dependencies] arrayvec = "0.5" @@ -62,9 +62,9 @@ ddsfile = "0.4.0" [target.'cfg(not(target_arch = "wasm32"))'.dev-dependencies.subscriber] package = "wgpu-subscriber" -version = "0.5" #TODO: change to 0.1 +version = "0.1" git = "https://github.com/gfx-rs/wgpu" -rev = "6e3e88dd1058fdd0c9906ba672bbbba811422c56" +rev = "92aaa2bba6f2125a93525aabb404ec2952421696" [[example]] name="hello-compute" @@ -74,7 +74,7 @@ test = true [patch."https://github.com/gfx-rs/wgpu"] #wgpu-types = { version = "0.5", path = "../wgpu/wgpu-types" } #wgpu-core = { version = "0.5", path = "../wgpu/wgpu-core" } -#wgpu-subscriber = { version = "0.5", path = "../wgpu/wgpu-subscriber" } +#wgpu-subscriber = { version = "0.1", path = "../wgpu/wgpu-subscriber" } [patch."https://github.com/gfx-rs/naga"] #naga = { path = "../naga" } diff --git a/wgpu/examples/boids/main.rs b/wgpu/examples/boids/main.rs index 31ecda1176..7685da3541 100644 --- a/wgpu/examples/boids/main.rs +++ b/wgpu/examples/boids/main.rs @@ -110,6 +110,7 @@ impl framework::Example for Example { }); let render_pipeline = device.create_render_pipeline(&wgpu::RenderPipelineDescriptor { + label: None, layout: Some(&render_pipeline_layout), vertex_stage: wgpu::ProgrammableStageDescriptor { module: &vs_module, @@ -150,6 +151,7 @@ impl framework::Example for Example { // create compute pipeline let compute_pipeline = device.create_compute_pipeline(&wgpu::ComputePipelineDescriptor { + label: None, layout: Some(&compute_pipeline_layout), compute_stage: wgpu::ProgrammableStageDescriptor { module: &boids_module, diff --git a/wgpu/examples/cube/main.rs b/wgpu/examples/cube/main.rs index 101b00282f..1465ccc941 100644 --- a/wgpu/examples/cube/main.rs +++ b/wgpu/examples/cube/main.rs @@ -249,6 +249,7 @@ impl framework::Example for Example { let fs_module = device.create_shader_module(wgpu::include_spirv!("shader.frag.spv")); let pipeline = device.create_render_pipeline(&wgpu::RenderPipelineDescriptor { + label: None, layout: Some(&pipeline_layout), vertex_stage: wgpu::ProgrammableStageDescriptor { module: &vs_module, diff --git a/wgpu/examples/hello-compute/main.rs b/wgpu/examples/hello-compute/main.rs index 7cab47bfbc..b63ae16f40 100644 --- a/wgpu/examples/hello-compute/main.rs +++ b/wgpu/examples/hello-compute/main.rs @@ -91,6 +91,7 @@ async fn execute_gpu(numbers: Vec) -> Vec { }); let compute_pipeline = device.create_compute_pipeline(&wgpu::ComputePipelineDescriptor { + label: None, layout: Some(&pipeline_layout), compute_stage: wgpu::ProgrammableStageDescriptor { module: &cs_module, diff --git a/wgpu/examples/hello-triangle/main.rs b/wgpu/examples/hello-triangle/main.rs index da479aa10c..c539a3c349 100644 --- a/wgpu/examples/hello-triangle/main.rs +++ b/wgpu/examples/hello-triangle/main.rs @@ -41,6 +41,7 @@ async fn run(event_loop: EventLoop<()>, window: Window, swapchain_format: wgpu:: }); let render_pipeline = device.create_render_pipeline(&wgpu::RenderPipelineDescriptor { + label: None, layout: Some(&pipeline_layout), vertex_stage: wgpu::ProgrammableStageDescriptor { module: &vs_module, diff --git a/wgpu/examples/mipmap/main.rs b/wgpu/examples/mipmap/main.rs index e326b52df0..669a674166 100644 --- a/wgpu/examples/mipmap/main.rs +++ b/wgpu/examples/mipmap/main.rs @@ -113,6 +113,7 @@ impl Example { let fs_module = device.create_shader_module(wgpu::include_spirv!("blit.frag.spv")); let pipeline = device.create_render_pipeline(&wgpu::RenderPipelineDescriptor { + label: Some("blit"), layout: Some(&pipeline_layout), vertex_stage: wgpu::ProgrammableStageDescriptor { module: &vs_module, @@ -345,6 +346,7 @@ impl framework::Example for Example { let fs_module = device.create_shader_module(wgpu::include_spirv!("draw.frag.spv")); let draw_pipeline = device.create_render_pipeline(&wgpu::RenderPipelineDescriptor { + label: Some("draw"), layout: Some(&pipeline_layout), vertex_stage: wgpu::ProgrammableStageDescriptor { module: &vs_module, diff --git a/wgpu/examples/msaa-line/main.rs b/wgpu/examples/msaa-line/main.rs index 182e5d0388..331b2ee227 100644 --- a/wgpu/examples/msaa-line/main.rs +++ b/wgpu/examples/msaa-line/main.rs @@ -51,6 +51,7 @@ impl Example { ) -> wgpu::RenderBundle { log::info!("sample_count: {}", sample_count); let pipeline = device.create_render_pipeline(&wgpu::RenderPipelineDescriptor { + label: None, layout: Some(&pipeline_layout), vertex_stage: wgpu::ProgrammableStageDescriptor { module: vs_module, diff --git a/wgpu/examples/shadow/main.rs b/wgpu/examples/shadow/main.rs index d108ac0150..030c63d539 100644 --- a/wgpu/examples/shadow/main.rs +++ b/wgpu/examples/shadow/main.rs @@ -484,6 +484,7 @@ impl framework::Example for Example { let fs_module = device.create_shader_module(wgpu::include_spirv!("bake.frag.spv")); let pipeline = device.create_render_pipeline(&wgpu::RenderPipelineDescriptor { + label: Some("shadow"), layout: Some(&pipeline_layout), vertex_stage: wgpu::ProgrammableStageDescriptor { module: &vs_module, @@ -617,6 +618,7 @@ impl framework::Example for Example { let fs_module = device.create_shader_module(wgpu::include_spirv!("forward.frag.spv")); let pipeline = device.create_render_pipeline(&wgpu::RenderPipelineDescriptor { + label: Some("main"), layout: Some(&pipeline_layout), vertex_stage: wgpu::ProgrammableStageDescriptor { module: &vs_module, diff --git a/wgpu/examples/skybox/main.rs b/wgpu/examples/skybox/main.rs index a0b7767691..454b48c2e6 100644 --- a/wgpu/examples/skybox/main.rs +++ b/wgpu/examples/skybox/main.rs @@ -99,6 +99,7 @@ impl framework::Example for Skybox { // Create the render pipeline let pipeline = device.create_render_pipeline(&wgpu::RenderPipelineDescriptor { + label: None, layout: Some(&pipeline_layout), vertex_stage: wgpu::ProgrammableStageDescriptor { module: &vs_module, diff --git a/wgpu/examples/texture-arrays/main.rs b/wgpu/examples/texture-arrays/main.rs index 9a2b57641c..bb92d8ca15 100644 --- a/wgpu/examples/texture-arrays/main.rs +++ b/wgpu/examples/texture-arrays/main.rs @@ -257,6 +257,7 @@ impl framework::Example for Example { }); let pipeline = device.create_render_pipeline(&wgpu::RenderPipelineDescriptor { + label: None, layout: Some(&pipeline_layout), vertex_stage: wgpu::ProgrammableStageDescriptor { module: &vs_module, diff --git a/wgpu/examples/water/main.rs b/wgpu/examples/water/main.rs index f69fbd6fbe..0c09a2c418 100644 --- a/wgpu/examples/water/main.rs +++ b/wgpu/examples/water/main.rs @@ -497,6 +497,7 @@ impl framework::Example for Example { // Create the render pipelines. These describe how the data will flow through the GPU, and what // constraints and modifiers it will have. let water_pipeline = device.create_render_pipeline(&wgpu::RenderPipelineDescriptor { + label: Some("water"), // The "layout" is what uniforms will be needed. layout: Some(&water_pipeline_layout), // Vertex & Fragment shaders @@ -570,6 +571,7 @@ impl framework::Example for Example { // Same idea as the water pipeline. let terrain_pipeline = device.create_render_pipeline(&wgpu::RenderPipelineDescriptor { + label: Some("terrain"), layout: Some(&terrain_pipeline_layout), vertex_stage: wgpu::ProgrammableStageDescriptor { module: &terrain_vs_module, diff --git a/wgpu/src/backend/direct.rs b/wgpu/src/backend/direct.rs index 2427126752..2b90528e5f 100644 --- a/wgpu/src/backend/direct.rs +++ b/wgpu/src/backend/direct.rs @@ -739,6 +739,7 @@ impl crate::Context for Context { wgc::gfx_select!(*device => global.device_create_render_pipeline( *device, &pipe::RenderPipelineDescriptor { + label: desc.label.map(Borrowed), layout: desc.layout.map(|l| l.id), vertex_stage, fragment_stage, @@ -769,6 +770,7 @@ impl crate::Context for Context { wgc::gfx_select!(*device => global.device_create_compute_pipeline( *device, &pipe::ComputePipelineDescriptor { + label: desc.label.map(Borrowed), layout: desc.layout.map(|l| l.id), compute_stage: pipe::ProgrammableStageDescriptor { module: desc.compute_stage.module.id, diff --git a/wgpu/src/lib.rs b/wgpu/src/lib.rs index 924a40b2f6..00fbfa238a 100644 --- a/wgpu/src/lib.rs +++ b/wgpu/src/lib.rs @@ -1107,6 +1107,8 @@ pub struct RenderPassDescriptor<'a, 'b> { /// Describes a render (graphics) pipeline. #[derive(Clone, Debug)] pub struct RenderPipelineDescriptor<'a> { + /// Debug label of the pipeline. This will show up in graphics debuggers for easy identification. + pub label: Option<&'a str>, /// The layout of bind groups for this pipeline. pub layout: Option<&'a PipelineLayout>, /// The compiled vertex stage and its entry point. @@ -1141,6 +1143,8 @@ pub struct RenderPipelineDescriptor<'a> { /// Describes a compute pipeline. #[derive(Clone, Debug)] pub struct ComputePipelineDescriptor<'a> { + /// Debug label of the pipeline. This will show up in graphics debuggers for easy identification. + pub label: Option<&'a str>, /// The layout of bind groups for this pipeline. pub layout: Option<&'a PipelineLayout>, /// The compiled compute stage and its entry point.