summaryrefslogtreecommitdiff
path: root/external
diff options
context:
space:
mode:
authorTatsuyuki Ishi <ishitatsuyuki@gmail.com>2023-03-20 16:51:09 +0900
committerPiotr Byszewski <piotr.byszewski@mobica.com>2023-03-31 11:03:36 +0000
commit88edcad8679adbd1ad7924be6e94cfcb5c8082fc (patch)
tree4bbdcced6bae48d8594298779ca7743bef883a74 /external
parent6b70682c57c4ffd07fdf6bcbf1aebd7cf1123629 (diff)
downloadVK-GL-CTS-88edcad8679adbd1ad7924be6e94cfcb5c8082fc.tar.gz
VK-GL-CTS-88edcad8679adbd1ad7924be6e94cfcb5c8082fc.tar.bz2
VK-GL-CTS-88edcad8679adbd1ad7924be6e94cfcb5c8082fc.zip
Fix missing dependency on sparse bindsHEADupstream/1.3.5upstreammaster
The affected tests below used a sparse binding but did not wait for the semaphore to be signaled before performing operations on the image. Fix the synchronization by waiting for the semaphore on all submissions that uses the sparse binding. Affects: dEQP-VK.image.mismatched_formats.sparse_image_read.* dEQP-VK.pipeline.*_sparse dEQP-VK.*.sparserendertarget.* Components: Vulkan VK-GL-CTS issue: 4336 Change-Id: If96817059394e368f142b224515f6546d901756b
Diffstat (limited to 'external')
-rw-r--r--external/vulkancts/modules/vulkan/image/vktImageMismatchedFormatsTests.cpp3
-rw-r--r--external/vulkancts/modules/vulkan/pipeline/vktPipelineMultisampleTests.cpp10
-rw-r--r--external/vulkancts/modules/vulkan/renderpass/vktRenderPassSparseRenderTargetTests.cpp6
3 files changed, 15 insertions, 4 deletions
diff --git a/external/vulkancts/modules/vulkan/image/vktImageMismatchedFormatsTests.cpp b/external/vulkancts/modules/vulkan/image/vktImageMismatchedFormatsTests.cpp
index b6ad82b05..a99eb51d4 100644
--- a/external/vulkancts/modules/vulkan/image/vktImageMismatchedFormatsTests.cpp
+++ b/external/vulkancts/modules/vulkan/image/vktImageMismatchedFormatsTests.cpp
@@ -443,7 +443,8 @@ tcu::TestStatus MismatchedFormatTestInstance::iterate (void)
vk.cmdDispatch(*cmdBuffer, 8, 8, 1);
endCommandBuffer(vk, *cmdBuffer);
- submitCommandsAndWait(vk, device, queue, *cmdBuffer);
+ const VkPipelineStageFlags stageBits[] = { VK_PIPELINE_STAGE_TRANSFER_BIT };
+ submitCommandsAndWait(vk, device, queue, *cmdBuffer, false, 1u, 1u, &bindSemaphore.get(), stageBits);
return tcu::TestStatus::pass("Passed");
}
diff --git a/external/vulkancts/modules/vulkan/pipeline/vktPipelineMultisampleTests.cpp b/external/vulkancts/modules/vulkan/pipeline/vktPipelineMultisampleTests.cpp
index 29fe56f17..165b75572 100644
--- a/external/vulkancts/modules/vulkan/pipeline/vktPipelineMultisampleTests.cpp
+++ b/external/vulkancts/modules/vulkan/pipeline/vktPipelineMultisampleTests.cpp
@@ -4528,7 +4528,15 @@ de::MovePtr<tcu::TextureLevel> MultisampleRenderer::render (void)
const VkQueue queue = m_context.getUniversalQueue();
const deUint32 queueFamilyIndex = m_context.getUniversalQueueFamilyIndex();
- submitCommandsAndWait(vk, vkDevice, queue, m_cmdBuffer.get());
+ if (m_backingMode == IMAGE_BACKING_MODE_SPARSE)
+ {
+ const VkPipelineStageFlags stageBits[] = { VK_PIPELINE_STAGE_TRANSFER_BIT };
+ submitCommandsAndWait(vk, vkDevice, queue, m_cmdBuffer.get(), false, 1u, 1u, &m_bindSemaphore.get(), stageBits);
+ }
+ else
+ {
+ submitCommandsAndWait(vk, vkDevice, queue, m_cmdBuffer.get());
+ }
if (m_renderType == RENDER_TYPE_RESOLVE || m_renderType == RENDER_TYPE_DEPTHSTENCIL_ONLY || m_renderType == RENDER_TYPE_UNUSED_ATTACHMENT)
{
diff --git a/external/vulkancts/modules/vulkan/renderpass/vktRenderPassSparseRenderTargetTests.cpp b/external/vulkancts/modules/vulkan/renderpass/vktRenderPassSparseRenderTargetTests.cpp
index 863d581ff..958928109 100644
--- a/external/vulkancts/modules/vulkan/renderpass/vktRenderPassSparseRenderTargetTests.cpp
+++ b/external/vulkancts/modules/vulkan/renderpass/vktRenderPassSparseRenderTargetTests.cpp
@@ -541,7 +541,8 @@ tcu::TestStatus SparseRenderTargetTestInstance::iterateInternal (void)
endCommandBuffer(vkd, *commandBuffer);
- submitCommandsAndWait(vkd, m_context.getDevice(), m_context.getUniversalQueue(), *commandBuffer);
+ const VkPipelineStageFlags stageBits[] = { VK_PIPELINE_STAGE_TRANSFER_BIT };
+ submitCommandsAndWait(vkd, m_context.getDevice(), m_context.getUniversalQueue(), *commandBuffer, false, 1u, 1u, &m_bindSemaphore.get(), stageBits);
return verify();
}
@@ -628,7 +629,8 @@ tcu::TestStatus SparseRenderTargetTestInstance::iterateInternalDynamicRendering(
endCommandBuffer(vkd, *cmdBuffer);
- submitCommandsAndWait(vkd, m_context.getDevice(), m_context.getUniversalQueue(), *cmdBuffer);
+ const VkPipelineStageFlags stageBits[] = { VK_PIPELINE_STAGE_TRANSFER_BIT };
+ submitCommandsAndWait(vkd, m_context.getDevice(), m_context.getUniversalQueue(), *cmdBuffer, false, 1u, 1u, &m_bindSemaphore.get(), stageBits);
return verify();
}