From 504ebe5a1aa5fbe202092ed243b202b0fa6a4aa4 Mon Sep 17 00:00:00 2001 From: baldurk Date: Tue, 10 Jul 2018 14:48:32 +0100 Subject: [PATCH] Fill in compute shader inputs (thread/group ID variants). Refs #1038 --- renderdoc/driver/d3d11/d3d11_shaderdebug.cpp | 24 ++++++++++++++++++-- 1 file changed, 22 insertions(+), 2 deletions(-) diff --git a/renderdoc/driver/d3d11/d3d11_shaderdebug.cpp b/renderdoc/driver/d3d11/d3d11_shaderdebug.cpp index 9b1353ac4..7f5981fcd 100644 --- a/renderdoc/driver/d3d11/d3d11_shaderdebug.cpp +++ b/renderdoc/driver/d3d11/d3d11_shaderdebug.cpp @@ -2402,9 +2402,29 @@ ShaderDebugTrace D3D11Replay::DebugThread(uint32_t eventId, const uint32_t group switch(decl.operand.type) { case TYPE_INPUT_THREAD_GROUP_ID: + memcpy(v.value.uv, initialState.semantics.GroupID, sizeof(uint32_t) * 3); + v.columns = 3; + break; case TYPE_INPUT_THREAD_ID_IN_GROUP: - case TYPE_INPUT_THREAD_ID: v.columns = 3; break; - case TYPE_INPUT_THREAD_ID_IN_GROUP_FLATTENED: v.columns = 1; break; + memcpy(v.value.uv, initialState.semantics.ThreadID, sizeof(uint32_t) * 3); + v.columns = 3; + break; + case TYPE_INPUT_THREAD_ID: + v.value.u.x = initialState.semantics.GroupID[0] * dxbc->DispatchThreadsDimension[0] + + initialState.semantics.ThreadID[0]; + v.value.u.y = initialState.semantics.GroupID[1] * dxbc->DispatchThreadsDimension[1] + + initialState.semantics.ThreadID[1]; + v.value.u.z = initialState.semantics.GroupID[2] * dxbc->DispatchThreadsDimension[2] + + initialState.semantics.ThreadID[2]; + v.columns = 3; + break; + case TYPE_INPUT_THREAD_ID_IN_GROUP_FLATTENED: + v.value.u.x = initialState.semantics.ThreadID[2] * dxbc->DispatchThreadsDimension[0] * + dxbc->DispatchThreadsDimension[1] + + initialState.semantics.ThreadID[1] * dxbc->DispatchThreadsDimension[0] + + initialState.semantics.ThreadID[0]; + v.columns = 1; + break; default: v.columns = 4; break; }