From d7fe790f72f4708c26b0894907c9581d511c868b Mon Sep 17 00:00:00 2001 From: baldurk Date: Fri, 21 Oct 2016 20:50:42 +0200 Subject: [PATCH] Add a UAV barrier at the end of ReplayLog() to ensure UAV work is done --- renderdoc/driver/d3d12/d3d12_device.cpp | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/renderdoc/driver/d3d12/d3d12_device.cpp b/renderdoc/driver/d3d12/d3d12_device.cpp index 10bb65b26..090a3e353 100644 --- a/renderdoc/driver/d3d12/d3d12_device.cpp +++ b/renderdoc/driver/d3d12/d3d12_device.cpp @@ -2183,4 +2183,15 @@ void WrappedID3D12Device::ReplayLog(uint32_t startEventID, uint32_t endEventID, FlushLists(true); #endif } + + // ensure all UAV writes have finished before subsequent work + ID3D12GraphicsCommandList *list = GetNewList(); + + D3D12_RESOURCE_BARRIER uavBarrier = {}; + uavBarrier.Type = D3D12_RESOURCE_BARRIER_TYPE_UAV; + list->ResourceBarrier(1, &uavBarrier); + + list->Close(); + + ExecuteLists(); }