diff --git a/wgpu/Cargo.toml b/wgpu/Cargo.toml index b0a575bc48..109c92c728 100644 --- a/wgpu/Cargo.toml +++ b/wgpu/Cargo.toml @@ -27,14 +27,14 @@ vulkan-portability = ["wgc/gfx-backend-vulkan"] package = "wgpu-core" version = "0.5" git = "https://github.com/gfx-rs/wgpu" -rev = "5bd24d50852eb9932535eb258c216a5e4a79808f" +rev = "9929b8719ff9c15a96adbf279fcbf3e943f23c78" features = ["raw-window-handle"] [dependencies.wgt] package = "wgpu-types" version = "0.5" git = "https://github.com/gfx-rs/wgpu" -rev = "5bd24d50852eb9932535eb258c216a5e4a79808f" +rev = "9929b8719ff9c15a96adbf279fcbf3e943f23c78" [dependencies] arrayvec = "0.5" diff --git a/wgpu/examples/mipmap/main.rs b/wgpu/examples/mipmap/main.rs index ea44116c79..1d2d8b6c5b 100644 --- a/wgpu/examples/mipmap/main.rs +++ b/wgpu/examples/mipmap/main.rs @@ -2,7 +2,7 @@ mod framework; use bytemuck::{Pod, Zeroable}; -use std::borrow::Cow::Borrowed; +use std::{borrow::Cow::Borrowed, num::NonZeroU32}; const TEXTURE_FORMAT: wgpu::TextureFormat = wgpu::TextureFormat::Rgba8UnormSrgb; @@ -159,9 +159,9 @@ impl Example { dimension: wgpu::TextureViewDimension::D2, aspect: wgpu::TextureAspect::All, base_mip_level: mip, - level_count: 1, + level_count: NonZeroU32::new(1), base_array_layer: 0, - array_layer_count: 1, + array_layer_count: None, }) }) .collect::>(); diff --git a/wgpu/examples/shadow/main.rs b/wgpu/examples/shadow/main.rs index fe46b15a36..6cbdba8422 100644 --- a/wgpu/examples/shadow/main.rs +++ b/wgpu/examples/shadow/main.rs @@ -1,4 +1,4 @@ -use std::{borrow::Cow::Borrowed, iter, mem, ops::Range, rc::Rc}; +use std::{borrow::Cow::Borrowed, iter, mem, num::NonZeroU32, ops::Range, rc::Rc}; #[path = "../framework.rs"] mod framework; @@ -380,9 +380,9 @@ impl framework::Example for Example { dimension: wgpu::TextureViewDimension::D2, aspect: wgpu::TextureAspect::All, base_mip_level: 0, - level_count: 1, + level_count: None, base_array_layer: i as u32, - array_layer_count: 1, + array_layer_count: NonZeroU32::new(1), })) }) .collect::>(); diff --git a/wgpu/examples/skybox/main.rs b/wgpu/examples/skybox/main.rs index 6abc745d75..5554883f74 100644 --- a/wgpu/examples/skybox/main.rs +++ b/wgpu/examples/skybox/main.rs @@ -208,9 +208,9 @@ impl framework::Example for Skybox { dimension: wgpu::TextureViewDimension::Cube, aspect: wgpu::TextureAspect::default(), base_mip_level: 0, - level_count: 1, + level_count: None, base_array_layer: 0, - array_layer_count: 6, + array_layer_count: None, }); let bind_group = device.create_bind_group(&wgpu::BindGroupDescriptor { layout: &bind_group_layout, diff --git a/wgpu/src/backend/web.rs b/wgpu/src/backend/web.rs index ed53b9ff9d..bf869180c8 100644 --- a/wgpu/src/backend/web.rs +++ b/wgpu/src/backend/web.rs @@ -1195,13 +1195,17 @@ impl crate::Context for Context { Sendable(match desc { Some(d) => { let mut mapped_desc = web_sys::GpuTextureViewDescriptor::new(); - mapped_desc.array_layer_count(d.array_layer_count); - mapped_desc.aspect(map_texture_aspect(d.aspect)); - mapped_desc.base_array_layer(d.base_array_layer); - mapped_desc.base_mip_level(d.base_mip_level); mapped_desc.dimension(map_texture_view_dimension(d.dimension)); mapped_desc.format(map_texture_format(d.format)); - mapped_desc.mip_level_count(d.level_count); + mapped_desc.aspect(map_texture_aspect(d.aspect)); + mapped_desc.base_array_layer(d.base_array_layer); + if let Some(count) = d.array_layer_count { + mapped_desc.array_layer_count(count.get()); + } + mapped_desc.base_mip_level(d.base_mip_level); + if let Some(count) = d.level_count { + mapped_desc.mip_level_count(count.get()); + } // TODO: label texture.0.create_view_with_descriptor(&mapped_desc) }