From 6488d9b902696b9f79308fb93b8654f1a6607d5e Mon Sep 17 00:00:00 2001 From: =?utf8?q?Marcin=20Ka=C5=84toch?= Date: Sun, 12 Dec 2021 23:39:11 +0100 Subject: [PATCH] Fix for issues in dynamic rendering tests Missing barrier before begin rendering to transition image from VK_IMAGE_LAYOUT_UNDEFINED to VK_IMAGE_LAYOUT_COLOR_ATTACHMENT_OPTIMAL Components: Vulkan VK-GL-CTS issue: 3383 Affects: dEQP-VK.dynamic_rendering.suballocation.sparserendertarget* Change-Id: Ied286e31282d56e8221e327e3d02a5d9333cf499 --- .../vktRenderPassSparseRenderTargetTests.cpp | 28 ++++++++++++++++++++++ 1 file changed, 28 insertions(+) diff --git a/external/vulkancts/modules/vulkan/renderpass/vktRenderPassSparseRenderTargetTests.cpp b/external/vulkancts/modules/vulkan/renderpass/vktRenderPassSparseRenderTargetTests.cpp index 7bc2e59..7c86927 100644 --- a/external/vulkancts/modules/vulkan/renderpass/vktRenderPassSparseRenderTargetTests.cpp +++ b/external/vulkancts/modules/vulkan/renderpass/vktRenderPassSparseRenderTargetTests.cpp @@ -485,6 +485,34 @@ tcu::TestStatus SparseRenderTargetTestInstance::iterateInternal (void) VkRect2D renderArea = makeRect2D(m_width, m_height); if (m_renderingType == RENDERING_TYPE_DYNAMIC_RENDERING) { + std::vector barriers; + + const VkImageMemoryBarrier barrier = + { + VK_STRUCTURE_TYPE_IMAGE_MEMORY_BARRIER, + DE_NULL, + + 0, + VK_ACCESS_COLOR_ATTACHMENT_WRITE_BIT, + + VK_IMAGE_LAYOUT_UNDEFINED, + VK_IMAGE_LAYOUT_COLOR_ATTACHMENT_OPTIMAL, + + VK_QUEUE_FAMILY_IGNORED, + VK_QUEUE_FAMILY_IGNORED, + + *m_dstImage, + { + VK_IMAGE_ASPECT_COLOR_BIT, + 0u, + 1u, + 0u, + 1u + } + }; + + vkd.cmdPipelineBarrier(*commandBuffer, VK_PIPELINE_STAGE_TOP_OF_PIPE_BIT, VK_PIPELINE_STAGE_COLOR_ATTACHMENT_OUTPUT_BIT, 0u, 0u, DE_NULL, 0u, DE_NULL, 1u, &barrier); + const VkClearValue clearValue = makeClearValueColor({ 0.0f, 0.0f, 0.0f, 1.0f }); beginRendering(vkd, *commandBuffer, *m_dstImageView, renderArea, clearValue, VK_IMAGE_LAYOUT_COLOR_ATTACHMENT_OPTIMAL, VK_ATTACHMENT_LOAD_OP_DONT_CARE); } -- 2.7.4