Merge gerrit/vulkan-cts-1.0-dev into gerrit/vulkan-cts-next-dev
authorPyry Haulos <phaulos@google.com>
Fri, 2 Dec 2016 19:28:08 +0000 (11:28 -0800)
committerPyry Haulos <phaulos@google.com>
Fri, 2 Dec 2016 19:28:08 +0000 (11:28 -0800)
Change-Id: Iabe17e696178de36fbccac9ce4a2ea7d789fb1ca

1  2 
android/cts/master/vk-master.txt
external/vulkancts/modules/vulkan/api/vktApiCopiesAndBlittingTests.cpp
external/vulkancts/mustpass/1.0.2/vk-default.txt
external/vulkancts/scripts/gen_framework.py

@@@ -8888,54 -6607,13 +8821,19 @@@ dEQP-VK.api.copy_and_blit.image_to_imag
  dEQP-VK.api.copy_and_blit.image_to_image.all_formats.r32g32b32a32_sfloat_r32g32b32a32_uint
  dEQP-VK.api.copy_and_blit.image_to_image.all_formats.r32g32b32a32_sfloat_r32g32b32a32_sint
  dEQP-VK.api.copy_and_blit.image_to_image.all_formats.r32g32b32a32_sfloat_r32g32b32a32_sfloat
