mirror of
https://github.com/baldurk/renderdoc.git
synced 2026-05-05 17:40:39 +00:00
Make sure to sync *all* GPU queues before processing ExecuteIndirect
This commit is contained in:
@@ -180,7 +180,8 @@ bool WrappedID3D12CommandQueue::Serialise_ExecuteCommandLists(UINT NumCommandLis
|
||||
|
||||
for(size_t c = 1; c < info.crackedLists.size(); c++)
|
||||
{
|
||||
m_pDevice->GPUSync();
|
||||
// ensure all work on all queues has finished
|
||||
m_pDevice->GPUSyncAllQueues();
|
||||
|
||||
// readback the patch buffer and perform patching
|
||||
m_ReplayList->PatchExecuteIndirect(info, uint32_t(c - 1));
|
||||
|
||||
@@ -2142,6 +2142,12 @@ void WrappedID3D12Device::GPUSync(ID3D12CommandQueue *queue, ID3D12Fence *fence)
|
||||
RDCASSERTEQUAL(hr, S_OK);
|
||||
}
|
||||
|
||||
void WrappedID3D12Device::GPUSyncAllQueues()
|
||||
{
|
||||
for(size_t i = 0; i < m_QueueFences.size(); i++)
|
||||
GPUSync(m_Queues[i], m_QueueFences[i]);
|
||||
}
|
||||
|
||||
ID3D12GraphicsCommandList *WrappedID3D12Device::GetNewList()
|
||||
{
|
||||
ID3D12GraphicsCommandList *ret = NULL;
|
||||
|
||||
@@ -443,6 +443,7 @@ public:
|
||||
void FlushLists(bool forceSync = false, ID3D12CommandQueue *queue = NULL);
|
||||
|
||||
void GPUSync(ID3D12CommandQueue *queue = NULL, ID3D12Fence *fence = NULL);
|
||||
void GPUSyncAllQueues();
|
||||
|
||||
void StartFrameCapture(void *dev, void *wnd);
|
||||
bool EndFrameCapture(void *dev, void *wnd);
|
||||
|
||||
Reference in New Issue
Block a user