Add uniform control flow extension to allowed list
authorGraeme Leese <gleese@broadcom.com>
Tue, 29 Jun 2021 16:03:53 +0000 (17:03 +0100)
committerAlexander Galazin <alexander.galazin@arm.com>
Wed, 30 Jun 2021 08:10:04 +0000 (10:10 +0200)
Components: Vulkan
Affects: dEQP-VK.info.device_extensions
Change-Id: I2fe13e778dd160ce0fd842ccddc9ed8f1d129772

external/vulkancts/framework/vulkan/vkDeviceExtensions.inl
external/vulkancts/framework/vulkan/vkMandatoryFeatures.inl
external/vulkancts/scripts/src/extensions_data.txt
external/vulkancts/scripts/src/mandatory_features.txt

index be4d4d2..46d64d7 100644 (file)
@@ -76,5 +76,6 @@ static const char* s_allowedDeviceKhrExtensions[] =
        "VK_EXT_color_write_enable",
        "VK_VALVE_mutable_descriptor_type",
        "VK_EXT_multi_draw",
+       "VK_KHR_shader_subgroup_uniform_control_flow",
 };
 
index 1001fc6..91c3655 100644 (file)
@@ -386,6 +386,16 @@ bool checkMandatoryFeatures(const vkt::Context& context)
                nextPtr  = &physicalDeviceShaderSubgroupExtendedTypesFeaturesKHR.pNext;
        }
 
+       vk::VkPhysicalDeviceShaderSubgroupUniformControlFlowFeaturesKHR physicalDeviceShaderSubgroupUniformControlFlowFeaturesKHR;
+       deMemset(&physicalDeviceShaderSubgroupUniformControlFlowFeaturesKHR, 0, sizeof(physicalDeviceShaderSubgroupUniformControlFlowFeaturesKHR));
+
+       if ( isExtensionSupported(deviceExtensions, RequiredExtension("VK_KHR_shader_subgroup_uniform_control_flow")) )
+       {
+               physicalDeviceShaderSubgroupUniformControlFlowFeaturesKHR.sType = getStructureType<VkPhysicalDeviceShaderSubgroupUniformControlFlowFeaturesKHR>();
+               *nextPtr = &physicalDeviceShaderSubgroupUniformControlFlowFeaturesKHR;
+               nextPtr  = &physicalDeviceShaderSubgroupUniformControlFlowFeaturesKHR.pNext;
+       }
+
        vk::VkPhysicalDeviceShaderTerminateInvocationFeaturesKHR physicalDeviceShaderTerminateInvocationFeaturesKHR;
        deMemset(&physicalDeviceShaderTerminateInvocationFeaturesKHR, 0, sizeof(physicalDeviceShaderTerminateInvocationFeaturesKHR));
 
@@ -1819,6 +1829,15 @@ bool checkMandatoryFeatures(const vkt::Context& context)
                }
        }
 
+       if ( isExtensionSupported(deviceExtensions, RequiredExtension("VK_KHR_shader_subgroup_uniform_control_flow")) )
+       {
+               if ( physicalDeviceShaderSubgroupUniformControlFlowFeaturesKHR.shaderSubgroupUniformControlFlow == VK_FALSE )
+               {
+                       log << tcu::TestLog::Message << "Mandatory feature shaderSubgroupUniformControlFlow not supported" << tcu::TestLog::EndMessage;
+                       result = false;
+               }
+       }
+
        return result;
 }
 
index 799287f..bd0c693 100644 (file)
@@ -95,3 +95,4 @@ VK_KHR_synchronization2                                               DEVICE
 VK_EXT_color_write_enable                                      DEVICE
 VK_VALVE_mutable_descriptor_type                       DEVICE
 VK_EXT_multi_draw                                                      DEVICE
+VK_KHR_shader_subgroup_uniform_control_flow    DEVICE
index 15cf54c..1f47b7d 100644 (file)
@@ -145,3 +145,4 @@ VkPhysicalDeviceShaderImageAtomicInt64FeaturesEXT                   FEATURES ( shaderImageInt64A
 VkPhysicalDeviceShaderAtomicFloatFeaturesEXT                           FEATURES ( shaderImageFloat32Atomics )                                                  REQUIREMENTS ( VK_EXT_shader_atomic_float physicalDeviceShaderAtomicFloatFeaturesEXT.sparseImageFloat32Atomics )
 VkPhysicalDeviceShaderAtomicFloatFeaturesEXT                           FEATURES ( shaderImageFloat32AtomicAdd )                                                REQUIREMENTS ( VK_EXT_shader_atomic_float physicalDeviceShaderAtomicFloatFeaturesEXT.sparseImageFloat32AtomicAdd )
 VkPhysicalDeviceMultiDrawFeaturesEXT                                           FEATURES ( multiDraw )                                                                                  REQUIREMENTS ( VK_EXT_multi_draw )
+VkPhysicalDeviceShaderSubgroupUniformControlFlowFeaturesKHR    FEATURES ( shaderSubgroupUniformControlFlow )                                   REQUIREMENTS ( VK_KHR_shader_subgroup_uniform_control_flow )
\ No newline at end of file