Fix pNext chain in promoted features struct tests
authorziga-lunarg <ziga@lunarg.com>
Fri, 30 Dec 2022 21:12:21 +0000 (22:12 +0100)
committerPiotr Byszewski <piotr.byszewski@mobica.com>
Mon, 16 Jan 2023 12:24:02 +0000 (12:24 +0000)
Structures which were promoted must not be in the pNext chain if the
promoted structures is in the chain

Components: Vulkan

VK-GL-CTS issue: 4193

Affected tests:
dEQP-VK.api.info.get_physical_device_properties2.features.create_device_with_promoted*

Change-Id: Ided1d57bdb06b2ba1e8808a765df6129d4205eb9

external/vulkancts/framework/vulkan/generated/vulkan/vkDeviceFeatures2.inl
external/vulkancts/scripts/gen_framework.py

index 2a23813..393f3fe 100644 (file)
@@ -4385,9 +4385,7 @@ tcu::TestStatus createDeviceWithPromoted12Structures (Context& context)
                &queuePriority,                                                 //pQueuePriorities;
        };
 
-       VkPhysicalDeviceVulkan11Features deviceVulkan11Features = initVulkanStructure();
-       VkPhysicalDeviceVulkan12Features deviceVulkan12Features = initVulkanStructure(&deviceVulkan11Features);
-       VkPhysicalDevice8BitStorageFeatures device8BitStorageFeatures = initVulkanStructure(&deviceVulkan12Features);
+       VkPhysicalDevice8BitStorageFeatures device8BitStorageFeatures = initVulkanStructure();
        VkPhysicalDeviceShaderAtomicInt64Features deviceShaderAtomicInt64Features = initVulkanStructure(&device8BitStorageFeatures);
        VkPhysicalDeviceShaderFloat16Int8Features deviceShaderFloat16Int8Features = initVulkanStructure(&deviceShaderAtomicInt64Features);
        VkPhysicalDeviceDescriptorIndexingFeatures deviceDescriptorIndexingFeatures = initVulkanStructure(&deviceShaderFloat16Int8Features);
@@ -4453,8 +4451,7 @@ tcu::TestStatus createDeviceWithPromoted13Structures (Context& context)
                &queuePriority,                                                 //pQueuePriorities;
        };
 
-       VkPhysicalDeviceVulkan13Features deviceVulkan13Features = initVulkanStructure();
-       VkPhysicalDeviceShaderTerminateInvocationFeatures deviceShaderTerminateInvocationFeatures = initVulkanStructure(&deviceVulkan13Features);
+       VkPhysicalDeviceShaderTerminateInvocationFeatures deviceShaderTerminateInvocationFeatures = initVulkanStructure();
        VkPhysicalDeviceShaderDemoteToHelperInvocationFeatures deviceShaderDemoteToHelperInvocationFeatures = initVulkanStructure(&deviceShaderTerminateInvocationFeatures);
        VkPhysicalDevicePrivateDataFeatures devicePrivateDataFeatures = initVulkanStructure(&deviceShaderDemoteToHelperInvocationFeatures);
        VkPhysicalDevicePipelineCreationCacheControlFeatures devicePipelineCreationCacheControlFeatures = initVulkanStructure(&devicePrivateDataFeatures);
index 860c14a..852aa49 100755 (executable)
@@ -2134,9 +2134,9 @@ def writeDeviceFeatures2(api, filename):
                for requirement in feature.requirementsList:
                        for type in requirement.typeList:
                                matchedStructType = re.search(f'VkPhysicalDevice(\w+)Features', type, re.IGNORECASE)
-                               if matchedStructType:
+                               matchedCoreStructType = re.search(f'VkPhysicalDeviceVulkan(\d+)Features', type, re.IGNORECASE)
+                               if matchedStructType and not matchedCoreStructType:
                                        promotedFeatures.append(type)
-
                if promotedFeatures:
                        testName = "createDeviceWithPromoted" + feature.number.replace('.', '') + "Structures"
                        promotedTests.append(testName)