From 327a9fdced3ac5643fdc28c5c0d56444abe83e7c Mon Sep 17 00:00:00 2001 From: baldurk Date: Mon, 8 Feb 2021 13:58:51 +0000 Subject: [PATCH] Don't assume 4-byte stride for typed buffer loads/stores in DXBC * Newer D3D versions support different strides including 2-byte, so we fetch the stride from the view format. --- renderdoc/driver/shaders/dxbc/dxbc_debug.cpp | 3 +++ 1 file changed, 3 insertions(+) diff --git a/renderdoc/driver/shaders/dxbc/dxbc_debug.cpp b/renderdoc/driver/shaders/dxbc/dxbc_debug.cpp index 08f63fdfd..f6ca877a8 100644 --- a/renderdoc/driver/shaders/dxbc/dxbc_debug.cpp +++ b/renderdoc/driver/shaders/dxbc/dxbc_debug.cpp @@ -3320,6 +3320,9 @@ void ThreadState::StepNext(ShaderDebugState *state, DebugAPIWrapper *apiWrapper, numElems = uavIter->second.numElements; fmt = uavIter->second.format; } + + if(op.operation == OPCODE_LD_UAV_TYPED || op.operation == OPCODE_STORE_UAV_TYPED) + stride = fmt.Stride(); } // indexing for raw views is in bytes, but firstElement/numElements is in format-sized