- dEQP-VK.api.copy_and_blit.image_to_image.all_formats.r32g32b32a32_sfloat_r64g64_uint
- dEQP-VK.api.copy_and_blit.image_to_image.all_formats.r32g32b32a32_sfloat_r64g64_sint
- dEQP-VK.api.copy_and_blit.image_to_image.all_formats.r32g32b32a32_sfloat_r64g64_sfloat
- dEQP-VK.api.copy_and_blit.image_to_image.all_formats.r64g64_uint_r32g32b32a32_uint
- dEQP-VK.api.copy_and_blit.image_to_image.all_formats.r64g64_uint_r32g32b32a32_sint
- dEQP-VK.api.copy_and_blit.image_to_image.all_formats.r64g64_uint_r32g32b32a32_sfloat
- dEQP-VK.api.copy_and_blit.image_to_image.all_formats.r64g64_uint_r64g64_uint
- dEQP-VK.api.copy_and_blit.image_to_image.all_formats.r64g64_uint_r64g64_sint
- dEQP-VK.api.copy_and_blit.image_to_image.all_formats.r64g64_uint_r64g64_sfloat
- dEQP-VK.api.copy_and_blit.image_to_image.all_formats.r64g64_sint_r32g32b32a32_uint
- dEQP-VK.api.copy_and_blit.image_to_image.all_formats.r64g64_sint_r32g32b32a32_sint
- dEQP-VK.api.copy_and_blit.image_to_image.all_formats.r64g64_sint_r32g32b32a32_sfloat
- dEQP-VK.api.copy_and_blit.image_to_image.all_formats.r64g64_sint_r64g64_uint
- dEQP-VK.api.copy_and_blit.image_to_image.all_formats.r64g64_sint_r64g64_sint
- dEQP-VK.api.copy_and_blit.image_to_image.all_formats.r64g64_sint_r64g64_sfloat
- dEQP-VK.api.copy_and_blit.image_to_image.all_formats.r64g64_sfloat_r32g32b32a32_uint
- dEQP-VK.api.copy_and_blit.image_to_image.all_formats.r64g64_sfloat_r32g32b32a32_sint
- dEQP-VK.api.copy_and_blit.image_to_image.all_formats.r64g64_sfloat_r32g32b32a32_sfloat
- dEQP-VK.api.copy_and_blit.image_to_image.all_formats.r64g64_sfloat_r64g64_uint
- dEQP-VK.api.copy_and_blit.image_to_image.all_formats.r64g64_sfloat_r64g64_sint
- dEQP-VK.api.copy_and_blit.image_to_image.all_formats.r64g64_sfloat_r64g64_sfloat
- dEQP-VK.api.copy_and_blit.image_to_image.all_formats.r64g64b64_uint_r64g64b64_uint
- dEQP-VK.api.copy_and_blit.image_to_image.all_formats.r64g64b64_uint_r64g64b64_sint
- dEQP-VK.api.copy_and_blit.image_to_image.all_formats.r64g64b64_uint_r64g64b64_sfloat
- dEQP-VK.api.copy_and_blit.image_to_image.all_formats.r64g64b64_sint_r64g64b64_uint
- dEQP-VK.api.copy_and_blit.image_to_image.all_formats.r64g64b64_sint_r64g64b64_sint
- dEQP-VK.api.copy_and_blit.image_to_image.all_formats.r64g64b64_sint_r64g64b64_sfloat
- dEQP-VK.api.copy_and_blit.image_to_image.all_formats.r64g64b64_sfloat_r64g64b64_uint
- dEQP-VK.api.copy_and_blit.image_to_image.all_formats.r64g64b64_sfloat_r64g64b64_sint
- dEQP-VK.api.copy_and_blit.image_to_image.all_formats.r64g64b64_sfloat_r64g64b64_sfloat
- dEQP-VK.api.copy_and_blit.image_to_image.all_formats.r64g64b64a64_uint_r64g64b64a64_uint
- dEQP-VK.api.copy_and_blit.image_to_image.all_formats.r64g64b64a64_uint_r64g64b64a64_sint
- dEQP-VK.api.copy_and_blit.image_to_image.all_formats.r64g64b64a64_uint_r64g64b64a64_sfloat
- dEQP-VK.api.copy_and_blit.image_to_image.all_formats.r64g64b64a64_sint_r64g64b64a64_uint
- dEQP-VK.api.copy_and_blit.image_to_image.all_formats.r64g64b64a64_sint_r64g64b64a64_sint
- dEQP-VK.api.copy_and_blit.image_to_image.all_formats.r64g64b64a64_sint_r64g64b64a64_sfloat
- dEQP-VK.api.copy_and_blit.image_to_image.all_formats.r64g64b64a64_sfloat_r64g64b64a64_uint
- dEQP-VK.api.copy_and_blit.image_to_image.all_formats.r64g64b64a64_sfloat_r64g64b64a64_sint
- dEQP-VK.api.copy_and_blit.image_to_image.all_formats.r64g64b64a64_sfloat_r64g64b64a64_sfloat
+ dEQP-VK.api.copy_and_blit.image_to_image.all_formats.depth_stencil_d16_unorm_d16_unorm
+ dEQP-VK.api.copy_and_blit.image_to_image.all_formats.depth_stencil_x8_d24_unorm_pack32_x8_d24_unorm_pack32
+ dEQP-VK.api.copy_and_blit.image_to_image.all_formats.depth_stencil_d32_sfloat_d32_sfloat
+ dEQP-VK.api.copy_and_blit.image_to_image.all_formats.depth_stencil_s8_uint_s8_uint
+ dEQP-VK.api.copy_and_blit.image_to_image.all_formats.depth_stencil_d16_unorm_s8_uint_d16_unorm_s8_uint
+ dEQP-VK.api.copy_and_blit.image_to_image.all_formats.depth_stencil_d24_unorm_s8_uint_d24_unorm_s8_uint
+ dEQP-VK.api.copy_and_blit.image_to_image.all_formats.depth_stencil_d32_sfloat_s8_uint_d32_sfloat_s8_uint
 +dEQP-VK.api.copy_and_blit.image_to_image.3d_images.3d_to_2d_by_slices
 +dEQP-VK.api.copy_and_blit.image_to_image.3d_images.2d_to_3d_by_layers
 +dEQP-VK.api.copy_and_blit.image_to_image.3d_images.3d_to_2d_whole
 +dEQP-VK.api.copy_and_blit.image_to_image.3d_images.2d_to_3d_whole
 +dEQP-VK.api.copy_and_blit.image_to_image.3d_images.3d_to_2d_regions
 +dEQP-VK.api.copy_and_blit.image_to_image.3d_images.2d_to_3d_regions
  dEQP-VK.api.copy_and_blit.image_to_buffer.whole
  dEQP-VK.api.copy_and_blit.image_to_buffer.buffer_offset
  dEQP-VK.api.copy_and_blit.image_to_buffer.regions
