Add missing subgroup support checks for linear derivate tests

Some of these tests require subgroup ops support, but didn't bother
checking whether they were supported.  Add this missing checks.

Components: Vulkan

Affects:
dEQP-VK.glsl.derivate.dfdx*

Change-Id: I2a27123d556757007563a11c7dd4370aa15859eb
(cherry picked from commit 4bbc98181f01b60286f11f2cea5940332f883154)
diff --git a/external/vulkancts/modules/vulkan/shaderrender/vktShaderRenderDerivateTests.cpp b/external/vulkancts/modules/vulkan/shaderrender/vktShaderRenderDerivateTests.cpp
index 555b798..ef18156 100644
--- a/external/vulkancts/modules/vulkan/shaderrender/vktShaderRenderDerivateTests.cpp
+++ b/external/vulkancts/modules/vulkan/shaderrender/vktShaderRenderDerivateTests.cpp
@@ -31,6 +31,7 @@
 
 #include "vktShaderRenderDerivateTests.hpp"
 #include "vktShaderRender.hpp"
+#include "subgroups/vktSubgroupsTestsUtils.hpp"
 #include "vkImageUtil.hpp"
 #include "vkQueryUtil.hpp"
 
@@ -1132,6 +1133,13 @@
 TestInstance* LinearDerivateCase::createInstance (Context& context) const
 {
 	DE_ASSERT(m_uniformSetup != DE_NULL);
+	if (m_fragmentTmpl.find("gl_SubgroupInvocationID") != std::string::npos) {
+		if (!subgroups::areQuadOperationsSupportedForStages(context, VK_SHADER_STAGE_FRAGMENT_BIT))
+			throw tcu::NotSupportedError("test requires VK_SUBGROUP_FEATURE_QUAD_BIT");
+
+		if (subgroups::getSubgroupSize(context) < 4)
+			throw tcu::NotSupportedError("test requires subgroupSize >= 4");
+	}
 	return new LinearDerivateCaseInstance(context, *m_uniformSetup, m_definitions, m_values);
 }