From ffe8f5415158cc0a905a5028f3832e9c91d38e7f Mon Sep 17 00:00:00 2001 From: baldurk Date: Thu, 23 Apr 2020 19:07:54 +0100 Subject: [PATCH] Fix size query for texel buffers --- renderdoc/driver/vulkan/vk_shaderdebug.cpp | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) diff --git a/renderdoc/driver/vulkan/vk_shaderdebug.cpp b/renderdoc/driver/vulkan/vk_shaderdebug.cpp index 180847d0b..4d89ad387 100644 --- a/renderdoc/driver/vulkan/vk_shaderdebug.cpp +++ b/renderdoc/driver/vulkan/vk_shaderdebug.cpp @@ -577,6 +577,23 @@ public: else if(viewProps.viewType == VK_IMAGE_VIEW_TYPE_CUBE_ARRAY) output.value.uv[i++] = imageProps.arrayLayers / 6; + if(buffer) + { + const VulkanCreationInfo::BufferView &bufViewProps = + m_Creation.m_BufferView[GetResID(bufferView)]; + + VkDeviceSize size = bufViewProps.size; + + if(size == VK_WHOLE_SIZE) + { + const VulkanCreationInfo::Buffer &bufProps = m_Creation.m_Buffer[bufViewProps.buffer]; + size = bufProps.size - bufViewProps.offset; + } + + output.value.uv[0] = uint32_t(size / GetByteSize(1, 1, 1, bufViewProps.format, 0)); + output.value.uv[1] = output.value.uv[2] = output.value.uv[3] = 0; + } + return true; } default: break;