From 54f92c222ad460e86e5f5a1fa8f5b6d3ee501b53 Mon Sep 17 00:00:00 2001 From: Jake Turner Date: Wed, 23 Sep 2026 12:53:53 +0100 Subject: [PATCH] Add DXIL Debugger support for LEXICAL_BLOCK_FILE --- renderdoc/driver/shaders/dxil/dxil_debug.cpp | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/renderdoc/driver/shaders/dxil/dxil_debug.cpp b/renderdoc/driver/shaders/dxil/dxil_debug.cpp index 3ccce7acb..5194270ae 100644 --- a/renderdoc/driver/shaders/dxil/dxil_debug.cpp +++ b/renderdoc/driver/shaders/dxil/dxil_debug.cpp @@ -7979,10 +7979,11 @@ ScopedDebugData *Debugger::FindScopedDebugData(const DXIL::Metadata *md) const const DXIL::Metadata *Debugger::GetMDScope(const DXIL::Metadata *scopeMD) const { - // Iterate upwards to find DIFile, DISubprogram or DILexicalBlock scope + // Iterate upwards to find DIFile, DISubprogram, DILexicalBlock or DILexicalBlockFile scope while(scopeMD && (scopeMD->dwarf->type != DIBase::File) && (scopeMD->dwarf->type != DIBase::Subprogram) && - (scopeMD->dwarf->type != DIBase::LexicalBlock)) + (scopeMD->dwarf->type != DIBase::LexicalBlock) && + (scopeMD->dwarf->type != DIBase::LexicalBlockFile)) scopeMD = m_Program->GetDebugScopeParent(scopeMD->dwarf); return scopeMD; @@ -9738,6 +9739,10 @@ ShaderDebugTrace *Debugger::BeginDebug(DebugAPIWrapper *apiWrapper, uint32_t eve { scopeMD = dwarf->As()->scope; } + else if(dwarf->type == DIBase::LexicalBlockFile) + { + scopeMD = dwarf->As()->scope; + } else if(dwarf->type == DIBase::File) { scopeMD = NULL;