From edb36105306f166d41789c383df5ee66d74f1287 Mon Sep 17 00:00:00 2001 From: Dzmitry Malyshau Date: Thu, 11 Jun 2020 20:59:46 -0400 Subject: [PATCH] API update for RODS2 --- Cargo.toml | 6 +++--- examples/cube/main.rs | 5 ++++- examples/mipmap/main.rs | 10 ++++++++-- examples/shadow/main.rs | 5 ++++- examples/skybox/main.rs | 5 ++++- examples/texture-arrays/main.rs | 6 +++--- src/backend/direct.rs | 28 ++++++++++++++++------------ src/backend/web.rs | 7 ++++--- src/lib.rs | 5 ++++- 9 files changed, 50 insertions(+), 27 deletions(-) diff --git a/Cargo.toml b/Cargo.toml index be19cc4106..fb42a9435c 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -28,20 +28,20 @@ vulkan = ["wgc/gfx-backend-vulkan"] package = "wgpu-core" version = "0.5" git = "https://github.com/gfx-rs/wgpu" -rev = "b0b99d89b71894cf01d8c938aae87b2348edeb5b" +rev = "ad34c37127c8361bc2b07e8775816b2bbf8c0a73" features = ["raw-window-handle"] [dependencies.wgt] package = "wgpu-types" version = "0.5" git = "https://github.com/gfx-rs/wgpu" -rev = "b0b99d89b71894cf01d8c938aae87b2348edeb5b" +rev = "ad34c37127c8361bc2b07e8775816b2bbf8c0a73" [dependencies] arrayvec = "0.5" futures = "0.3" smallvec = "1" -typed-arena = "2.0.1" +typed-arena = "2" raw-window-handle = "0.3" parking_lot = "0.10" diff --git a/examples/cube/main.rs b/examples/cube/main.rs index b66bb0f0a5..aa7af10a53 100644 --- a/examples/cube/main.rs +++ b/examples/cube/main.rs @@ -224,7 +224,10 @@ impl framework::Example for Example { }, wgpu::Binding { binding: 1, - resource: wgpu::BindingResource::TextureView(&texture_view), + resource: wgpu::BindingResource::TextureView { + view: &texture_view, + read_only_depth_stencil: false, + }, }, wgpu::Binding { binding: 2, diff --git a/examples/mipmap/main.rs b/examples/mipmap/main.rs index 071be587f3..ab6eadc8f6 100644 --- a/examples/mipmap/main.rs +++ b/examples/mipmap/main.rs @@ -180,7 +180,10 @@ impl Example { bindings: &[ wgpu::Binding { binding: 0, - resource: wgpu::BindingResource::TextureView(&views[target_mip - 1]), + resource: wgpu::BindingResource::TextureView { + view: &views[target_mip - 1], + read_only_depth_stencil: false, + }, }, wgpu::Binding { binding: 1, @@ -328,7 +331,10 @@ impl framework::Example for Example { }, wgpu::Binding { binding: 1, - resource: wgpu::BindingResource::TextureView(&texture_view), + resource: wgpu::BindingResource::TextureView { + view: &texture_view, + read_only_depth_stencil: false, + }, }, wgpu::Binding { binding: 2, diff --git a/examples/shadow/main.rs b/examples/shadow/main.rs index f4ae65f20c..18aaee1d2f 100644 --- a/examples/shadow/main.rs +++ b/examples/shadow/main.rs @@ -575,7 +575,10 @@ impl framework::Example for Example { }, wgpu::Binding { binding: 2, - resource: wgpu::BindingResource::TextureView(&shadow_view), + resource: wgpu::BindingResource::TextureView { + view: &shadow_view, + read_only_depth_stencil: false, + }, }, wgpu::Binding { binding: 3, diff --git a/examples/skybox/main.rs b/examples/skybox/main.rs index acbf7250bd..791c483dbe 100644 --- a/examples/skybox/main.rs +++ b/examples/skybox/main.rs @@ -222,7 +222,10 @@ impl framework::Example for Skybox { }, wgpu::Binding { binding: 1, - resource: wgpu::BindingResource::TextureView(&texture_view), + resource: wgpu::BindingResource::TextureView { + view: &texture_view, + read_only_depth_stencil: false, + }, }, wgpu::Binding { binding: 2, diff --git a/examples/texture-arrays/main.rs b/examples/texture-arrays/main.rs index 78a64a947c..f33adc1fa2 100644 --- a/examples/texture-arrays/main.rs +++ b/examples/texture-arrays/main.rs @@ -71,7 +71,7 @@ struct Example { impl framework::Example for Example { fn needed_extensions() -> (wgpu::Extensions, wgpu::UnsafeExtensions) { ( - wgpu::Extensions::TEXTURE_BINDING_ARRAY, + wgpu::Extensions::SAMPLED_TEXTURE_BINDING_ARRAY, wgpu::UnsafeExtensions::disallow(), ) } @@ -83,8 +83,8 @@ impl framework::Example for Example { let device_extensions = device.extensions(); assert!( - device_extensions.contains(wgpu::Extensions::TEXTURE_BINDING_ARRAY), - "Graphics Device does not support TEXTURE_BINDING_ARRAY extension" + device_extensions.contains(wgpu::Extensions::SAMPLED_TEXTURE_BINDING_ARRAY), + "Graphics Device does not support SAMPLED_TEXTURE_BINDING_ARRAY extension" ); let vertex_size = std::mem::size_of::(); diff --git a/src/backend/direct.rs b/src/backend/direct.rs index 079bfd626c..35c3bc4d29 100644 --- a/src/backend/direct.rs +++ b/src/backend/direct.rs @@ -405,7 +405,7 @@ impl crate::Context for Context { ) -> Self::BindGroupId { use wgc::binding_model as bm; - let texture_view_arena: Arena = Arena::new(); + let texture_view_arena: Arena = Arena::new(); let bindings = desc .bindings .iter() @@ -414,22 +414,26 @@ impl crate::Context for Context { resource: match binding.resource { BindingResource::Buffer(ref buffer_slice) => { bm::BindingResource::Buffer(bm::BufferBinding { - buffer: buffer_slice.buffer.id, + buffer_id: buffer_slice.buffer.id, offset: buffer_slice.offset, size: buffer_slice.size, }) } - BindingResource::Sampler(ref sampler) => { - bm::BindingResource::Sampler(sampler.id) - } - BindingResource::TextureView(ref texture_view) => { - bm::BindingResource::TextureView(texture_view.id) - } + BindingResource::Sampler(sampler) => bm::BindingResource::Sampler(sampler.id), + BindingResource::TextureView { + view, + read_only_depth_stencil, + } => bm::BindingResource::TextureView(bm::TextureBinding { + view_id: view.id, + read_only_depth_stencil, + }), BindingResource::TextureViewArray(texture_view_array) => { - bm::BindingResource::TextureViewArray( - texture_view_arena - .alloc_extend(texture_view_array.iter().map(|view| view.id)), - ) + bm::BindingResource::TextureViewArray(texture_view_arena.alloc_extend( + texture_view_array.iter().map(|view| bm::TextureBinding { + view_id: view.id, + read_only_depth_stencil: false, //TODO + }), + )) } }, }) diff --git a/src/backend/web.rs b/src/backend/web.rs index d4a0378dc2..64a75c7215 100644 --- a/src/backend/web.rs +++ b/src/backend/web.rs @@ -859,9 +859,10 @@ impl crate::Context for Context { JsValue::from(mapped_buffer_binding.clone()) } BindingResource::Sampler(ref sampler) => JsValue::from(sampler.id.0.clone()), - BindingResource::TextureView(ref texture_view) => { - JsValue::from(texture_view.id.0.clone()) - } + BindingResource::TextureView { + view: ref texture_view, + read_only_depth_stencil: _, + } => JsValue::from(texture_view.id.0.clone()), BindingResource::TextureViewArray(..) => { panic!("Web backend does not support TEXTURE_BINDING_ARRAY extension") } diff --git a/src/lib.rs b/src/lib.rs index 8623c8b26d..f32f238ee0 100644 --- a/src/lib.rs +++ b/src/lib.rs @@ -697,7 +697,10 @@ pub struct Queue { pub enum BindingResource<'a> { Buffer(BufferSlice<'a>), Sampler(&'a Sampler), - TextureView(&'a TextureView), + TextureView { + view: &'a TextureView, + read_only_depth_stencil: bool, + }, TextureViewArray(&'a [TextureView]), }