From 1f69ebdfe5afe70a876e6de2d9d6351a85ed557d Mon Sep 17 00:00:00 2001 From: baldurk Date: Sat, 16 Jan 2016 15:19:58 +0100 Subject: [PATCH] Skip push constant constant blocks when adding resource usage --- renderdoc/driver/vulkan/vk_core.cpp | 15 +++++++++------ 1 file changed, 9 insertions(+), 6 deletions(-) diff --git a/renderdoc/driver/vulkan/vk_core.cpp b/renderdoc/driver/vulkan/vk_core.cpp index fc14922d0..77bca36e7 100644 --- a/renderdoc/driver/vulkan/vk_core.cpp +++ b/renderdoc/driver/vulkan/vk_core.cpp @@ -2119,8 +2119,8 @@ void WrappedVulkan::AddUsage(VulkanDrawcallTreeNode &drawNode) struct ResUsageType { ResUsageType(rdctype::array &a, ResourceUsage u) - : arr(a), usage(u) {} - rdctype::array &arr; + : bindmap(a), usage(u) {} + rdctype::array &bindmap; ResourceUsage usage; }; @@ -2132,12 +2132,15 @@ void WrappedVulkan::AddUsage(VulkanDrawcallTreeNode &drawNode) for(size_t t=0; t < ARRAY_COUNT(types); t++) { - for(int32_t i=0; i < types[t].arr.count; i++) + for(int32_t i=0; i < types[t].bindmap.count; i++) { - if(!types[t].arr[i].used) continue; + if(!types[t].bindmap[i].used) continue; - int32_t bindset = types[t].arr[i].bindset; - int32_t bind = types[t].arr[i].bind; + // ignore push constants + if(t == 2 && !sh.refl->ConstantBlocks[i].bufferBacked) continue; + + int32_t bindset = types[t].bindmap[i].bindset; + int32_t bind = types[t].bindmap[i].bind; RDCASSERT(bindset < (int32_t)descSets.size());