@@@ -732,14 -807,14 +812,14 @@@ tcu::TestStatus CopyImageToImage::itera
        const tcu::TextureFormat        srcTcuFormat            = mapVkFormat(m_params.src.image.format);
        const tcu::TextureFormat        dstTcuFormat            = mapVkFormat(m_params.dst.image.format);
        m_sourceTextureLevel = de::MovePtr<tcu::TextureLevel>(new tcu::TextureLevel(srcTcuFormat,
 -                                                                                                                                                              m_params.src.image.extent.width,
 -                                                                                                                                                              m_params.src.image.extent.height,
 -                                                                                                                                                              m_params.src.image.extent.depth));
 +                                                                                                                                                              (int)m_params.src.image.extent.width,
 +                                                                                                                                                              (int)m_params.src.image.extent.height,
 +                                                                                                                                                              (int)m_params.src.image.extent.depth));
-       generateBuffer(m_sourceTextureLevel->getAccess(), m_params.src.image.extent.width, m_params.src.image.extent.height, m_params.src.image.extent.depth, FILL_MODE_WHITE);
+       generateBuffer(m_sourceTextureLevel->getAccess(), m_params.src.image.extent.width, m_params.src.image.extent.height, m_params.src.image.extent.depth, FILL_MODE_RED);
        m_destinationTextureLevel = de::MovePtr<tcu::TextureLevel>(new tcu::TextureLevel(dstTcuFormat,
 -                                                                                                                                                                       (int)m_params.dst.image.extent.width,
 -                                                                                                                                                                       (int)m_params.dst.image.extent.height,
 -                                                                                                                                                                       (int)m_params.dst.image.extent.depth));
 +                                                                                                                                                              (int)m_params.dst.image.extent.width,
 +                                                                                                                                                              (int)m_params.dst.image.extent.height,
 +                                                                                                                                                              (int)m_params.dst.image.extent.depth));
        generateBuffer(m_destinationTextureLevel->getAccess(), m_params.dst.image.extent.width, m_params.dst.image.extent.height, m_params.dst.image.extent.depth, FILL_MODE_GRADIENT);
        generateExpectedResult();
  
        return checkTestResult(resultTextureLevel->getAccess());
  }
  
