Add tests for VK_EXT_subgroup_size_control
authorSamuel Iglesias Gonsálvez <siglesias@igalia.com>
Thu, 25 Jul 2019 13:34:26 +0000 (15:34 +0200)
committerAlexander Galazin <Alexander.Galazin@arm.com>
Thu, 26 Nov 2020 17:02:45 +0000 (12:02 -0500)
commit3e8a37437dc9361c0d923619749722db6101ccc0
tree15c8e0b7341f135282a87433dcfa990cdb0e2995
parent00e745999e771df2a604bf24d85594a69ad441fe
Add tests for VK_EXT_subgroup_size_control

For compute and graphics pipelines:

* Check the required subgroup size set by the tests is honored by the
  driver (including for full subgroups and allow varying cases for
  computer shaders).
* Check that enabling allow varying subgroup size reports a subgroup
  size that falls within the limits of the driver.
* For compute pipeline, check that require full subgroups works as
  expected.

On top of that, added requiredSubgroupSize case for subgroup's compute
shader tests that check all possible required subgroup sizes announced
by the driver.

Also there is a test that checks subgroup size control limits sanity.

Affected tests:

  dEQP-VK.subgroups.*

Components: Vulkan
VK-GL-CTS issue: 1864

Change-Id: Ia48deb9318420889754bd97545045f85b3c6fed7
16 files changed:
external/vulkancts/modules/vulkan/subgroups/vktSubgroupsArithmeticTests.cpp
external/vulkancts/modules/vulkan/subgroups/vktSubgroupsBallotBroadcastTests.cpp
external/vulkancts/modules/vulkan/subgroups/vktSubgroupsBallotMasksTests.cpp
external/vulkancts/modules/vulkan/subgroups/vktSubgroupsBallotOtherTests.cpp
external/vulkancts/modules/vulkan/subgroups/vktSubgroupsBallotTests.cpp
external/vulkancts/modules/vulkan/subgroups/vktSubgroupsBasicTests.cpp
external/vulkancts/modules/vulkan/subgroups/vktSubgroupsBuiltinMaskVarTests.cpp
external/vulkancts/modules/vulkan/subgroups/vktSubgroupsBuiltinVarTests.cpp
external/vulkancts/modules/vulkan/subgroups/vktSubgroupsClusteredTests.cpp
external/vulkancts/modules/vulkan/subgroups/vktSubgroupsPartitionedTests.cpp
external/vulkancts/modules/vulkan/subgroups/vktSubgroupsQuadTests.cpp
external/vulkancts/modules/vulkan/subgroups/vktSubgroupsShapeTests.cpp
external/vulkancts/modules/vulkan/subgroups/vktSubgroupsShuffleTests.cpp
external/vulkancts/modules/vulkan/subgroups/vktSubgroupsTestsUtils.cpp
external/vulkancts/modules/vulkan/subgroups/vktSubgroupsTestsUtils.hpp
external/vulkancts/modules/vulkan/subgroups/vktSubgroupsVoteTests.cpp