Check if stage is supported with subgroup size
authorziga-lunarg <ziga@lunarg.com>
Sat, 17 Sep 2022 22:29:20 +0000 (00:29 +0200)
committerMatthew Netsch <quic_mnetsch@quicinc.com>
Thu, 6 Oct 2022 19:41:28 +0000 (19:41 +0000)
When using required subgroup size, shader stage used must be a bit in
VkPhysicalDeviceSubgroupSizeControlProperties requiredSubgroupSizeStages

Components: Vulkan

VK-GL-CTS issue: 3962

Affected tests:
dEQP-VK.reconvergence.*

Change-Id: Ie2109b6974c4da57f19e8d321e27ccbad1298c71

external/vulkancts/modules/vulkan/reconvergence/vktReconvergenceTests.cpp

index 34dd15c..d637c38 100644 (file)
@@ -1740,8 +1740,9 @@ tcu::TestStatus ReconvergenceTestInstance::iterate (void)
        flushAlloc(vk, device, buffers[1]->getAllocation());
        flushAlloc(vk, device, buffers[2]->getAllocation());
 
-       const VkBool32 computeFullSubgroups = subgroupProperties.subgroupSize <= 64 &&
-                                                                                 m_context.getSubgroupSizeControlFeaturesEXT().computeFullSubgroups;
+       const VkBool32 computeFullSubgroups     =       (subgroupProperties.subgroupSize <= 64) &&
+                                                                                       (m_context.getSubgroupSizeControlFeaturesEXT().computeFullSubgroups) &&
+                                                                                       (m_context.getSubgroupSizeControlPropertiesEXT().requiredSubgroupSizeStages & VK_SHADER_STAGE_COMPUTE_BIT);
 
        const VkPipelineShaderStageRequiredSubgroupSizeCreateInfoEXT subgroupSizeCreateInfo =
        {