From 91300fc5a2c833cc212374e86ec2c11a6954ec5f Mon Sep 17 00:00:00 2001 From: Emmanuel Tanguy Date: Fri, 7 Jan 2022 10:21:00 +0000 Subject: [PATCH] Add missing barrier to fix multi-core issue Adding missing barrier between clear and the first compute job Components: Vulkan VK-GL-CTS Issue: 3430 Affects: dEQP-VK.subgroups.multiple_dispatches.uniform_subgroup_size Change-Id: I1ee309e84d249132c1bf7c04207fdf00907391f1 --- .../vktSubgroupsMultipleDispatchesUniformSubgroupSizeTests.cpp | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/external/vulkancts/modules/vulkan/subgroups/vktSubgroupsMultipleDispatchesUniformSubgroupSizeTests.cpp b/external/vulkancts/modules/vulkan/subgroups/vktSubgroupsMultipleDispatchesUniformSubgroupSizeTests.cpp index 32d2643..28cef8a 100644 --- a/external/vulkancts/modules/vulkan/subgroups/vktSubgroupsMultipleDispatchesUniformSubgroupSizeTests.cpp +++ b/external/vulkancts/modules/vulkan/subgroups/vktSubgroupsMultipleDispatchesUniformSubgroupSizeTests.cpp @@ -191,6 +191,10 @@ tcu::TestStatus MultipleDispatchesUniformSubgroupSizeInstance::iterate (void) // Clears the values written on the previous iteration. vk.cmdFillBuffer(*cmdBuffer, *resultBuffer, 0u, VK_WHOLE_SIZE, 0); + const auto fillBarrier = makeBufferMemoryBarrier(VK_ACCESS_TRANSFER_WRITE_BIT, VK_ACCESS_SHADER_WRITE_BIT, *resultBuffer, 0ull, bufferSize); + vk.cmdPipelineBarrier(*cmdBuffer, VK_PIPELINE_STAGE_TRANSFER_BIT, VK_PIPELINE_STAGE_COMPUTE_SHADER_BIT, (VkDependencyFlags) 0, + 0, (const VkMemoryBarrier *) DE_NULL, 1, &fillBarrier, 0, (const VkImageMemoryBarrier *) DE_NULL); + const deUint32 zero = 0u; vk.cmdBindDescriptorSets(*cmdBuffer, VK_PIPELINE_BIND_POINT_COMPUTE, *computePipelineLayout, 0u, 1u, &descriptorSet.get(), 1, &zero); vk.cmdBindPipeline(*cmdBuffer, VK_PIPELINE_BIND_POINT_COMPUTE, *computePipeline); -- 2.7.4