Merge vk-gl-cts/vulkan-cts-1.1.1 into vk-gl-cts/vulkan-cts-1.1.2
authorAlexander Galazin <alexander.galazin@arm.com>
Thu, 25 Oct 2018 16:33:14 +0000 (18:33 +0200)
committerAlexander Galazin <alexander.galazin@arm.com>
Thu, 25 Oct 2018 18:55:28 +0000 (20:55 +0200)
Change-Id: Ic2ef309419e39a4b2baf634017e25979d743a607

1  2 
external/vulkancts/modules/vulkan/api/vktApiCopiesAndBlittingTests.cpp

@@@ -3688,11 -3942,17 +3712,17 @@@ tcu::TestStatus ResolveImageToImage::it
        generateBuffer(m_sourceTextureLevel->getAccess(), m_params.src.image.extent.width, m_params.src.image.extent.height, m_params.dst.image.extent.depth, FILL_MODE_MULTISAMPLE);
        generateExpectedResult();
  
+       VkImage         sourceImage             = m_multisampledImage.get();
+       deUint32        sourceArraySize = getArraySize(m_params.src.image);
        switch (m_options)
        {
-               case COPY_MS_IMAGE_TO_MS_IMAGE:
                case COPY_MS_IMAGE_TO_ARRAY_MS_IMAGE:
-                       copyMSImageToMSImage();
+                       // Duplicate the multisampled image to a multisampled image array
 -                      sourceArraySize = getArraySize(m_params.dst.image);
++                      sourceArraySize = getArraySize(m_params.dst.image); // fall through
+               case COPY_MS_IMAGE_TO_MS_IMAGE:
+                       copyMSImageToMSImage(sourceArraySize);
+                       sourceImage     = m_multisampledCopyImage.get();
                        break;
                default:
                        break;
                }
        };
  
 -      const VkCommandBufferBeginInfo  cmdBufferBeginInfo      =
 -      {
 -              VK_STRUCTURE_TYPE_COMMAND_BUFFER_BEGIN_INFO,                    // VkStructureType                                      sType;
 -              DE_NULL,                                                                                                // const void*                                          pNext;
 -              VK_COMMAND_BUFFER_USAGE_ONE_TIME_SUBMIT_BIT,                    // VkCommandBufferUsageFlags            flags;
 -              (const VkCommandBufferInheritanceInfo*)DE_NULL,
 -      };
 -
 -      VK_CHECK(vk.beginCommandBuffer(*m_cmdBuffer, &cmdBufferBeginInfo));
 +      beginCommandBuffer(vk, *m_cmdBuffer);
        vk.cmdPipelineBarrier(*m_cmdBuffer, VK_PIPELINE_STAGE_COLOR_ATTACHMENT_OUTPUT_BIT, VK_PIPELINE_STAGE_TRANSFER_BIT, (VkDependencyFlags)0, 0, (const VkMemoryBarrier*)DE_NULL, 0, (const VkBufferMemoryBarrier*)DE_NULL, DE_LENGTH_OF_ARRAY(imageBarriers), imageBarriers);
-       vk.cmdResolveImage(*m_cmdBuffer, m_multisampledImage.get(), VK_IMAGE_LAYOUT_TRANSFER_SRC_OPTIMAL, m_destination.get(), VK_IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL, (deUint32)m_params.regions.size(), imageResolves.data());
+       vk.cmdResolveImage(*m_cmdBuffer, sourceImage, VK_IMAGE_LAYOUT_TRANSFER_SRC_OPTIMAL, m_destination.get(), VK_IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL, (deUint32)m_params.regions.size(), imageResolves.data());
        vk.cmdPipelineBarrier(*m_cmdBuffer, VK_PIPELINE_STAGE_TRANSFER_BIT, VK_PIPELINE_STAGE_HOST_BIT, (VkDependencyFlags)0, 0, (const VkMemoryBarrier*)DE_NULL, 0, (const VkBufferMemoryBarrier*)DE_NULL, 1, &postImageBarrier);
 -      VK_CHECK(vk.endCommandBuffer(*m_cmdBuffer));
 +      endCommandBuffer(vk, *m_cmdBuffer);
        submitCommandsAndWait(vk, vkDevice, queue, *m_cmdBuffer);
  
        de::MovePtr<tcu::TextureLevel>  resultTextureLevel      = readImage(*m_destination, m_params.dst.image);
@@@ -3918,11 -4194,9 +3948,9 @@@ void ResolveImageToImage::copyMSImageTo
        vk.cmdPipelineBarrier(*m_cmdBuffer, VK_PIPELINE_STAGE_TRANSFER_BIT, VK_PIPELINE_STAGE_TRANSFER_BIT, (VkDependencyFlags)0, 0, (const VkMemoryBarrier*)DE_NULL, 0, (const VkBufferMemoryBarrier*)DE_NULL, DE_LENGTH_OF_ARRAY(imageBarriers), imageBarriers);
        vk.cmdCopyImage(*m_cmdBuffer, m_multisampledImage.get(), VK_IMAGE_LAYOUT_TRANSFER_SRC_OPTIMAL, m_multisampledCopyImage.get(), VK_IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL, (deUint32)imageCopies.size(), imageCopies.data());
        vk.cmdPipelineBarrier(*m_cmdBuffer, VK_PIPELINE_STAGE_TRANSFER_BIT, VK_PIPELINE_STAGE_BOTTOM_OF_PIPE_BIT, (VkDependencyFlags)0, 0, (const VkMemoryBarrier*)DE_NULL, 0, (const VkBufferMemoryBarrier*)DE_NULL, 1u, &postImageBarriers);
 -      VK_CHECK(vk.endCommandBuffer(*m_cmdBuffer));
 +      endCommandBuffer(vk, *m_cmdBuffer);
  
        submitCommandsAndWait (vk, vkDevice, queue, *m_cmdBuffer);
-       m_multisampledImage = m_multisampledCopyImage;
  }
  
  class ResolveImageToImageTestCase : public vkt::TestCase