+ tcu::TestStatus CopyImageToImage::checkTestResult (tcu::ConstPixelBufferAccess result)
+ {
+       const tcu::Vec4 fThreshold (0.0f);
+       const tcu::UVec4 uThreshold (0u);
+       if (tcu::isCombinedDepthStencilType(result.getFormat().type))
+       {
+               if (tcu::hasDepthComponent(result.getFormat().order))
+               {
+                       const tcu::Sampler::DepthStencilMode    mode                            = tcu::Sampler::MODE_DEPTH;
+                       const tcu::ConstPixelBufferAccess               depthResult                     = tcu::getEffectiveDepthStencilAccess(result, mode);
+                       const tcu::ConstPixelBufferAccess               expectedResult          = tcu::getEffectiveDepthStencilAccess(m_expectedTextureLevel->getAccess(), mode);
+                       if (isFloatFormat(result.getFormat()))
+                       {
+                               if (!tcu::floatThresholdCompare(m_context.getTestContext().getLog(), "Compare", "Result comparsion", expectedResult, depthResult, fThreshold, tcu::COMPARE_LOG_RESULT))
+                                       return tcu::TestStatus::fail("CopiesAndBlitting test");
+                       }
+                       else
+                       {
+                               if (!tcu::intThresholdCompare(m_context.getTestContext().getLog(), "Compare", "Result comparsion", expectedResult, depthResult, uThreshold, tcu::COMPARE_LOG_RESULT))
+                                       return tcu::TestStatus::fail("CopiesAndBlitting test");
+                       }
+               }
+               if (tcu::hasStencilComponent(result.getFormat().order))
+               {
+                       const tcu::Sampler::DepthStencilMode    mode                            = tcu::Sampler::MODE_STENCIL;
+                       const tcu::ConstPixelBufferAccess               stencilResult           = tcu::getEffectiveDepthStencilAccess(result, mode);
+                       const tcu::ConstPixelBufferAccess               expectedResult          = tcu::getEffectiveDepthStencilAccess(m_expectedTextureLevel->getAccess(), mode);
+                       if (isFloatFormat(result.getFormat()))
+                       {
+                               if (!tcu::floatThresholdCompare(m_context.getTestContext().getLog(), "Compare", "Result comparsion", expectedResult, stencilResult, fThreshold, tcu::COMPARE_LOG_RESULT))
+                                       return tcu::TestStatus::fail("CopiesAndBlitting test");
+                       }
+                       else
+                       {
+                               if (!tcu::intThresholdCompare(m_context.getTestContext().getLog(), "Compare", "Result comparsion", expectedResult, stencilResult, uThreshold, tcu::COMPARE_LOG_RESULT))
+                                       return tcu::TestStatus::fail("CopiesAndBlitting test");
+                       }
+               }
+       }
+       else
+       {
+               if (isFloatFormat(result.getFormat()))
+               {
+                       if (!tcu::floatThresholdCompare(m_context.getTestContext().getLog(), "Compare", "Result comparsion", m_expectedTextureLevel->getAccess(), result, fThreshold, tcu::COMPARE_LOG_RESULT))
+                               return tcu::TestStatus::fail("CopiesAndBlitting test");
+               }
+               else
+               {
+                       if (!tcu::intThresholdCompare(m_context.getTestContext().getLog(), "Compare", "Result comparsion", m_expectedTextureLevel->getAccess(), result, uThreshold, tcu::COMPARE_LOG_RESULT))
+                               return tcu::TestStatus::fail("CopiesAndBlitting test");
+               }
+       }
+       return tcu::TestStatus::pass("CopiesAndBlitting test");
+ }
  void CopyImageToImage::copyRegionToTextureLevel (tcu::ConstPixelBufferAccess src, tcu::PixelBufferAccess dst, CopyRegion region)
  {
-       VkOffset3D srcOffset    = region.imageCopy.srcOffset;
-       VkOffset3D dstOffset    = region.imageCopy.dstOffset;
-       VkExtent3D extent               = region.imageCopy.extent;
 -      const VkOffset3D        srcOffset       = region.imageCopy.srcOffset;
 -      const VkOffset3D        dstOffset       = region.imageCopy.dstOffset;
 -      const VkExtent3D        extent          = region.imageCopy.extent;
++      VkOffset3D      srcOffset       = region.imageCopy.srcOffset;
++      VkOffset3D      dstOffset       = region.imageCopy.dstOffset;
++      VkExtent3D      extent          = region.imageCopy.extent;
 +
 +      if (m_params.src.image.imageType == VK_IMAGE_TYPE_3D && m_params.dst.image.imageType == VK_IMAGE_TYPE_2D)
 +              dstOffset.z = srcOffset.z;
 +      if (m_params.src.image.imageType == VK_IMAGE_TYPE_2D && m_params.dst.image.imageType == VK_IMAGE_TYPE_3D)
 +      {
 +              srcOffset.z = dstOffset.z;
 +              extent.depth = std::max(region.imageCopy.extent.depth, region.imageCopy.srcSubresource.layerCount);
 +      }
 +
  
        if (tcu::isCombinedDepthStencilType(src.getFormat().type))
        {
@@@ -1652,9 -1790,10 +1790,9 @@@ tcu::TestStatus BlittingImages::iterat
        vk.cmdBlitImage(*m_cmdBuffer, m_source.get(), VK_IMAGE_LAYOUT_TRANSFER_SRC_OPTIMAL, m_destination.get(), VK_IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL, (deUint32)m_params.regions.size(), &regions[0], m_params.filter);
        vk.cmdPipelineBarrier(*m_cmdBuffer, VK_PIPELINE_STAGE_TRANSFER_BIT, VK_PIPELINE_STAGE_TOP_OF_PIPE_BIT, (VkDependencyFlags)0, 0, (const VkMemoryBarrier*)DE_NULL, 0, (const VkBufferMemoryBarrier*)DE_NULL, 1, &dstImageBarrier);
        VK_CHECK(vk.endCommandBuffer(*m_cmdBuffer));
 -
 -      submitCommandsAndWait (vk, vkDevice, queue, *m_cmdBuffer);
 +      submitCommandsAndWait(vk, vkDevice, queue, *m_cmdBuffer);
  
-       de::MovePtr<tcu::TextureLevel> resultTextureLevel = readImage(vk, vkDevice, queue, memAlloc, *m_destination, m_params.dst.image);
+       de::MovePtr<tcu::TextureLevel> resultTextureLevel = readImage(*m_destination, m_params.dst.image);
  
        return checkTestResult(resultTextureLevel->getAccess());
  }
@@@ -2718,11 -2874,17 +2875,11 @@@ tcu::TestStatus ResolveImageToImage::it
        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.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));
 +      submitCommandsAndWait(vk, vkDevice, queue, *m_cmdBuffer);
  
