• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1From 7c9aa6f846f9f2f0d70b5c4a8e7c99a3d31b3b1a Mon Sep 17 00:00:00 2001
2From: Rob Clark <robdclark@chromium.org>
3Date: Sat, 27 Jan 2024 10:59:00 -0800
4Subject: [PATCH] Add missing subgroup support checks for linear derivate tests
5
6Some of these tests require subgroup ops support, but didn't bother
7checking whether they were supported.  Add this missing checks.
8---
9 .../vulkan/shaderrender/vktShaderRenderDerivateTests.cpp   | 7 +++++++
10 1 file changed, 7 insertions(+)
11
12diff --git a/external/vulkancts/modules/vulkan/shaderrender/vktShaderRenderDerivateTests.cpp b/external/vulkancts/modules/vulkan/shaderrender/vktShaderRenderDerivateTests.cpp
13index 3253505958..709044f2e8 100644
14--- a/external/vulkancts/modules/vulkan/shaderrender/vktShaderRenderDerivateTests.cpp
15+++ b/external/vulkancts/modules/vulkan/shaderrender/vktShaderRenderDerivateTests.cpp
16@@ -1145,6 +1145,13 @@ LinearDerivateCase::~LinearDerivateCase (void)
17 TestInstance* LinearDerivateCase::createInstance (Context& context) const
18 {
19 	DE_ASSERT(m_uniformSetup != DE_NULL);
20+	if (m_fragmentTmpl.find("gl_SubgroupInvocationID") != std::string::npos) {
21+		if (!subgroups::areQuadOperationsSupportedForStages(context, VK_SHADER_STAGE_FRAGMENT_BIT))
22+			throw tcu::NotSupportedError("test requires VK_SUBGROUP_FEATURE_QUAD_BIT");
23+
24+		if (subgroups::getSubgroupSize(context) < 4)
25+			throw tcu::NotSupportedError("test requires subgroupSize >= 4");
26+	}
27 	return new LinearDerivateCaseInstance(context, *m_uniformSetup, m_definitions, m_values);
28 }
29
30