Skip dEQP-VK.transform_feedback.fuzz.*.geometry if geometry not supported.
authorHyunjun Ko <zzoon@igalia.com>
Mon, 16 Mar 2020 08:16:23 +0000 (17:16 +0900)
committerAlexander Galazin <Alexander.Galazin@arm.com>
Thu, 19 Mar 2020 08:21:52 +0000 (04:21 -0400)
Affects: dEQP-VK.transform_feedback.fuzz.*.geometry

Components: Vulkan
VK-GL-CTS issue: 2267

Change-Id: Ifb0d29c049ccaa686132e2bb9c24fe7c797f5f6c

external/vulkancts/modules/vulkan/transform_feedback/vktTransformFeedbackFuzzLayoutCase.cpp

index f0f617d..23c659f 100644 (file)
@@ -1657,6 +1657,7 @@ InterfaceBlockCaseInstance::InterfaceBlockCaseInstance (Context&                                                  ctx,
        const deUint32                                                                                  componentsRequired                      = m_locationsRequired * componentsPerLocation;
        const InstanceInterface&                                                                vki                                                     = m_context.getInstanceInterface();
        const VkPhysicalDevice                                                                  physDevice                                      = m_context.getPhysicalDevice();
+       const VkPhysicalDeviceFeatures                                                  features                                        = getPhysicalDeviceFeatures(vki, physDevice);
        const VkPhysicalDeviceTransformFeedbackFeaturesEXT&             transformFeedbackFeatures       = m_context.getTransformFeedbackFeaturesEXT();
        const VkPhysicalDeviceLimits                                                    limits                                          = getPhysicalDeviceProperties(vki, physDevice).limits;
        VkPhysicalDeviceTransformFeedbackPropertiesEXT                  transformFeedbackProperties;
@@ -1690,6 +1691,9 @@ InterfaceBlockCaseInstance::InterfaceBlockCaseInstance (Context&                                                  ctx,
 
        if (m_testStageFlags == TEST_STAGE_GEOMETRY)
        {
+               if (!features.geometryShader)
+                       TCU_THROW(NotSupportedError, "Missing feature: geometryShader");
+
                if (limits.maxGeometryOutputComponents < componentsRequired)
                        TCU_THROW(NotSupportedError, "maxGeometryOutputComponents=" + de::toString(limits.maxGeometryOutputComponents) + " is less than required (" + de::toString(componentsRequired) + ")");
        }