Merge vk-gl-cts/vulkan-cts-1.2.7 into vk-gl-cts/vulkan-cts-1.2.8
[platform/upstream/VK-GL-CTS.git] / external / vulkancts / modules / vulkan / api / vktApiFeatureInfo.cpp
index 2d66341..37aaf16 100644 (file)
@@ -4033,9 +4033,9 @@ bool checkExtension (vector<VkExtensionProperties>& properties, const char* exte
 
 tcu::TestStatus deviceFeatures2 (Context& context)
 {
-       const VkPhysicalDevice          physicalDevice  = context.getPhysicalDevice();
        const CustomInstance            instance                (createCustomInstanceWithExtension(context, "VK_KHR_get_physical_device_properties2"));
        const InstanceDriver&           vki                             (instance.getDriver());
+       const VkPhysicalDevice          physicalDevice  (chooseDevice(vki, instance, context.getTestContext().getCommandLine()));
        const int                                       count                   = 2u;
        TestLog&                                        log                             = context.getTestContext().getLog();
        VkPhysicalDeviceFeatures        coreFeatures;
@@ -4068,9 +4068,9 @@ tcu::TestStatus deviceFeatures2 (Context& context)
 
 tcu::TestStatus deviceProperties2 (Context& context)
 {
-       const VkPhysicalDevice                  physicalDevice  = context.getPhysicalDevice();
        const CustomInstance                    instance                (createCustomInstanceWithExtension(context, "VK_KHR_get_physical_device_properties2"));
        const InstanceDriver&                   vki                             (instance.getDriver());
+       const VkPhysicalDevice                  physicalDevice  (chooseDevice(vki, instance, context.getTestContext().getCommandLine()));
        TestLog&                                                log                             = context.getTestContext().getLog();
        VkPhysicalDeviceProperties              coreProperties;
        VkPhysicalDeviceProperties2             extProperties;
@@ -4527,9 +4527,9 @@ string toString (const VkFormatProperties2& value)
 
 tcu::TestStatus deviceFormatProperties2 (Context& context)
 {
-       const VkPhysicalDevice                  physicalDevice  = context.getPhysicalDevice();
        const CustomInstance                    instance                (createCustomInstanceWithExtension(context, "VK_KHR_get_physical_device_properties2"));
        const InstanceDriver&                   vki                             (instance.getDriver());
+       const VkPhysicalDevice                  physicalDevice  (chooseDevice(vki, instance, context.getTestContext().getCommandLine()));
        TestLog&                                                log                             = context.getTestContext().getLog();
 
        for (int formatNdx = 0; formatNdx < VK_CORE_FORMAT_LAST; ++formatNdx)
@@ -4550,10 +4550,10 @@ tcu::TestStatus deviceFormatProperties2 (Context& context)
                TCU_CHECK(extProperties.sType == VK_STRUCTURE_TYPE_FORMAT_PROPERTIES_2);
                TCU_CHECK(extProperties.pNext == DE_NULL);
 
-       if (deMemCmp(&coreProperties, &extProperties.formatProperties, sizeof(VkFormatProperties)) != 0)
-               TCU_FAIL("Mismatch between format properties reported by vkGetPhysicalDeviceFormatProperties and vkGetPhysicalDeviceFormatProperties2");
+               if (deMemCmp(&coreProperties, &extProperties.formatProperties, sizeof(VkFormatProperties)) != 0)
+                       TCU_FAIL("Mismatch between format properties reported by vkGetPhysicalDeviceFormatProperties and vkGetPhysicalDeviceFormatProperties2");
 
-       log << TestLog::Message << toString (extProperties) << TestLog::EndMessage;
+               log << TestLog::Message << toString (extProperties) << TestLog::EndMessage;
        }
 
        return tcu::TestStatus::pass("Querying device format properties succeeded");
@@ -4561,9 +4561,9 @@ tcu::TestStatus deviceFormatProperties2 (Context& context)
 
 tcu::TestStatus deviceQueueFamilyProperties2 (Context& context)
 {
-       const VkPhysicalDevice                  physicalDevice                  = context.getPhysicalDevice();
        const CustomInstance                    instance                                (createCustomInstanceWithExtension(context, "VK_KHR_get_physical_device_properties2"));
        const InstanceDriver&                   vki                                             (instance.getDriver());
+       const VkPhysicalDevice                  physicalDevice  (chooseDevice(vki, instance, context.getTestContext().getCommandLine()));
        TestLog&                                                log                                             = context.getTestContext().getLog();
        deUint32                                                numCoreQueueFamilies    = ~0u;
        deUint32                                                numExtQueueFamilies             = ~0u;
@@ -4612,9 +4612,9 @@ tcu::TestStatus deviceQueueFamilyProperties2 (Context& context)
 
 tcu::TestStatus deviceMemoryProperties2 (Context& context)
 {
-       const VkPhysicalDevice                          physicalDevice  = context.getPhysicalDevice();
        const CustomInstance                            instance                (createCustomInstanceWithExtension(context, "VK_KHR_get_physical_device_properties2"));
        const InstanceDriver&                           vki                             (instance.getDriver());
+       const VkPhysicalDevice                          physicalDevice  (chooseDevice(vki, instance, context.getTestContext().getCommandLine()));
        TestLog&                                                        log                             = context.getTestContext().getLog();
        VkPhysicalDeviceMemoryProperties        coreProperties;
        VkPhysicalDeviceMemoryProperties2       extProperties;
@@ -4631,8 +4631,16 @@ tcu::TestStatus deviceMemoryProperties2 (Context& context)
        TCU_CHECK(extProperties.sType == VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MEMORY_PROPERTIES_2);
        TCU_CHECK(extProperties.pNext == DE_NULL);
 
-       if (deMemCmp(&coreProperties, &extProperties.memoryProperties, sizeof(VkPhysicalDeviceMemoryProperties)) != 0)
-               TCU_FAIL("Mismatch between properties reported by vkGetPhysicalDeviceMemoryProperties and vkGetPhysicalDeviceMemoryProperties2");
+       if (coreProperties.memoryTypeCount != extProperties.memoryProperties.memoryTypeCount)
+               TCU_FAIL("Mismatch between memoryTypeCount reported by vkGetPhysicalDeviceMemoryProperties and vkGetPhysicalDeviceMemoryProperties2");
+       if (coreProperties.memoryHeapCount != extProperties.memoryProperties.memoryHeapCount)
+               TCU_FAIL("Mismatch between memoryHeapCount reported by vkGetPhysicalDeviceMemoryProperties and vkGetPhysicalDeviceMemoryProperties2");
+       for (deUint32 i = 0; i < coreProperties.memoryTypeCount; i++)
+               if (deMemCmp(&coreProperties.memoryTypes[i], &extProperties.memoryProperties.memoryTypes[i], sizeof(VkMemoryType)) != 0)
+                       TCU_FAIL("Mismatch between memoryTypes reported by vkGetPhysicalDeviceMemoryProperties and vkGetPhysicalDeviceMemoryProperties2");
+       for (deUint32 i = 0; i < coreProperties.memoryHeapCount; i++)
+               if (deMemCmp(&coreProperties.memoryHeaps[i], &extProperties.memoryProperties.memoryHeaps[i], sizeof(VkMemoryHeap)) != 0)
+                       TCU_FAIL("Mismatch between memoryHeaps reported by vkGetPhysicalDeviceMemoryProperties and vkGetPhysicalDeviceMemoryProperties2");
 
        log << TestLog::Message << extProperties << TestLog::EndMessage;
 
@@ -4753,9 +4761,9 @@ tcu::TestStatus deviceFeaturesVulkan12 (Context& context)
                { 0, 0 }
        };
        TestLog&                                                                                        log                                                                             = context.getTestContext().getLog();
-       const VkPhysicalDevice                                                          physicalDevice                                                  = context.getPhysicalDevice();
        const CustomInstance                                                            instance                                                                (createCustomInstanceWithExtension(context, "VK_KHR_get_physical_device_properties2"));
        const InstanceDriver&                                                           vki                                                                             = instance.getDriver();
+       const VkPhysicalDevice                                                          physicalDevice                                                  (chooseDevice(vki, instance, context.getTestContext().getCommandLine()));
        const deUint32                                                                          vulkan11FeaturesBufferSize                              = sizeof(VkPhysicalDeviceVulkan11Features) + GUARD_SIZE;
        const deUint32                                                                          vulkan12FeaturesBufferSize                              = sizeof(VkPhysicalDeviceVulkan12Features) + GUARD_SIZE;
        VkPhysicalDeviceFeatures2                                                       extFeatures;
@@ -4915,9 +4923,9 @@ tcu::TestStatus devicePropertiesVulkan12 (Context& context)
                { 0, 0 }
        };
        TestLog&                                                                                log                                                                                     = context.getTestContext().getLog();
-       const VkPhysicalDevice                                                  physicalDevice                                                          = context.getPhysicalDevice();
        const CustomInstance                                                    instance                                                                        (createCustomInstanceWithExtension(context, "VK_KHR_get_physical_device_properties2"));
        const InstanceDriver&                                                   vki                                                                                     = instance.getDriver();
+       const VkPhysicalDevice                                                  physicalDevice                                                          (chooseDevice(vki, instance, context.getTestContext().getCommandLine()));
        const deUint32                                                                  vulkan11PropertiesBufferSize                            = sizeof(VkPhysicalDeviceVulkan11Properties) + GUARD_SIZE;
        const deUint32                                                                  vulkan12PropertiesBufferSize                            = sizeof(VkPhysicalDeviceVulkan12Properties) + GUARD_SIZE;
        VkPhysicalDeviceProperties2                                             extProperties;
@@ -4979,9 +4987,9 @@ tcu::TestStatus devicePropertiesVulkan12 (Context& context)
 tcu::TestStatus deviceFeatureExtensionsConsistencyVulkan12(Context& context)
 {
        TestLog&                                                                                        log                                                                             = context.getTestContext().getLog();
-       const VkPhysicalDevice                                                          physicalDevice                                                  = context.getPhysicalDevice();
        const CustomInstance                                                            instance                                                                (createCustomInstanceWithExtension(context, "VK_KHR_get_physical_device_properties2"));
        const InstanceDriver&                                                           vki                                                                             = instance.getDriver();
+       const VkPhysicalDevice                                                          physicalDevice                                                  (chooseDevice(vki, instance, context.getTestContext().getCommandLine()));
 
        if (!context.contextSupports(vk::ApiVersion(1, 2, 0)))
                TCU_THROW(NotSupportedError, "At least Vulkan 1.2 required to run test");
@@ -5192,9 +5200,9 @@ tcu::TestStatus deviceFeatureExtensionsConsistencyVulkan12(Context& context)
 tcu::TestStatus devicePropertyExtensionsConsistencyVulkan12(Context& context)
 {
        TestLog&                                                                                log                                                                                     = context.getTestContext().getLog();
-       const VkPhysicalDevice                                                  physicalDevice                                                          = context.getPhysicalDevice();
        const CustomInstance                                                    instance                                                                        (createCustomInstanceWithExtension(context, "VK_KHR_get_physical_device_properties2"));
        const InstanceDriver&                                                   vki                                                                                     = instance.getDriver();
+       const VkPhysicalDevice                                                  physicalDevice                                                          (chooseDevice(vki, instance, context.getTestContext().getCommandLine()));
 
        if (!context.contextSupports(vk::ApiVersion(1, 2, 0)))
                TCU_THROW(NotSupportedError, "At least Vulkan 1.2 required to run test");
@@ -5363,9 +5371,9 @@ tcu::TestStatus imageFormatProperties2 (Context& context, const VkFormat format,
 
        TestLog&                                                log                             = context.getTestContext().getLog();
 
-       const VkPhysicalDevice                  physicalDevice  = context.getPhysicalDevice();
        const CustomInstance                    instance                (createCustomInstanceWithExtension(context, "VK_KHR_get_physical_device_properties2"));
        const InstanceDriver&                   vki                             (instance.getDriver());
+       const VkPhysicalDevice                  physicalDevice  (chooseDevice(vki, instance, context.getTestContext().getCommandLine()));
 
        const VkImageCreateFlags                ycbcrFlags              = isYCbCrFormat(format) ? (VkImageCreateFlags)VK_IMAGE_CREATE_DISJOINT_BIT_KHR : (VkImageCreateFlags)0u;
        const VkImageUsageFlags                 allUsageFlags   = VK_IMAGE_USAGE_TRANSFER_SRC_BIT
@@ -5436,9 +5444,9 @@ tcu::TestStatus sparseImageFormatProperties2 (Context& context, const VkFormat f
 {
        TestLog&                                                log                             = context.getTestContext().getLog();
 
-       const VkPhysicalDevice                  physicalDevice  = context.getPhysicalDevice();
        const CustomInstance                    instance                (createCustomInstanceWithExtension(context, "VK_KHR_get_physical_device_properties2"));
        const InstanceDriver&                   vki                             (instance.getDriver());
+       const VkPhysicalDevice                  physicalDevice  (chooseDevice(vki, instance, context.getTestContext().getCommandLine()));
 
        const VkImageUsageFlags                 allUsageFlags   = VK_IMAGE_USAGE_TRANSFER_SRC_BIT
                                                                                                        | VK_IMAGE_USAGE_TRANSFER_DST_BIT