From 432b330d2293a30ef64a4929f132378226219581 Mon Sep 17 00:00:00 2001 From: Doug McDiarmid Date: Tue, 8 Jun 2021 21:24:01 -0700 Subject: [PATCH] Skipped empty unbounded arrays when updating the Vulkan DescriptorSet --- .../Code/Source/RHI/ShaderResourceGroupPool.cpp | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/Gems/Atom/RHI/Vulkan/Code/Source/RHI/ShaderResourceGroupPool.cpp b/Gems/Atom/RHI/Vulkan/Code/Source/RHI/ShaderResourceGroupPool.cpp index 8771301bb1..289975dc56 100644 --- a/Gems/Atom/RHI/Vulkan/Code/Source/RHI/ShaderResourceGroupPool.cpp +++ b/Gems/Atom/RHI/Vulkan/Code/Source/RHI/ShaderResourceGroupPool.cpp @@ -135,6 +135,12 @@ namespace AZ { const RHI::ShaderInputBufferUnboundedArrayIndex index(groupIndex); auto bufViews = groupData.GetBufferViewUnboundedArray(index); + if (bufViews.empty()) + { + // skip empty unbounded arrays + continue; + } + uint32_t layoutIndex = m_descriptorSetLayout->GetLayoutIndexFromGroupIndex(groupIndex, DescriptorSetLayout::ResourceType::BufferViewUnboundedArray); descriptorSet.UpdateBufferViews(layoutIndex, bufViews); } @@ -144,6 +150,12 @@ namespace AZ { const RHI::ShaderInputImageUnboundedArrayIndex index(groupIndex); auto imgViews = groupData.GetImageViewUnboundedArray(index); + if (imgViews.empty()) + { + // skip empty unbounded arrays + continue; + } + uint32_t layoutIndex = m_descriptorSetLayout->GetLayoutIndexFromGroupIndex(groupIndex, DescriptorSetLayout::ResourceType::ImageViewUnboundedArray); descriptorSet.UpdateImageViews(layoutIndex, imgViews, shaderImageUnboundeArrayList[groupIndex].m_type); }