Skip more basic subgroup tests requiring the ballot feature
authorJorg Wagner <jorg.wagner@arm.com>
Thu, 28 Sep 2017 10:41:14 +0000 (12:41 +0200)
committerJoerg Wagner <jorg.wagner@arm.com>
Mon, 2 Oct 2017 05:43:28 +0000 (01:43 -0400)
The check to skip certain tests happened at the wrong
level and missed several _framebuffer variants.

Affects:
dEQP-VK.subgroups.basic.*

Components: Vulkan

VK-GL-CTS issue: 719

Change-Id: Ib40382f88ece0a369215be1eb62ea4e2d6df80b7

external/vulkancts/modules/vulkan/subgroups/vktSubgroupsBasicTests.cpp

index ba540fe..2ec8698 100644 (file)
@@ -1100,6 +1100,14 @@ tcu::TestStatus test(Context& context, const CaseDefinition caseDef)
                                   " is a required capability!");
        }
 
+       if (OPTYPE_ELECT != caseDef.opType && VK_SHADER_STAGE_COMPUTE_BIT != caseDef.shaderStage)
+       {
+               if (!subgroups::isSubgroupFeatureSupportedForDevice(context, VK_SUBGROUP_FEATURE_BALLOT_BIT))
+               {
+                       TCU_THROW(NotSupportedError, "Subgroup basic operation non-compute stage test required that ballot operations are supported!");
+               }
+       }
+
        //Tests which don't use the SSBO
        if(caseDef.noSSBO)
        {
@@ -1178,14 +1186,6 @@ tcu::TestStatus test(Context& context, const CaseDefinition caseDef)
                        TCU_THROW(NotSupportedError, "Subgroup basic operation require that the fragment stage be able to write to SSBOs!");
                }
 
-               if (OPTYPE_ELECT != caseDef.opType)
-               {
-                       if (!subgroups::isSubgroupFeatureSupportedForDevice(context, VK_SUBGROUP_FEATURE_BALLOT_BIT))
-                       {
-                               TCU_THROW(NotSupportedError, "Subgroup basic operation fragment stage test required that ballot operations are supported!");
-                       }
-               }
-
                if (OPTYPE_ELECT == caseDef.opType)
                {
                        subgroups::SSBOData inputData;