diff --git a/renderdoc/driver/shaders/spirv/spirv_debug_setup.cpp b/renderdoc/driver/shaders/spirv/spirv_debug_setup.cpp index c650f4f73..5aa9b00d2 100644 --- a/renderdoc/driver/shaders/spirv/spirv_debug_setup.cpp +++ b/renderdoc/driver/shaders/spirv/spirv_debug_setup.cpp @@ -938,6 +938,12 @@ ShaderDebugTrace *Debugger::BeginDebug(DebugAPIWrapper *api, const ShaderStage s StringFormat::Fmt("_%s%u", isInput ? "input" : "output", decorations[v.id].location); else sourceName = StringFormat::Fmt("_sig%u", v.id.value()); + + for(const DecorationAndParamData &d : decorations[v.id].others) + { + if(d.value == Decoration::Component) + sourceName += StringFormat::Fmt("_%u", d.component); + } } const DataType &type = dataTypes[v.type]; diff --git a/renderdoc/driver/shaders/spirv/spirv_reflect.cpp b/renderdoc/driver/shaders/spirv/spirv_reflect.cpp index 5aa8cfc6b..961ddd1ab 100644 --- a/renderdoc/driver/shaders/spirv/spirv_reflect.cpp +++ b/renderdoc/driver/shaders/spirv/spirv_reflect.cpp @@ -1204,6 +1204,12 @@ void Reflector::MakeReflection(const GraphicsAPI sourceAPI, const ShaderStage st decorations[global.id].location); else name = StringFormat::Fmt("_sig%u", global.id.value()); + + for(const DecorationAndParamData &d : decorations[global.id].others) + { + if(d.value == Decoration::Component) + name += StringFormat::Fmt("_%u", d.component); + } } const bool used = usedIds.find(global.id) != usedIds.end();