From aeb7a858953cc96cb35676305d04de47621180a2 Mon Sep 17 00:00:00 2001 From: Alex Smith Date: Tue, 12 Sep 2017 16:16:26 +0100 Subject: [PATCH] Fix tracking of dynamic offsets when binding multiple descriptor sets Before this, when binding multiple sets that use dynamic offsets, the wrong offsets would be stored for all sets other than the first. This caused the wrong offsets to be used when replaying individual draws. --- renderdoc/driver/vulkan/wrappers/vk_cmd_funcs.cpp | 1 + 1 file changed, 1 insertion(+) diff --git a/renderdoc/driver/vulkan/wrappers/vk_cmd_funcs.cpp b/renderdoc/driver/vulkan/wrappers/vk_cmd_funcs.cpp index 3ed6fa041..e2f1f9995 100644 --- a/renderdoc/driver/vulkan/wrappers/vk_cmd_funcs.cpp +++ b/renderdoc/driver/vulkan/wrappers/vk_cmd_funcs.cpp @@ -1333,6 +1333,7 @@ bool WrappedVulkan::Serialise_vkCmdBindDescriptorSets( descsets[first + i].descSet = descriptorIDs[i]; uint32_t dynCount = m_CreationInfo.m_DescSetLayout[descSetLayouts[first + i]].dynamicCount; descsets[first + i].offsets.assign(offsIter, offsIter + dynCount); + offsIter += dynCount; dynConsumed += dynCount; RDCASSERT(dynConsumed <= offsCount); }