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, 13 Feb 2020 09:29:38 +0000 (04:29 -0500)
commitd00e989d81e541f6bb7e5e68ec2164346caa48d9
treeeb091b738cfdfa3d04023c8baca4f86261173f27
parent38fe3f81d69885ea4bd6744271fed63aef2e6dcd
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.

Added tests:

  dEQP-VK.subgroups.size_control.*
  dEQP-VK.subgroups.*.compute*_requiredsubgroupsize

Affected tests:

  dEQP-VK.subgroups.*

Components: Vulkan
VK-GL-CTS issue: 1864

Change-Id: Ia48deb9318420889754bd97545045f85b3c6fed7
24 files changed:
AndroidGen.mk
android/cts/master/vk-master.txt
external/vulkancts/modules/vulkan/subgroups/CMakeLists.txt
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/vktSubgroupsSizeControlTests.cpp [new file with mode: 0755]
external/vulkancts/modules/vulkan/subgroups/vktSubgroupsSizeControlTests.hpp [new file with mode: 0644]
external/vulkancts/modules/vulkan/subgroups/vktSubgroupsTests.cpp
external/vulkancts/modules/vulkan/subgroups/vktSubgroupsTestsUtils.cpp
external/vulkancts/modules/vulkan/subgroups/vktSubgroupsTestsUtils.hpp
external/vulkancts/modules/vulkan/subgroups/vktSubgroupsVoteTests.cpp
external/vulkancts/mustpass/master/vk-default-no-waivers.txt
external/vulkancts/mustpass/master/vk-default.txt