From a120fc0871d66ada0591b51326bd241e6d09015d Mon Sep 17 00:00:00 2001 From: Jake Turner Date: Mon, 21 Jul 2025 14:43:46 +0100 Subject: [PATCH] Add DXIL callstack generation handling for DIBase::Namespace --- renderdoc/driver/shaders/dxil/dxil_debug.cpp | 12 +++++++++++- renderdoc/driver/shaders/dxil/dxil_debuginfo.cpp | 2 ++ 2 files changed, 13 insertions(+), 1 deletion(-) diff --git a/renderdoc/driver/shaders/dxil/dxil_debug.cpp b/renderdoc/driver/shaders/dxil/dxil_debug.cpp index d418aed34..85abcce8d 100644 --- a/renderdoc/driver/shaders/dxil/dxil_debug.cpp +++ b/renderdoc/driver/shaders/dxil/dxil_debug.cpp @@ -9084,7 +9084,17 @@ ShaderDebugTrace *Debugger::BeginDebug(uint32_t eventId, const DXBC::DXBCContain } } scopeMD = compType->scope; - break; + } + else if(dwarf->type == DIBase::Namespace) + { + const DINamespace *nameType = dwarf->As(); + const rdcstr *typeName = nameType->name; + if(typeName && !typeName->empty()) + { + if(!callstack.empty()) + callstack[0] = *typeName + "::" + callstack[0]; + } + scopeMD = nameType->scope; } else { diff --git a/renderdoc/driver/shaders/dxil/dxil_debuginfo.cpp b/renderdoc/driver/shaders/dxil/dxil_debuginfo.cpp index bda043b02..4e598ee74 100644 --- a/renderdoc/driver/shaders/dxil/dxil_debuginfo.cpp +++ b/renderdoc/driver/shaders/dxil/dxil_debuginfo.cpp @@ -290,6 +290,8 @@ const Metadata *Program::GetDebugScopeParent(const DIBase *d) const return d->As()->scope; else if(d->type == DIBase::CompositeType) return d->As()->file; + else if(d->type == DIBase::Namespace) + return d->As()->file; return NULL; }