Skip to content

Commit 6951b5b

Browse files
committed
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.
1 parent ef173fb commit 6951b5b

File tree

1 file changed

+2
-0
lines changed

1 file changed

+2
-0
lines changed

renderdoc/driver/d3d12/d3d12_device.cpp

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2493,6 +2493,8 @@ void WrappedID3D12Device::ReplayLog(uint32_t startEventID, uint32_t endEventID,
24932493
// signalled or waited. So instead we just signal a dummy fence each new 'frame'
24942494
for(size_t i = 0; i < m_Queues.size(); i++)
24952495
m_Queues[i]->Signal(m_QueueFences[i], m_GPUSyncCounter);
2496+
2497+
FlushLists(true);
24962498
}
24972499

24982500
D3D12ChunkType header = (D3D12ChunkType)m_pSerialiser->PushContext(NULL, NULL, 1, false);

0 commit comments

Comments
 (0)