Further validation fixes for renderpass tests
authorGraeme Leese <gleese@broadcom.com>
Wed, 24 Oct 2018 10:59:48 +0000 (11:59 +0100)
committerAlexander Galazin <Alexander.Galazin@arm.com>
Tue, 6 Nov 2018 15:26:45 +0000 (10:26 -0500)
Correct synchronisation for multisample tests and include stencil usage
in pipline barriers.

Component: Vulkan
Affects: dEQP-VK.renderpass.*
         dEQP-VK.renderpass2.*

Change-Id: I481dca4a2544911a36cdb9773efe4e7ad1a94c7f

external/vulkancts/modules/vulkan/renderpass/vktRenderPassMultisampleTests.cpp
external/vulkancts/modules/vulkan/renderpass/vktRenderPassTests.cpp

index 4ee6835..157e383 100644 (file)
@@ -626,7 +626,7 @@ Move<VkRenderPass> createRenderPass (const DeviceInterface& vkd,
                                        DE_NULL,                                                                                                                                                                //                                                                                              ||      const void*                             pNext;
                                        0u,                                                                                                                                                                             //  deUint32                            srcSubpass;                     ||      deUint32                                srcSubpass;
                                        splitSubpassIndex + 1,                                                                                                                                  //  deUint32                            dstSubpass;                     ||      deUint32                                dstSubpass;
-                                       VK_PIPELINE_STAGE_COLOR_ATTACHMENT_OUTPUT_BIT                                                                                 //  VkPipelineStageFlags        srcStageMask;           ||      VkPipelineStageFlags    srcStageMask;
+                                       VK_PIPELINE_STAGE_COLOR_ATTACHMENT_OUTPUT_BIT | VK_PIPELINE_STAGE_EARLY_FRAGMENT_TESTS_BIT | VK_PIPELINE_STAGE_LATE_FRAGMENT_TESTS_BIT,                                                                                 //  VkPipelineStageFlags        srcStageMask;           ||      VkPipelineStageFlags    srcStageMask;
                                        VK_PIPELINE_STAGE_FRAGMENT_SHADER_BIT,                                                                                                  //  VkPipelineStageFlags        dstStageMask;           ||      VkPipelineStageFlags    dstStageMask;
                                        VK_ACCESS_COLOR_ATTACHMENT_WRITE_BIT | VK_ACCESS_DEPTH_STENCIL_ATTACHMENT_WRITE_BIT,    //  VkAccessFlags                       srcAccessMask;          ||      VkAccessFlags                   srcAccessMask;
                                        VK_ACCESS_INPUT_ATTACHMENT_READ_BIT,                                                                                                    //  VkAccessFlags                       dstAccessMask;          ||      VkAccessFlags                   dstAccessMask;
@@ -1439,7 +1439,7 @@ tcu::TestStatus MultisampleRenderPassTestInstance::iterateInternal (void)
                        barriers.push_back(barrier);
                }
 
-               vkd.cmdPipelineBarrier(*commandBuffer, VK_PIPELINE_STAGE_COLOR_ATTACHMENT_OUTPUT_BIT, VK_PIPELINE_STAGE_TRANSFER_BIT, 0u, 0u, DE_NULL, (deUint32)barriers.size(), &barriers[0], 0u, DE_NULL);
+               vkd.cmdPipelineBarrier(*commandBuffer, VK_PIPELINE_STAGE_TRANSFER_BIT, VK_PIPELINE_STAGE_HOST_BIT, 0u, 0u, DE_NULL, (deUint32)barriers.size(), &barriers[0], 0u, DE_NULL);
        }
 
        endCommandBuffer(vkd, *commandBuffer);
index 1387fcf..e74b749 100644 (file)
@@ -6867,10 +6867,10 @@ void addFormatTests (tcu::TestCaseGroup* group, const TestConfigExternal testCon
                                                                                                                                        vk::VK_DEPENDENCY_BY_REGION_BIT));
 
                                                                        deps.push_back(SubpassDependency(1, 1,
-                                                                                                                                       vk::VK_PIPELINE_STAGE_COLOR_ATTACHMENT_OUTPUT_BIT,
+                                                                                                                                       vk::VK_PIPELINE_STAGE_EARLY_FRAGMENT_TESTS_BIT | vk::VK_PIPELINE_STAGE_LATE_FRAGMENT_TESTS_BIT,
                                                                                                                                        vk::VK_PIPELINE_STAGE_FRAGMENT_SHADER_BIT,
 
-                                                                                                                                       vk::VK_ACCESS_COLOR_ATTACHMENT_WRITE_BIT,
+                                                                                                                                       vk::VK_ACCESS_DEPTH_STENCIL_ATTACHMENT_WRITE_BIT,
                                                                                                                                        vk::VK_ACCESS_INPUT_ATTACHMENT_READ_BIT,
                                                                                                                                        vk::VK_DEPENDENCY_BY_REGION_BIT));