diff --git a/renderdoc/driver/d3d12/d3d12_device.cpp b/renderdoc/driver/d3d12/d3d12_device.cpp index 2330d8d05..8a13eca09 100644 --- a/renderdoc/driver/d3d12/d3d12_device.cpp +++ b/renderdoc/driver/d3d12/d3d12_device.cpp @@ -872,11 +872,17 @@ bool WrappedID3D12Device::Serialise_BeginCaptureFrame(bool applyInitialState) GetResourceManager()->SerialiseResourceStates(barriers, m_ResourceStates); } - if(applyInitialState) + if(applyInitialState && !barriers.empty()) { // apply initial resource states - for(size_t i = 0; i < barriers.size(); i++) - barriers[i].Transition.pResource = Unwrap(barriers[i].Transition.pResource); + ID3D12GraphicsCommandList *list = GetNewList(); + + list->ResourceBarrier((UINT)barriers.size(), &barriers[0]); + + list->Close(); + + ExecuteLists(); + FlushLists(); } return true;