-       de::MovePtr<tcu::TextureLevel>  resultTextureLevel      = readImage(vk, vkDevice, queue, memAlloc, *m_destination, m_params.dst.image);
 -      submitCommandsAndWait (vk, vkDevice, queue, *m_cmdBuffer);
 -
 -      // check the result of resolving image
 -      {
 -              de::MovePtr<tcu::TextureLevel>  resultTextureLevel      = readImage(*m_destination, m_params.dst.image);
++      de::MovePtr<tcu::TextureLevel>  resultTextureLevel      = readImage(*m_destination, m_params.dst.image);
  
 -              if (QP_TEST_RESULT_PASS != checkTestResult(resultTextureLevel->getAccess()).getCode())
 -                      return tcu::TestStatus::fail("CopiesAndBlitting test");
 -      }
 -      return tcu::TestStatus::pass("CopiesAndBlitting test");
 +      return checkTestResult(resultTextureLevel->getAccess());
  }
  
  tcu::TestStatus ResolveImageToImage::checkTestResult (tcu::ConstPixelBufferAccess result)
@@@ -8888,54 -6607,13 +8821,19 @@@ dEQP-VK.api.copy_and_blit.image_to_imag
  dEQP-VK.api.copy_and_blit.image_to_image.all_formats.r32g32b32a32_sfloat_r32g32b32a32_uint
  dEQP-VK.api.copy_and_blit.image_to_image.all_formats.r32g32b32a32_sfloat_r32g32b32a32_sint
  dEQP-VK.api.copy_and_blit.image_to_image.all_formats.r32g32b32a32_sfloat_r32g32b32a32_sfloat
