Fix dEQP-VK.subgroups.size_control.compute.required_subgroup_size_*_require_full_subg...
authorJason Ekstrand <jason.ekstrand@collabora.com>
Wed, 16 Mar 2022 22:33:17 +0000 (17:33 -0500)
committerJason Ekstrand <jason.ekstrand@collabora.com>
Wed, 16 Mar 2022 22:49:43 +0000 (17:49 -0500)
commit7d362114881ea52933ae4039a7ccaef13ebb5620
tree39a8a266b06414dd9bd31887186b56514c18e41c
parentac1cc9998bdf46d0dcab6dc05b4e4668833e8c93
Fix dEQP-VK.subgroups.size_control.compute.required_subgroup_size_*_require_full_subgroups

The tests were testing full subgroups with four workgroup sizes:

 - Nx1x1
 - 1xNx1
 - 1x1xN
 - getLocalSizes() which returns a maximally large workgroup size

However, the Vulkan spec says:

    "If a VkPipelineShaderStageRequiredSubgroupSizeCreateInfo structure
    is included in the pNext chain, and flags has the
    VK_PIPELINE_SHADER_STAGE_CREATE_REQUIRE_FULL_SUBGROUPS_BIT flag set,
    the local workgroup size in the X dimension of the pipeline must be
    a multiple of
    VkPipelineShaderStageRequiredSubgroupSizeCreateInfo::requiredSubgroupSize

This means that the middle two subgroup sizes are invalid for use with
VK_PIPELINE_SHADER_STAGE_CREATE_REQUIRE_FULL_SUBGROUPS_BIT.

Components: Vulkan

Affects:
 - dEQP-VK.subgroups.size_control.compute.required_subgroup_size_max_require_full_subgroups
 - dEQP-VK.subgroups.size_control.compute.required_subgroup_size_min_require_full_subgroups

Change-Id: I46f2547e1a50f78cbed6695f96448f463ca57230
external/vulkancts/modules/vulkan/subgroups/vktSubgroupsSizeControlTests.cpp