Skip dEQP-VK.transform_feedback.fuzz.*.geometry if geometry not supported.
Affects: dEQP-VK.transform_feedback.fuzz.*.geometry
Components: Vulkan
VK-GL-CTS issue: 2267
Change-Id: Ifb0d29c049ccaa686132e2bb9c24fe7c797f5f6c
diff --git a/external/vulkancts/modules/vulkan/transform_feedback/vktTransformFeedbackFuzzLayoutCase.cpp b/external/vulkancts/modules/vulkan/transform_feedback/vktTransformFeedbackFuzzLayoutCase.cpp
index f0f617d..23c659f 100644
--- a/external/vulkancts/modules/vulkan/transform_feedback/vktTransformFeedbackFuzzLayoutCase.cpp
+++ b/external/vulkancts/modules/vulkan/transform_feedback/vktTransformFeedbackFuzzLayoutCase.cpp
@@ -1657,6 +1657,7 @@
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 @@
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) + ")");
}