From 8126e182e0f68e822a1a4ad36bb67ba8582608e5 Mon Sep 17 00:00:00 2001 From: baldurk Date: Fri, 16 Feb 2018 12:37:01 +0000 Subject: [PATCH] Don't modify renderstate unless recording partial command list --- .../driver/d3d12/d3d12_command_list_wrap.cpp | 15 +++++++++------ 1 file changed, 9 insertions(+), 6 deletions(-) diff --git a/renderdoc/driver/d3d12/d3d12_command_list_wrap.cpp b/renderdoc/driver/d3d12/d3d12_command_list_wrap.cpp index f9da68473..c4e226623 100644 --- a/renderdoc/driver/d3d12/d3d12_command_list_wrap.cpp +++ b/renderdoc/driver/d3d12/d3d12_command_list_wrap.cpp @@ -1420,13 +1420,16 @@ bool WrappedID3D12GraphicsCommandList::Serialise_SetComputeRootDescriptorTable( Unwrap(m_Cmd->RerecordCmdList(m_Cmd->m_LastCmdListID)) ->SetComputeRootDescriptorTable(RootParameterIndex, Unwrap(BaseDescriptor)); - if(m_Cmd->m_RenderState.compute.sigelems.size() < RootParameterIndex + 1) - m_Cmd->m_RenderState.compute.sigelems.resize(RootParameterIndex + 1); + if(m_Cmd->IsPartialCmdList(m_Cmd->m_LastCmdListID)) + { + if(m_Cmd->m_RenderState.compute.sigelems.size() < RootParameterIndex + 1) + m_Cmd->m_RenderState.compute.sigelems.resize(RootParameterIndex + 1); - m_Cmd->m_RenderState.compute.sigelems[RootParameterIndex] = - D3D12RenderState::SignatureElement(eRootTable, - GetResID(GetWrapped(BaseDescriptor)->nonsamp.heap), - (UINT64)GetWrapped(BaseDescriptor)->nonsamp.idx); + m_Cmd->m_RenderState.compute.sigelems[RootParameterIndex] = + D3D12RenderState::SignatureElement(eRootTable, + GetResID(GetWrapped(BaseDescriptor)->nonsamp.heap), + (UINT64)GetWrapped(BaseDescriptor)->nonsamp.idx); + } } } else