Add required support check for IsHelperInvocationEXT test
authorJuha Heiskanen <juha.heiskanen@siru.fi>
Tue, 26 Apr 2022 06:29:06 +0000 (09:29 +0300)
committerMatthew Netsch <quic_mnetsch@quicinc.com>
Tue, 17 May 2022 03:26:13 +0000 (03:26 +0000)
IsHelperInvocationEXT test requires the GroupNonUniformQuad capability,
but it did not check for VK_SUBGROUP_FEATURE_QUAD_BIT in
VkPhysicalDeviceSubgroupProperties::supportedOperations. This commit
adds the support check for needed feature.

Components: Vulkan

VK-GL-CTS Issue: 3654

Affects: dEQP-VK.draw.renderpass.shader_invocation.helper_invocation

Change-Id: I3da8d72cf4172288830b61d71cc69baf84500277

external/vulkancts/modules/vulkan/draw/vktDrawShaderInvocationTests.cpp

index b996117..b8f3a69 100644 (file)
@@ -41,6 +41,11 @@ void checkHelperInvocationTestSupport(Context& context, std::string testName)
 {
        DE_UNREF(testName);
 
+       if ((context.getSubgroupProperties().supportedOperations & VK_SUBGROUP_FEATURE_QUAD_BIT) == 0u)
+       {
+               TCU_THROW(NotSupportedError, "Device does not support subgroup quad operations");
+       }
+
        if (!context.isDeviceFunctionalitySupported("VK_EXT_shader_demote_to_helper_invocation"))
        {
                TCU_THROW(NotSupportedError, "VK_EXT_shader_demote_to_helper_invocation not supported.");