From 5f6f00d175f5ece61e945cece4ebd46e4fb0d70d Mon Sep 17 00:00:00 2001 From: baldurk Date: Tue, 10 Nov 2020 12:40:52 +0000 Subject: [PATCH] Fix vulkan vertex shader debugging populating inputs --- renderdoc/driver/vulkan/vk_shaderdebug.cpp | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/renderdoc/driver/vulkan/vk_shaderdebug.cpp b/renderdoc/driver/vulkan/vk_shaderdebug.cpp index 2dbe455af..e62a1808f 100644 --- a/renderdoc/driver/vulkan/vk_shaderdebug.cpp +++ b/renderdoc/driver/vulkan/vk_shaderdebug.cpp @@ -3788,6 +3788,8 @@ ShaderDebugTrace *VulkanReplay::DebugVertex(uint32_t eventId, uint32_t vertid, u { VkDeviceSize vertexOffset = 0; + found = true; + if(bind.perInstance) { if(bind.instanceDivisor == 0) @@ -3837,6 +3839,11 @@ ShaderDebugTrace *VulkanReplay::DebugVertex(uint32_t eventId, uint32_t vertid, u "(index %u) in instance %u.", attr.location, attr.binding, vertid, idx, instid)); + if(IsUIntFormat(attr.format) || IsSIntFormat(attr.format)) + var.type = VarType::UInt; + else + var.type = VarType::Float; + set0001(var); } else @@ -3851,6 +3858,8 @@ ShaderDebugTrace *VulkanReplay::DebugVertex(uint32_t eventId, uint32_t vertid, u // this is the only packed UINT format Vec4u decoded = ConvertFromR10G10B10A2UInt(*(uint32_t *)data.data()); + var.type = VarType::UInt; + setUintComp(var, 0, decoded.x); setUintComp(var, 1, decoded.y); setUintComp(var, 2, decoded.z); @@ -3866,6 +3875,8 @@ ShaderDebugTrace *VulkanReplay::DebugVertex(uint32_t eventId, uint32_t vertid, u { FloatVector decoded = DecodeFormattedComponents(fmt, data.data()); + var.type = VarType::Float; + setFloatComp(var, 0, decoded.x); setFloatComp(var, 1, decoded.y); setFloatComp(var, 2, decoded.z);