From 579de425e5b2aa861531db8b7f3d12e4fc3fb2ba Mon Sep 17 00:00:00 2001 From: Dzmitry Malyshau Date: Fri, 2 Jul 2021 00:05:36 -0400 Subject: [PATCH] hal/vk: fix sampler default LOD range --- wgpu-hal/src/vulkan/device.rs | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/wgpu-hal/src/vulkan/device.rs b/wgpu-hal/src/vulkan/device.rs index 1263ca02a0..295a91bd81 100644 --- a/wgpu-hal/src/vulkan/device.rs +++ b/wgpu-hal/src/vulkan/device.rs @@ -765,6 +765,8 @@ impl crate::Device for super::Device { &self, desc: &crate::SamplerDescriptor, ) -> Result { + let lod_range = desc.lod_clamp.clone().unwrap_or(0.0..16.0); + let mut vk_info = vk::SamplerCreateInfo::builder() .flags(vk::SamplerCreateFlags::empty()) .mag_filter(conv::map_filter_mode(desc.mag_filter)) @@ -772,16 +774,16 @@ impl crate::Device for super::Device { .mipmap_mode(conv::map_mip_filter_mode(desc.mipmap_filter)) .address_mode_u(conv::map_address_mode(desc.address_modes[0])) .address_mode_v(conv::map_address_mode(desc.address_modes[1])) - .address_mode_w(conv::map_address_mode(desc.address_modes[2])); + .address_mode_w(conv::map_address_mode(desc.address_modes[2])) + .min_lod(lod_range.start) + .max_lod(lod_range.end); if let Some(fun) = desc.compare { vk_info = vk_info .compare_enable(true) .compare_op(conv::map_comparison(fun)); } - if let Some(ref range) = desc.lod_clamp { - vk_info = vk_info.min_lod(range.start).max_lod(range.end); - } + if let Some(aniso) = desc.anisotropy_clamp { if self .shared