Test cube image blits with VK_IMAGE_CREATE_CUBE_COMPATIBLE flag.
authorDzmitry Malyshau <dmalyshau@mozilla.com>
Mon, 10 Sep 2018 00:40:54 +0000 (20:40 -0400)
committerAlexander Galazin <alexander.galazin@arm.com>
Fri, 14 Sep 2018 11:59:15 +0000 (13:59 +0200)
The intent of blit tests with layer count = 6 was to test cubemap image support.
This PR adds the appropriate image creation flag for those tests.

Affects:
dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.*

VK-GL-CTS issue: 1336
Components: Vulkan

Change-Id: I6ca0bb6905baebb4e6e6d3597e6e7c54d582473a
(cherry picked from commit d8a05170a7ae7b6b284406f900b9609c7e71be14)

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

index be2c8b5..6a35eb4 100644 (file)
@@ -224,6 +224,12 @@ inline deUint32 getArraySize(const ImageParms& parms)
        return (parms.imageType == VK_IMAGE_TYPE_2D) ? parms.extent.depth : 1u;
 }
 
+inline VkImageCreateFlags getCreateFlags(const ImageParms& parms)
+{
+       return parms.imageType == VK_IMAGE_TYPE_2D && parms.extent.depth % 6 == 0 ?
+               VK_IMAGE_CREATE_CUBE_COMPATIBLE_BIT : 0;
+}
+
 inline VkExtent3D getExtent3D(const ImageParms& parms)
 {
        const VkExtent3D                extent                                  =
@@ -890,7 +896,7 @@ CopyImageToImage::CopyImageToImage (Context& context, TestParams params)
                {
                        VK_STRUCTURE_TYPE_IMAGE_CREATE_INFO,    // VkStructureType              sType;
                        DE_NULL,                                                                // const void*                  pNext;
-                       0u,                                                                             // VkImageCreateFlags   flags;
+                       getCreateFlags(m_params.src.image),             // VkImageCreateFlags   flags;
                        m_params.src.image.imageType,                   // VkImageType                  imageType;
                        m_params.src.image.format,                              // VkFormat                             format;
                        getExtent3D(m_params.src.image),                // VkExtent3D                   extent;
@@ -917,7 +923,7 @@ CopyImageToImage::CopyImageToImage (Context& context, TestParams params)
                {
                        VK_STRUCTURE_TYPE_IMAGE_CREATE_INFO,    // VkStructureType              sType;
                        DE_NULL,                                                                // const void*                  pNext;
-                       0u,                                                                             // VkImageCreateFlags   flags;
+                       getCreateFlags(m_params.dst.image),             // VkImageCreateFlags   flags;
                        m_params.dst.image.imageType,                   // VkImageType                  imageType;
                        m_params.dst.image.format,                              // VkFormat                             format;
                        getExtent3D(m_params.dst.image),                // VkExtent3D                   extent;
@@ -1391,7 +1397,7 @@ CopyImageToBuffer::CopyImageToBuffer (Context& context, TestParams testParams)
                {
                        VK_STRUCTURE_TYPE_IMAGE_CREATE_INFO,    // VkStructureType              sType;
                        DE_NULL,                                                                // const void*                  pNext;
-                       0u,                                                                             // VkImageCreateFlags   flags;
+                       getCreateFlags(m_params.src.image),             // VkImageCreateFlags   flags;
                        m_params.src.image.imageType,                   // VkImageType                  imageType;
                        m_params.src.image.format,                              // VkFormat                             format;
                        getExtent3D(m_params.src.image),                // VkExtent3D                   extent;
@@ -1620,7 +1626,7 @@ CopyBufferToImage::CopyBufferToImage (Context& context, TestParams testParams)
                {
                        VK_STRUCTURE_TYPE_IMAGE_CREATE_INFO,    // VkStructureType              sType;
                        DE_NULL,                                                                // const void*                  pNext;
-                       0u,                                                                             // VkImageCreateFlags   flags;
+                       getCreateFlags(m_params.dst.image),             // VkImageCreateFlags   flags;
                        m_params.dst.image.imageType,                   // VkImageType                  imageType;
                        m_params.dst.image.format,                              // VkFormat                             format;
                        getExtent3D(m_params.dst.image),                // VkExtent3D                   extent;
@@ -1843,7 +1849,7 @@ BlittingImages::BlittingImages (Context& context, TestParams params)
                {
                        VK_STRUCTURE_TYPE_IMAGE_CREATE_INFO,    // VkStructureType              sType;
                        DE_NULL,                                                                // const void*                  pNext;
-                       0u,                                                                             // VkImageCreateFlags   flags;
+                       getCreateFlags(m_params.src.image),             // VkImageCreateFlags   flags;
                        m_params.src.image.imageType,                   // VkImageType                  imageType;
                        m_params.src.image.format,                              // VkFormat                             format;
                        getExtent3D(m_params.src.image),                // VkExtent3D                   extent;
@@ -1870,7 +1876,7 @@ BlittingImages::BlittingImages (Context& context, TestParams params)
                {
                        VK_STRUCTURE_TYPE_IMAGE_CREATE_INFO,    // VkStructureType              sType;
                        DE_NULL,                                                                // const void*                  pNext;
-                       0u,                                                                             // VkImageCreateFlags   flags;
+                       getCreateFlags(m_params.dst.image),             // VkImageCreateFlags   flags;
                        m_params.dst.image.imageType,                   // VkImageType                  imageType;
                        m_params.dst.image.format,                              // VkFormat                             format;
                        getExtent3D(m_params.dst.image),                // VkExtent3D                   extent;
@@ -2740,7 +2746,7 @@ BlittingMipmaps::BlittingMipmaps (Context& context, TestParams params)
                {
                        VK_STRUCTURE_TYPE_IMAGE_CREATE_INFO,    // VkStructureType              sType;
                        DE_NULL,                                                                // const void*                  pNext;
-                       0u,                                                                             // VkImageCreateFlags   flags;
+                       getCreateFlags(m_params.src.image),             // VkImageCreateFlags   flags;
                        m_params.src.image.imageType,                   // VkImageType                  imageType;
                        m_params.src.image.format,                              // VkFormat                             format;
                        getExtent3D(m_params.src.image),                // VkExtent3D                   extent;
@@ -2767,7 +2773,7 @@ BlittingMipmaps::BlittingMipmaps (Context& context, TestParams params)
                {
                        VK_STRUCTURE_TYPE_IMAGE_CREATE_INFO,    // VkStructureType              sType;
                        DE_NULL,                                                                // const void*                  pNext;
-                       0u,                                                                             // VkImageCreateFlags   flags;
+                       getCreateFlags(m_params.dst.image),             // VkImageCreateFlags   flags;
                        m_params.dst.image.imageType,                   // VkImageType                  imageType;
                        m_params.dst.image.format,                              // VkFormat                             format;
                        getExtent3D(m_params.dst.image),                // VkExtent3D                   extent;
@@ -3389,7 +3395,7 @@ ResolveImageToImage::ResolveImageToImage (Context& context, TestParams params, c
                {
                        VK_STRUCTURE_TYPE_IMAGE_CREATE_INFO,                                                                    // VkStructureType                      sType;
                        DE_NULL,                                                                                                                                // const void*                          pNext;
-                       0u,                                                                                                                                             // VkImageCreateFlags           flags;
+                       getCreateFlags(m_params.src.image),                                                                             // VkImageCreateFlags           flags;
                        m_params.src.image.imageType,                                                                                   // VkImageType                          imageType;
                        m_params.src.image.format,                                                                                              // VkFormat                                     format;
                        getExtent3D(m_params.src.image),                                                                                // VkExtent3D                           extent;
@@ -3444,7 +3450,7 @@ ResolveImageToImage::ResolveImageToImage (Context& context, TestParams params, c
                {
                        VK_STRUCTURE_TYPE_IMAGE_CREATE_INFO,    // VkStructureType              sType;
                        DE_NULL,                                                                // const void*                  pNext;
-                       0u,                                                                             // VkImageCreateFlags   flags;
+                       getCreateFlags(m_params.dst.image),             // VkImageCreateFlags   flags;
                        m_params.dst.image.imageType,                   // VkImageType                  imageType;
                        m_params.dst.image.format,                              // VkFormat                             format;
                        getExtent3D(m_params.dst.image),                // VkExtent3D                   extent;
@@ -6693,9 +6699,9 @@ void addBlittingImageAllFormatsBaseLevelMipmapTests (tcu::TestCaseGroup* group,
                { compatibleFormatsSrgb,        false   },
        };
 
-       const int       numOfColorImageFormatsToTest            = DE_LENGTH_OF_ARRAY(colorImageFormatsToTestBlit);
+       const int       numOfColorImageFormatsToTest    = DE_LENGTH_OF_ARRAY(colorImageFormatsToTestBlit);
 
-       const int       layerCountsToTest[]                                     =
+       const int       layerCountsToTest[]                             =
        {
                1,
                6
@@ -6799,9 +6805,9 @@ void addBlittingImageAllFormatsPreviousLevelMipmapTests (tcu::TestCaseGroup* gro
                { compatibleFormatsSrgb,        false   },
        };
 
-       const int       numOfColorImageFormatsToTest            = DE_LENGTH_OF_ARRAY(colorImageFormatsToTestBlit);
+       const int       numOfColorImageFormatsToTest    = DE_LENGTH_OF_ARRAY(colorImageFormatsToTestBlit);
 
-       const int       layerCountsToTest[]                                     =
+       const int       layerCountsToTest[]                             =
        {
                1,
                6