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