From 19e3a0f319fd04c1dde803796ec272d038b634f7 Mon Sep 17 00:00:00 2001 From: Irene Knapp Date: Wed, 12 Aug 2026 19:13:32 -0700 Subject: split the texture's sampler and its image view into separaet bindings this will make it easier to change the image view dynamically as a push update, in a future CL Force-Push: yes Change-Id: If7cfab07913a5a462e16dd7fb478ed491d33d4d9 --- src/graphics/render.rs | 25 ++++++++++++++++++------- 1 file changed, 18 insertions(+), 7 deletions(-) (limited to 'src/graphics/render.rs') diff --git a/src/graphics/render.rs b/src/graphics/render.rs index 7318574..c88b1d6 100644 --- a/src/graphics/render.rs +++ b/src/graphics/render.rs @@ -472,19 +472,30 @@ fn init_descriptor_sets(device: &Device, layout: &vk::DescriptorSetLayout, .descriptor_type(vk::DescriptorType::UNIFORM_BUFFER) .buffer_info(&buffer_info_list); - let image_info = vk::DescriptorImageInfo::builder() - .image_layout(vk::ImageLayout::SHADER_READ_ONLY_OPTIMAL) - .image_view(*texture_image_view) + let sampler_image_info = vk::DescriptorImageInfo::builder() .sampler(*sampler); - let image_info_list = [image_info]; + let sampler_image_info_list = [sampler_image_info]; let sampler_write_info = vk::WriteDescriptorSet::builder() .dst_set(sets[index]) .dst_binding(1) .dst_array_element(0) - .descriptor_type(vk::DescriptorType::COMBINED_IMAGE_SAMPLER) - .image_info(&image_info_list); + .descriptor_type(vk::DescriptorType::SAMPLER) + .image_info(&sampler_image_info_list); + + let texture_image_info = vk::DescriptorImageInfo::builder() + .image_layout(vk::ImageLayout::SHADER_READ_ONLY_OPTIMAL) + .image_view(*texture_image_view); + let texture_image_info_list = [texture_image_info]; + let texture_write_info = vk::WriteDescriptorSet::builder() + .dst_set(sets[index]) + .dst_binding(2) + .dst_array_element(0) + .descriptor_type(vk::DescriptorType::SAMPLED_IMAGE) + .image_info(&texture_image_info_list); - let write_info_list = [uniform_block_write_info, sampler_write_info]; + let write_info_list = [ + uniform_block_write_info, sampler_write_info, texture_write_info + ]; let copy_info_list: [vk::CopyDescriptorSet; 0] = []; unsafe { -- cgit 1.4.1