From 11454476454504022ada6a87be0bdaf044a275e8 Mon Sep 17 00:00:00 2001 From: baldurk Date: Mon, 12 Apr 2021 19:48:39 +0100 Subject: [PATCH] Fix descriptor write rollover to skip padding binds. Closes #2231 --- .../driver/vulkan/wrappers/vk_descriptor_funcs.cpp | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/renderdoc/driver/vulkan/wrappers/vk_descriptor_funcs.cpp b/renderdoc/driver/vulkan/wrappers/vk_descriptor_funcs.cpp index cc632345b..b6cba1f42 100644 --- a/renderdoc/driver/vulkan/wrappers/vk_descriptor_funcs.cpp +++ b/renderdoc/driver/vulkan/wrappers/vk_descriptor_funcs.cpp @@ -1243,6 +1243,13 @@ void WrappedVulkan::vkUpdateDescriptorSets(VkDevice device, uint32_t writeCount, binding++; curIdx = 0; + // skip past invalid padding descriptors to get to the next real one + while(layoutBinding->descriptorType == VK_DESCRIPTOR_TYPE_MAX_ENUM) + { + layoutBinding++; + binding++; + } + ref = GetRefType(layoutBinding->descriptorType); } @@ -1649,6 +1656,13 @@ void WrappedVulkan::vkUpdateDescriptorSetWithTemplate( binding++; curIdx = 0; + // skip past invalid padding descriptors to get to the next real one + while(layoutBinding->descriptorType == VK_DESCRIPTOR_TYPE_MAX_ENUM) + { + layoutBinding++; + binding++; + } + ref = GetRefType(layoutBinding->descriptorType); }