Check if stage is supported with subgroup size
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
diff --git a/external/vulkancts/modules/vulkan/reconvergence/vktReconvergenceTests.cpp b/external/vulkancts/modules/vulkan/reconvergence/vktReconvergenceTests.cpp
index 34dd15c..d637c38 100644
--- a/external/vulkancts/modules/vulkan/reconvergence/vktReconvergenceTests.cpp
+++ b/external/vulkancts/modules/vulkan/reconvergence/vktReconvergenceTests.cpp
@@ -1740,8 +1740,9 @@
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 =
{