From c67c8fcfd90eabec2462b6046ede0d7494668d77 Mon Sep 17 00:00:00 2001 From: Jake Turner Date: Thu, 6 Mar 2025 11:36:12 +0000 Subject: [PATCH] Improve DXIL debug data handling for DIDerivedType's Add cases for: DW_TAG_restrict_type DW_TAG_reference_type Parse the base type for any non-null base types of unhandled DIDerivedType's --- renderdoc/driver/shaders/dxil/dxil_debug.cpp | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/renderdoc/driver/shaders/dxil/dxil_debug.cpp b/renderdoc/driver/shaders/dxil/dxil_debug.cpp index 34e65a9a5..0bb6ed3a3 100644 --- a/renderdoc/driver/shaders/dxil/dxil_debug.cpp +++ b/renderdoc/driver/shaders/dxil/dxil_debug.cpp @@ -6736,12 +6736,16 @@ const TypeData &Debugger::AddDebugType(const DXIL::Metadata *typeMD) const DIDerivedType *derivedType = base->As(); switch(derivedType->tag) { + case DW_TAG_restrict_type: case DW_TAG_const_type: + case DW_TAG_reference_type: case DW_TAG_pointer_type: case DW_TAG_typedef: typeData = AddDebugType(derivedType->base); break; default: RDCERR("Unhandled DIDerivedType DIDerivedType Tag type %s", ToStr(derivedType->tag).c_str()); + if(derivedType->base) + typeData = AddDebugType(derivedType->base); break; } break;