From 2b0e143509d0c6ac81ecc605ac3eca4a5ff927dd Mon Sep 17 00:00:00 2001 From: Jake Turner Date: Mon, 5 Jan 2026 12:59:05 +1300 Subject: [PATCH] Change DXIL ShaderVarible construction for cbuffer variables Fixes a crash trying to add a watch for these variables --- renderdoc/driver/shaders/dxil/dxil_debug.cpp | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/renderdoc/driver/shaders/dxil/dxil_debug.cpp b/renderdoc/driver/shaders/dxil/dxil_debug.cpp index 9c58ac71f..55afbed95 100644 --- a/renderdoc/driver/shaders/dxil/dxil_debug.cpp +++ b/renderdoc/driver/shaders/dxil/dxil_debug.cpp @@ -2619,14 +2619,16 @@ bool ThreadState::ExecuteInstruction(const rdcarray &workgroup) const size_t structSize = AlignUp16(resRef->resourceBase.cbufferData.sizeInBytes); ShaderVariable cbufferVar; cbufferVar.members.resize(structSize / 16); - cbufferVar.type = VarType::Struct; + cbufferVar.rows = 0; + cbufferVar.columns = 0; + cbufferVar.type = VarType::Unknown; cbufferVar.name = resultSSAName; for(size_t i = 0; i < cbufferVar.members.size(); ++i) { ShaderVariable &var = cbufferVar.members[i]; var.type = VarType::UInt; var.columns = 4; - var.name = StringFormat::Fmt("%s[%u]", resultSSAName.c_str(), i); + var.name = StringFormat::Fmt("[%u]", i); var.rows = 1; // Initialise to 0xCC to aid determinism and show unset values memset(&var.value, 0XCC, sizeof(var.value));