From defb87127cd2e7820a98c96f52d85a3db9f3e3af Mon Sep 17 00:00:00 2001 From: Jake Turner Date: Sun, 30 Nov 2025 06:13:15 +1300 Subject: [PATCH] Fix DXIL Debug crash in ExtractVal on invalid ShaderVariable 0-sized struct --- renderdoc/driver/shaders/dxil/dxil_debug.cpp | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/renderdoc/driver/shaders/dxil/dxil_debug.cpp b/renderdoc/driver/shaders/dxil/dxil_debug.cpp index 6edce4f23..11289a07c 100644 --- a/renderdoc/driver/shaders/dxil/dxil_debug.cpp +++ b/renderdoc/driver/shaders/dxil/dxil_debug.cpp @@ -5229,8 +5229,16 @@ bool ThreadState::ExecuteInstruction(const rdcarray &workgroup) ShaderVariable sourceData; if(srcVal.type == VarType::Struct) { - sourceData = srcVal.members[idx]; - idx = 0; + if(idx < srcVal.members.size()) + { + sourceData = srcVal.members[idx]; + idx = 0; + } + else + { + RDCERR("Invalid struct variable Id %u idx %u Members %d", src, idx, srcVal.members.count()); + break; + } } else {