From 24764c579ad5ff036cbfad721539245761c35b43 Mon Sep 17 00:00:00 2001 From: baldurk Date: Fri, 6 Nov 2020 19:05:59 +0000 Subject: [PATCH] Continue type walking from the correct point in type hierarchy --- renderdoc/driver/shaders/spirv/spirv_debug_setup.cpp | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/renderdoc/driver/shaders/spirv/spirv_debug_setup.cpp b/renderdoc/driver/shaders/spirv/spirv_debug_setup.cpp index 8e4f29a80..edbc24010 100644 --- a/renderdoc/driver/shaders/spirv/spirv_debug_setup.cpp +++ b/renderdoc/driver/shaders/spirv/spirv_debug_setup.cpp @@ -1258,6 +1258,12 @@ ShaderVariable Debugger::MakeCompositePointer(const ShaderVariable &base, Id id, RDCASSERT(type->type == DataType::PointerType); type = &dataTypes[type->InnerType()]; + rdcspv::Id typeId = + rdcspv::Id::fromWord(uint32_t(base.value.u64v[BufferPointerTypeIdVariableSlot])); + + if(typeId != rdcspv::Id()) + type = &dataTypes[typeId]; + // first walk any aggregate types size_t i = 0;