Fix buffer RAW hazards in synchronization tests
Missing barrier for buffers in semaphore tests.
Affects:
dEQP-VK.synchronization.op.single_queue.semaphore.write_*_read_*.buffer_*
Components: Vulkan
VK-GL-CTS issue: 1633
Change-Id: I0f4ffed00e28816496948d8167e08bbbed999b79
(cherry picked from commit caef94e99677677cc1aec4a775c1cb757d53f221)
diff --git a/external/vulkancts/modules/vulkan/synchronization/vktSynchronizationOperationSingleQueueTests.cpp b/external/vulkancts/modules/vulkan/synchronization/vktSynchronizationOperationSingleQueueTests.cpp
index bfd5bbb..6115d45 100644
--- a/external/vulkancts/modules/vulkan/synchronization/vktSynchronizationOperationSingleQueueTests.cpp
+++ b/external/vulkancts/modules/vulkan/synchronization/vktSynchronizationOperationSingleQueueTests.cpp
@@ -235,6 +235,12 @@
writeSync.imageLayout, readSync.imageLayout, m_resource->getImage().handle, m_resource->getImage().subresourceRange);
vk.cmdPipelineBarrier(cmdBuffers[WRITE], writeSync.stageMask, readSync.stageMask, (VkDependencyFlags)0, 0u, (const VkMemoryBarrier*)DE_NULL, 0u, (const VkBufferMemoryBarrier*)DE_NULL, 1u, &barrier);
}
+ else
+ {
+ const VkBufferMemoryBarrier barrier = makeBufferMemoryBarrier(writeSync.accessMask, readSync.accessMask,
+ m_resource->getBuffer().handle, 0, VK_WHOLE_SIZE);
+ vk.cmdPipelineBarrier(cmdBuffers[WRITE], writeSync.stageMask, readSync.stageMask, (VkDependencyFlags)0, 0u, (const VkMemoryBarrier*)DE_NULL, 1u, &barrier, 0u, (const VkImageMemoryBarrier*)DE_NULL);
+ }
endCommandBuffer(vk, cmdBuffers[WRITE]);