- dEQP-VK.api.copy_and_blit.image_to_image.all_formats.r32g32b32a32_sfloat_r64g64_uint
- dEQP-VK.api.copy_and_blit.image_to_image.all_formats.r32g32b32a32_sfloat_r64g64_sint
- dEQP-VK.api.copy_and_blit.image_to_image.all_formats.r32g32b32a32_sfloat_r64g64_sfloat
- dEQP-VK.api.copy_and_blit.image_to_image.all_formats.r64g64_uint_r32g32b32a32_uint
- dEQP-VK.api.copy_and_blit.image_to_image.all_formats.r64g64_uint_r32g32b32a32_sint
- dEQP-VK.api.copy_and_blit.image_to_image.all_formats.r64g64_uint_r32g32b32a32_sfloat
- dEQP-VK.api.copy_and_blit.image_to_image.all_formats.r64g64_uint_r64g64_uint
- dEQP-VK.api.copy_and_blit.image_to_image.all_formats.r64g64_uint_r64g64_sint
- dEQP-VK.api.copy_and_blit.image_to_image.all_formats.r64g64_uint_r64g64_sfloat
- dEQP-VK.api.copy_and_blit.image_to_image.all_formats.r64g64_sint_r32g32b32a32_uint
- dEQP-VK.api.copy_and_blit.image_to_image.all_formats.r64g64_sint_r32g32b32a32_sint
- dEQP-VK.api.copy_and_blit.image_to_image.all_formats.r64g64_sint_r32g32b32a32_sfloat
- dEQP-VK.api.copy_and_blit.image_to_image.all_formats.r64g64_sint_r64g64_uint
- dEQP-VK.api.copy_and_blit.image_to_image.all_formats.r64g64_sint_r64g64_sint
- dEQP-VK.api.copy_and_blit.image_to_image.all_formats.r64g64_sint_r64g64_sfloat
- dEQP-VK.api.copy_and_blit.image_to_image.all_formats.r64g64_sfloat_r32g32b32a32_uint
- dEQP-VK.api.copy_and_blit.image_to_image.all_formats.r64g64_sfloat_r32g32b32a32_sint
- dEQP-VK.api.copy_and_blit.image_to_image.all_formats.r64g64_sfloat_r32g32b32a32_sfloat
- dEQP-VK.api.copy_and_blit.image_to_image.all_formats.r64g64_sfloat_r64g64_uint
- dEQP-VK.api.copy_and_blit.image_to_image.all_formats.r64g64_sfloat_r64g64_sint
- dEQP-VK.api.copy_and_blit.image_to_image.all_formats.r64g64_sfloat_r64g64_sfloat
- dEQP-VK.api.copy_and_blit.image_to_image.all_formats.r64g64b64_uint_r64g64b64_uint
- dEQP-VK.api.copy_and_blit.image_to_image.all_formats.r64g64b64_uint_r64g64b64_sint
- dEQP-VK.api.copy_and_blit.image_to_image.all_formats.r64g64b64_uint_r64g64b64_sfloat
- dEQP-VK.api.copy_and_blit.image_to_image.all_formats.r64g64b64_sint_r64g64b64_uint
- dEQP-VK.api.copy_and_blit.image_to_image.all_formats.r64g64b64_sint_r64g64b64_sint
- dEQP-VK.api.copy_and_blit.image_to_image.all_formats.r64g64b64_sint_r64g64b64_sfloat
- dEQP-VK.api.copy_and_blit.image_to_image.all_formats.r64g64b64_sfloat_r64g64b64_uint
- dEQP-VK.api.copy_and_blit.image_to_image.all_formats.r64g64b64_sfloat_r64g64b64_sint
- dEQP-VK.api.copy_and_blit.image_to_image.all_formats.r64g64b64_sfloat_r64g64b64_sfloat
- dEQP-VK.api.copy_and_blit.image_to_image.all_formats.r64g64b64a64_uint_r64g64b64a64_uint
- dEQP-VK.api.copy_and_blit.image_to_image.all_formats.r64g64b64a64_uint_r64g64b64a64_sint
- dEQP-VK.api.copy_and_blit.image_to_image.all_formats.r64g64b64a64_uint_r64g64b64a64_sfloat
- dEQP-VK.api.copy_and_blit.image_to_image.all_formats.r64g64b64a64_sint_r64g64b64a64_uint
- dEQP-VK.api.copy_and_blit.image_to_image.all_formats.r64g64b64a64_sint_r64g64b64a64_sint
- dEQP-VK.api.copy_and_blit.image_to_image.all_formats.r64g64b64a64_sint_r64g64b64a64_sfloat
- dEQP-VK.api.copy_and_blit.image_to_image.all_formats.r64g64b64a64_sfloat_r64g64b64a64_uint
- dEQP-VK.api.copy_and_blit.image_to_image.all_formats.r64g64b64a64_sfloat_r64g64b64a64_sint
- dEQP-VK.api.copy_and_blit.image_to_image.all_formats.r64g64b64a64_sfloat_r64g64b64a64_sfloat
+ dEQP-VK.api.copy_and_blit.image_to_image.all_formats.depth_stencil_d16_unorm_d16_unorm
+ dEQP-VK.api.copy_and_blit.image_to_image.all_formats.depth_stencil_x8_d24_unorm_pack32_x8_d24_unorm_pack32
+ dEQP-VK.api.copy_and_blit.image_to_image.all_formats.depth_stencil_d32_sfloat_d32_sfloat
+ dEQP-VK.api.copy_and_blit.image_to_image.all_formats.depth_stencil_s8_uint_s8_uint
+ dEQP-VK.api.copy_and_blit.image_to_image.all_formats.depth_stencil_d16_unorm_s8_uint_d16_unorm_s8_uint
+ dEQP-VK.api.copy_and_blit.image_to_image.all_formats.depth_stencil_d24_unorm_s8_uint_d24_unorm_s8_uint
+ dEQP-VK.api.copy_and_blit.image_to_image.all_formats.depth_stencil_d32_sfloat_s8_uint_d32_sfloat_s8_uint
 +dEQP-VK.api.copy_and_blit.image_to_image.3d_images.3d_to_2d_by_slices
 +dEQP-VK.api.copy_and_blit.image_to_image.3d_images.2d_to_3d_by_layers
 +dEQP-VK.api.copy_and_blit.image_to_image.3d_images.3d_to_2d_whole
 +dEQP-VK.api.copy_and_blit.image_to_image.3d_images.2d_to_3d_whole
 +dEQP-VK.api.copy_and_blit.image_to_image.3d_images.3d_to_2d_regions
 +dEQP-VK.api.copy_and_blit.image_to_image.3d_images.2d_to_3d_regions
  dEQP-VK.api.copy_and_blit.image_to_buffer.whole
  dEQP-VK.api.copy_and_blit.image_to_buffer.buffer_offset
  dEQP-VK.api.copy_and_blit.image_to_buffer.regions