Remove wrong image barrier from multisample_shader_builtin tests
authorSlawomir Cygan <slawomir.cygan@intel.com>
Mon, 24 Apr 2017 13:01:04 +0000 (15:01 +0200)
committerPyry Haulos <phaulos@google.com>
Mon, 24 Apr 2017 13:14:50 +0000 (08:14 -0500)
Spec says:
"If vkCmdPipelineBarrier is called within a render pass instance,
the oldLayout and newLayout members of an element of
pImageMemoryBarriers must be equal"

The `multisample_shader_builtin` tries to use barrier for changing
the layout of the image used as render target and input attachment.
The barrier is invalid and, given the existing subpass dependencies,
not needed at all.

VK-GL-CTS Issue: 386
Component: Vulkan
Affects: dEQP-VK.pipeline.multisample_shader_builtin.*

Change-Id: I23bf1de5d39a5d786a6bf863a429f8d7e97f495d

external/vulkancts/modules/vulkan/pipeline/vktPipelineMultisampleBaseResolveAndPerSampleFetch.cpp

index 3bf4569..8d8099b 100644 (file)
@@ -830,19 +830,6 @@ tcu::TestStatus MSInstanceBaseResolveAndPerSampleFetch::iterate (void)
                // Perform a draw
                deviceInterface.cmdDraw(*commandBuffer, vertexDataDesc.verticesCount, 1u, 0u, 0u);
 
-               // Change imageMS layout for input attachment compatibility
-               const VkImageMemoryBarrier imageMSInputAttachmentBarrier = makeImageMemoryBarrier
-               (
-                       VK_ACCESS_COLOR_ATTACHMENT_WRITE_BIT,
-                       VK_ACCESS_INPUT_ATTACHMENT_READ_BIT,
-                       VK_IMAGE_LAYOUT_COLOR_ATTACHMENT_OPTIMAL,
-                       VK_IMAGE_LAYOUT_SHADER_READ_ONLY_OPTIMAL,
-                       **imageMS,
-                       fullImageRange
-               );
-
-               deviceInterface.cmdPipelineBarrier(*commandBuffer, VK_PIPELINE_STAGE_COLOR_ATTACHMENT_OUTPUT_BIT, VK_PIPELINE_STAGE_FRAGMENT_SHADER_BIT, 0u, 0u, DE_NULL, 0u, DE_NULL, 1u, &imageMSInputAttachmentBarrier);
-
                for (deUint32 sampleNdx = 0u; sampleNdx < numSamples; ++sampleNdx)
                {
                        deviceInterface.cmdNextSubpass(*commandBuffer, VK_SUBPASS_CONTENTS_INLINE);