Fix derivate dynamic tests to check shader stage support
authorJeff Leger <quic_jleger@quicinc.com>
Tue, 25 Jun 2019 21:19:33 +0000 (17:19 -0400)
committerAlexander Galazin <Alexander.Galazin@arm.com>
Wed, 3 Jul 2019 09:43:11 +0000 (05:43 -0400)
The tests used subgroup ballot operations but didnt
check if the fragment shader stage was supported. This lead
the application to run unsupported tests.

Affects:

dEQP-VK.glsl.derivate.*

Components: Vulkan

VK-GL-CTS issue: 1852

Change-Id: I43b80dc03d0944c407cd86b1df4ae0b9a633c680

external/vulkancts/modules/vulkan/shaderrender/vktShaderRenderDerivateTests.cpp

index 6cfd71c..555b798 100644 (file)
@@ -700,6 +700,9 @@ tcu::TestStatus TriangleDerivateCaseInstance::iterate (void)
 
                if ((subgroupProperties.supportedOperations & VK_SUBGROUP_FEATURE_BALLOT_BIT) == 0)
                        throw tcu::NotSupportedError("Derivative dynamic control flow tests require VK_SUBGROUP_FEATURE_BALLOT_BIT");
+
+               if ((subgroupProperties.supportedStages & VK_SHADER_STAGE_FRAGMENT_BIT) == 0)
+                       throw tcu::NotSupportedError("Derivative dynamic control flow tests require subgroup supported stage including VK_SHADER_STAGE_FRAGMENT_BIT");
        }
 
        setup();