From b6925a64fb8659872a531c10a37d0c0155e158ce Mon Sep 17 00:00:00 2001 From: Jake Turner Date: Wed, 20 May 2026 09:44:00 +0100 Subject: [PATCH] PostDraw callback change the commands signature used in ExecuteIndirect The same scenario as HandlePrecallback() modifying the command signature --- renderdoc/driver/d3d12/d3d12_command_list_wrap.cpp | 3 +++ 1 file changed, 3 insertions(+) diff --git a/renderdoc/driver/d3d12/d3d12_command_list_wrap.cpp b/renderdoc/driver/d3d12/d3d12_command_list_wrap.cpp index 277363f22..e1e925f46 100644 --- a/renderdoc/driver/d3d12/d3d12_command_list_wrap.cpp +++ b/renderdoc/driver/d3d12/d3d12_command_list_wrap.cpp @@ -4454,6 +4454,9 @@ bool WrappedID3D12GraphicsCommandList::Serialise_ExecuteIndirect( { if(eventId && m_Cmd->m_ActionCallback->PostDraw(eventId, list)) { + // Allow the callback to recreate the command signature i.e. to match the root signature + pCommandSignature = m_Cmd->m_IndirectData.commandSig; + Unwrap(list)->ExecuteIndirect(Unwrap(pCommandSignature), 1, argBuffer, argOffset, NULL, 0); m_Cmd->m_ActionCallback->PostRedraw(eventId, list);