From ac5162d44c3fa85912f9ac8af64b3f7028f13160 Mon Sep 17 00:00:00 2001 From: Jake Turner Date: Thu, 3 Apr 2025 14:57:11 +0100 Subject: [PATCH] Fix DXIL Debugger WaveActiveOp ShaderVariable UI result The result variable name was being set to the input variable name The simulation was correct. --- renderdoc/driver/shaders/dxil/dxil_debug.cpp | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/renderdoc/driver/shaders/dxil/dxil_debug.cpp b/renderdoc/driver/shaders/dxil/dxil_debug.cpp index b1aefd454..25e004e4d 100644 --- a/renderdoc/driver/shaders/dxil/dxil_debug.cpp +++ b/renderdoc/driver/shaders/dxil/dxil_debug.cpp @@ -3644,7 +3644,7 @@ bool ThreadState::ExecuteInstruction(DebugAPIWrapper *apiWrapper, WaveOpCode waveOpCode = (WaveOpCode)arg.value.u32v[0]; RDCASSERT(GetShaderVariable(inst.args[3], opCode, dxOpCode, arg)); - bool isUnsigned = (arg.value.u32v[0] != 0); + bool isUnsigned = (arg.value.u32v[0] != (uint32_t)SignedOpKind::Signed); // determine active lane indices in our subgroup rdcarray activeLanes; @@ -3710,7 +3710,10 @@ bool ThreadState::ExecuteInstruction(DebugAPIWrapper *apiWrapper, } } + // Copy the whole variable to ensure we get the correct type information + rdcstr name = result.name; result = accum; + result.name = name; break; }