From 5f9d5f1053b7ed8d0f4b4cd65f203c96679ea4ac Mon Sep 17 00:00:00 2001 From: Philip Rebohle Date: Fri, 10 Sep 2021 02:50:52 +0200 Subject: [PATCH] [dxvk] Fix IgnoreWriteAfterWritw check for indirect dispatches --- src/dxvk/dxvk_context.cpp | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/src/dxvk/dxvk_context.cpp b/src/dxvk/dxvk_context.cpp index 78897fe2..e21bc17c 100644 --- a/src/dxvk/dxvk_context.cpp +++ b/src/dxvk/dxvk_context.cpp @@ -4937,8 +4937,11 @@ namespace dxvk { continue; // Skip write-after-write barriers if explicitly requested + VkPipelineStageFlags stageMask = VK_PIPELINE_STAGE_COMPUTE_SHADER_BIT + | VK_PIPELINE_STAGE_DRAW_INDIRECT_BIT; + if ((m_barrierControl.test(DxvkBarrierControl::IgnoreWriteAfterWrite)) - && (m_execBarriers.getSrcStages() == VK_PIPELINE_STAGE_COMPUTE_SHADER_BIT) + && (!(m_execBarriers.getSrcStages() & ~stageMask)) && ((srcAccess | dstAccess) == DxvkAccess::Write)) continue;