From 2ae8fb960257218f8a11ffec0ae6d5a44a559a71 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 f56a0e536..320c35f7e 100644 --- a/renderdoc/driver/vulkan/wrappers/vk_cmd_funcs.cpp +++ b/renderdoc/driver/vulkan/wrappers/vk_cmd_funcs.cpp @@ -1334,6 +1334,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); }