From 0f0da067374366d5f6c13fe3c3a48f01f2111228 Mon Sep 17 00:00:00 2001 From: Jake Turner Date: Thu, 18 Sep 2025 15:21:16 +0100 Subject: [PATCH] Fix DXIL Debugger Constants display of cbuffer with packedoffset The simulation had the correct values cbuffer packed_consts : register(b1) { float col1z : packoffset(c1.z); // 4+2 float col2w : packoffset(c2.w); // 8+3 }; --- renderdoc/driver/d3d12/d3d12_dxil_debug.cpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/renderdoc/driver/d3d12/d3d12_dxil_debug.cpp b/renderdoc/driver/d3d12/d3d12_dxil_debug.cpp index 01ab1d78a..4f33760e6 100644 --- a/renderdoc/driver/d3d12/d3d12_dxil_debug.cpp +++ b/renderdoc/driver/d3d12/d3d12_dxil_debug.cpp @@ -238,14 +238,14 @@ static void FlattenSingleVariable(const rdcstr &cbufferName, uint32_t byteOffset { outvars[outIdx + reg].rows = 1; outvars[outIdx + reg].type = v.type; - outvars[outIdx + reg].columns = v.columns; + outvars[outIdx + reg].columns = v.columns + (uint8_t)outComp; outvars[outIdx + reg].flags = v.flags; } if(v.RowMajor()) { for(size_t ri = 0; ri < v.rows; ri++) - memcpy(&outvars[outIdx + ri].value.u32v[0], &v.value.u32v[ri * v.columns], + memcpy(&outvars[outIdx + ri].value.u32v[outComp], &v.value.u32v[ri * v.columns], sizeof(uint32_t) * v.columns); } else