From ee02cfa13019ead4c308ef55a12b692c18bd0a45 Mon Sep 17 00:00:00 2001 From: baldurk Date: Wed, 3 Jun 2020 12:16:29 +0100 Subject: [PATCH] Consistently use descriptor slots as array * Even for inline uniform block where we know there's only one slot --- renderdoc/driver/vulkan/vk_debug.cpp | 2 +- renderdoc/driver/vulkan/vk_state.cpp | 2 +- renderdoc/driver/vulkan/wrappers/vk_descriptor_funcs.cpp | 8 ++++---- 3 files changed, 6 insertions(+), 6 deletions(-) diff --git a/renderdoc/driver/vulkan/vk_debug.cpp b/renderdoc/driver/vulkan/vk_debug.cpp index 4da74e79b..a8fd2eb7c 100644 --- a/renderdoc/driver/vulkan/vk_debug.cpp +++ b/renderdoc/driver/vulkan/vk_debug.cpp @@ -2190,7 +2190,7 @@ void VulkanReplay::PatchReservedDescriptors(const VulkanStatePipeline &pipe, inlineWrite->sType = VK_STRUCTURE_TYPE_WRITE_DESCRIPTOR_SET_INLINE_UNIFORM_BLOCK_EXT; inlineWrite->pNext = NULL; inlineWrite->dataSize = bind.descriptorCount; - inlineWrite->pData = setInfo.inlineData.data() + slot->inlineOffset; + inlineWrite->pData = setInfo.inlineData.data() + slot[0].inlineOffset; write.pNext = inlineWrite; break; } diff --git a/renderdoc/driver/vulkan/vk_state.cpp b/renderdoc/driver/vulkan/vk_state.cpp index b55c3f4b0..934554679 100644 --- a/renderdoc/driver/vulkan/vk_state.cpp +++ b/renderdoc/driver/vulkan/vk_state.cpp @@ -461,7 +461,7 @@ void VulkanRenderState::BindDescriptorSet(WrappedVulkan *vk, const DescSetLayout inlineWrite->sType = VK_STRUCTURE_TYPE_WRITE_DESCRIPTOR_SET_INLINE_UNIFORM_BLOCK_EXT; inlineWrite->pNext = NULL; inlineWrite->dataSize = bind.descriptorCount; - inlineWrite->pData = setInfo.inlineData.data() + slots->inlineOffset; + inlineWrite->pData = setInfo.inlineData.data() + slots[0].inlineOffset; push.pNext = inlineWrite; push.descriptorCount = bind.descriptorCount; diff --git a/renderdoc/driver/vulkan/wrappers/vk_descriptor_funcs.cpp b/renderdoc/driver/vulkan/wrappers/vk_descriptor_funcs.cpp index 3e8547dc0..accb75bab 100644 --- a/renderdoc/driver/vulkan/wrappers/vk_descriptor_funcs.cpp +++ b/renderdoc/driver/vulkan/wrappers/vk_descriptor_funcs.cpp @@ -796,8 +796,8 @@ void WrappedVulkan::ReplayDescriptorSetCopy(VkDevice device, const VkCopyDescrip bytebuf &dstInlineData = m_DescriptorSetState[dstSetId].inlineData; bytebuf &srcInlineData = m_DescriptorSetState[srcSetId].inlineData; - memcpy(dstInlineData.data() + (*dstbind)->inlineOffset + copyDesc.dstArrayElement, - srcInlineData.data() + (*srcbind)->inlineOffset + copyDesc.srcArrayElement, + memcpy(dstInlineData.data() + (*dstbind)[0].inlineOffset + copyDesc.dstArrayElement, + srcInlineData.data() + (*srcbind)[0].inlineOffset + copyDesc.srcArrayElement, copyDesc.descriptorCount); break; @@ -1202,9 +1202,9 @@ void WrappedVulkan::vkUpdateDescriptorSets(VkDevice device, uint32_t writeCount, bytebuf &dstInlineData = dstrecord->descInfo->inlineData; bytebuf &srcInlineData = srcrecord->descInfo->inlineData; - memcpy(dstInlineData.data() + (*dstbinding)->inlineOffset + + memcpy(dstInlineData.data() + (*dstbinding)[0].inlineOffset + pDescriptorCopies[i].dstArrayElement, - srcInlineData.data() + (*srcbinding)->inlineOffset + + srcInlineData.data() + (*srcbinding)[0].inlineOffset + pDescriptorCopies[i].srcArrayElement, pDescriptorCopies[i].descriptorCount);