force flush of command lists & GPU sync when doing non-partial replay

* In some cases there was an unpredictable crash when starting a replay
  loop, doing a full frame replay immediately after a previous replay.
  There were no debug messages, and the debug layer fixed it - as did
  enabling single flush validate. It seems to me some timing/overloading
  issue, and doing this sync should be relatively harmless so we use
  this to avoid the crash.
This commit is contained in:
baldurk
2018-01-18 14:50:57 +00:00
parent 2d7c193e34
commit c364b102bc
+2
View File
@@ -2650,6 +2650,8 @@ void WrappedID3D12Device::ReplayLog(uint32_t startEventID, uint32_t endEventID,
// signalled or waited. So instead we just signal a dummy fence each new 'frame'
for(size_t i = 0; i < m_Queues.size(); i++)
m_Queues[i]->Signal(m_QueueFences[i], m_GPUSyncCounter);
FlushLists(true);
}
if(!partial)