From 80cce82823616b879daa7d05bc5e365bc57fd446 Mon Sep 17 00:00:00 2001 From: qwmnerbvqwmn Date: Fri, 16 Jan 2026 05:21:40 +0800 Subject: [PATCH] Fix a hang when debugging HLSL compute shaders with enum types --- renderdoc/driver/shaders/dxil/dxil_debug.cpp | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) diff --git a/renderdoc/driver/shaders/dxil/dxil_debug.cpp b/renderdoc/driver/shaders/dxil/dxil_debug.cpp index 0e0214304..afe3a6334 100644 --- a/renderdoc/driver/shaders/dxil/dxil_debug.cpp +++ b/renderdoc/driver/shaders/dxil/dxil_debug.cpp @@ -8214,6 +8214,23 @@ const TypeData &Debugger::AddDebugType(const DXIL::Metadata *typeMD) typeData.baseType = compositeType->base; break; } + case DW_TAG_enumeration_type: + { + typeData.type = VarType::Enum; + typeData.sizeInBytes = (uint32_t)(compositeType->sizeInBits / 8); + typeData.alignInBytes = (uint32_t)(compositeType->alignInBits / 8); + if(compositeType->name) + typeData.name = *compositeType->name; + else + typeData.name = StringFormat::Fmt("__anon_enum%u", compositeType->line); + + if(compositeType->base) + { + AddDebugType(compositeType->base); + typeData.baseType = compositeType->base; + } + break; + } default: RDCERR("Unhandled DICompositeType tag %s", ToStr(compositeType->tag).c_str()); break;