From 4e82d99e448dd22a697e3eff3b0fd1faf1e017c6 Mon Sep 17 00:00:00 2001 From: Tony Barbour Date: Wed, 28 Jun 2017 10:41:39 -0600 Subject: [PATCH] Fix MultisampleRenderPassTest layout transitions Section 6.6 of the Vulkan spec says: If vkCmdPipelineBarrier is called within a render pass instance, the oldLayout and newLayout members of an element of pImageMemoryBarriers must be equal so move the layout transition in this test to be outside the renderpass Affects: dEQP-VK.renderpass.multisample_resolve.* Components: Vulkan VK-GL-CTS Issue: 540 Change-Id: Ifb61c1d00db9fa6042aa51d4955c8eb89f021f1e --- .../vktRenderPassMultisampleResolveTests.cpp | 40 +++++++++++----------- 1 file changed, 20 insertions(+), 20 deletions(-) diff --git a/external/vulkancts/modules/vulkan/renderpass/vktRenderPassMultisampleResolveTests.cpp b/external/vulkancts/modules/vulkan/renderpass/vktRenderPassMultisampleResolveTests.cpp index c261e2a..3751afb 100644 --- a/external/vulkancts/modules/vulkan/renderpass/vktRenderPassMultisampleResolveTests.cpp +++ b/external/vulkancts/modules/vulkan/renderpass/vktRenderPassMultisampleResolveTests.cpp @@ -875,26 +875,6 @@ void MultisampleRenderPassTestInstance::submit (void) VK_CHECK(vkd.beginCommandBuffer(*commandBuffer, &beginInfo)); } - { - const VkRenderPassBeginInfo beginInfo = - { - VK_STRUCTURE_TYPE_RENDER_PASS_BEGIN_INFO, - DE_NULL, - - *m_renderPass, - *m_framebuffer, - - { - { 0u, 0u }, - { m_width, m_height } - }, - - 0u, - DE_NULL - }; - vkd.cmdBeginRenderPass(*commandBuffer, &beginInfo, VK_SUBPASS_CONTENTS_INLINE); - } - // Memory barriers between previous copies and rendering { std::vector barriers; @@ -931,6 +911,26 @@ void MultisampleRenderPassTestInstance::submit (void) vkd.cmdPipelineBarrier(*commandBuffer, VK_PIPELINE_STAGE_TRANSFER_BIT, VK_PIPELINE_STAGE_COLOR_ATTACHMENT_OUTPUT_BIT, 0u, 0u, DE_NULL, 0u, DE_NULL, (deUint32)barriers.size(), &barriers[0]); } + { + const VkRenderPassBeginInfo beginInfo = + { + VK_STRUCTURE_TYPE_RENDER_PASS_BEGIN_INFO, + DE_NULL, + + *m_renderPass, + *m_framebuffer, + + { + { 0u, 0u }, + { m_width, m_height } + }, + + 0u, + DE_NULL + }; + vkd.cmdBeginRenderPass(*commandBuffer, &beginInfo, VK_SUBPASS_CONTENTS_INLINE); + } + // Clear everything to black { const tcu::TextureFormat format (mapVkFormat(m_format)); -- 2.7.4