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)
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

index 11778c3..94b62d9 100644 (file)
@@ -362,6 +362,7 @@ LOCAL_SRC_FILES := \
        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 \
        external/vulkancts/modules/vulkan/subgroups/vktSubgroupsTests.cpp \
        external/vulkancts/modules/vulkan/subgroups/vktSubgroupsTestsUtils.cpp \
        external/vulkancts/modules/vulkan/subgroups/vktSubgroupsVoteTests.cpp \
index b43f789..8b205a0 100644 (file)
@@ -506029,9 +506029,13 @@ dEQP-VK.multiview.renderpass2.index.tesellation_shader.max_multi_view_view_count
 dEQP-VK.subgroups.builtin_var.graphics.subgroupsize
 dEQP-VK.subgroups.builtin_var.graphics.subgroupinvocationid
 dEQP-VK.subgroups.builtin_var.compute.subgroupsize_compute
+dEQP-VK.subgroups.builtin_var.compute.subgroupsize_compute_requiredsubgroupsize
 dEQP-VK.subgroups.builtin_var.compute.subgroupinvocationid_compute
+dEQP-VK.subgroups.builtin_var.compute.subgroupinvocationid_compute_requiredsubgroupsize
 dEQP-VK.subgroups.builtin_var.compute.numsubgroups
+dEQP-VK.subgroups.builtin_var.compute.numsubgroups_requiredsubgroupsize
 dEQP-VK.subgroups.builtin_var.compute.subgroupid
+dEQP-VK.subgroups.builtin_var.compute.subgroupid_requiredsubgroupsize
 dEQP-VK.subgroups.builtin_var.framebuffer.subgroupsize_vertex
 dEQP-VK.subgroups.builtin_var.framebuffer.subgroupsize_tess_eval
 dEQP-VK.subgroups.builtin_var.framebuffer.subgroupsize_tess_control
@@ -506046,10 +506050,15 @@ dEQP-VK.subgroups.builtin_mask_var.graphics.subgroupgtmask
 dEQP-VK.subgroups.builtin_mask_var.graphics.subgrouplemask
 dEQP-VK.subgroups.builtin_mask_var.graphics.subgroupltmask
 dEQP-VK.subgroups.builtin_mask_var.compute.subgroupeqmask
+dEQP-VK.subgroups.builtin_mask_var.compute.subgroupeqmask_requiredsubgroupsize
 dEQP-VK.subgroups.builtin_mask_var.compute.subgroupgemask
+dEQP-VK.subgroups.builtin_mask_var.compute.subgroupgemask_requiredsubgroupsize
 dEQP-VK.subgroups.builtin_mask_var.compute.subgroupgtmask
+dEQP-VK.subgroups.builtin_mask_var.compute.subgroupgtmask_requiredsubgroupsize
 dEQP-VK.subgroups.builtin_mask_var.compute.subgrouplemask
+dEQP-VK.subgroups.builtin_mask_var.compute.subgrouplemask_requiredsubgroupsize
 dEQP-VK.subgroups.builtin_mask_var.compute.subgroupltmask
+dEQP-VK.subgroups.builtin_mask_var.compute.subgroupltmask_requiredsubgroupsize
 dEQP-VK.subgroups.builtin_mask_var.framebuffer.subgroupeqmask_vertex
 dEQP-VK.subgroups.builtin_mask_var.framebuffer.subgroupeqmask_tess_eval
 dEQP-VK.subgroups.builtin_mask_var.framebuffer.subgroupeqmask_tess_control
@@ -506076,11 +506085,17 @@ dEQP-VK.subgroups.basic.graphics.subgroupmemorybarrier
 dEQP-VK.subgroups.basic.graphics.subgroupmemorybarrierbuffer
 dEQP-VK.subgroups.basic.graphics.subgroupmemorybarrierimage
 dEQP-VK.subgroups.basic.compute.subgroupelect
+dEQP-VK.subgroups.basic.compute.subgroupelect_requiredsubgroupsize
 dEQP-VK.subgroups.basic.compute.subgroupbarrier
+dEQP-VK.subgroups.basic.compute.subgroupbarrier_requiredsubgroupsize
 dEQP-VK.subgroups.basic.compute.subgroupmemorybarrier
+dEQP-VK.subgroups.basic.compute.subgroupmemorybarrier_requiredsubgroupsize
 dEQP-VK.subgroups.basic.compute.subgroupmemorybarrierbuffer
+dEQP-VK.subgroups.basic.compute.subgroupmemorybarrierbuffer_requiredsubgroupsize
 dEQP-VK.subgroups.basic.compute.subgroupmemorybarriershared
+dEQP-VK.subgroups.basic.compute.subgroupmemorybarriershared_requiredsubgroupsize
 dEQP-VK.subgroups.basic.compute.subgroupmemorybarrierimage
+dEQP-VK.subgroups.basic.compute.subgroupmemorybarrierimage_requiredsubgroupsize
 dEQP-VK.subgroups.basic.framebuffer.subgroupelect_vertex
 dEQP-VK.subgroups.basic.framebuffer.subgroupelect_tess_eval
 dEQP-VK.subgroups.basic.framebuffer.subgroupelect_tess_control
@@ -506156,55 +506171,105 @@ dEQP-VK.subgroups.vote.graphics.subgroupallequal_bvec2
 dEQP-VK.subgroups.vote.graphics.subgroupallequal_bvec3
 dEQP-VK.subgroups.vote.graphics.subgroupallequal_bvec4
 dEQP-VK.subgroups.vote.compute.subgroupallequal_int8_t
+dEQP-VK.subgroups.vote.compute.subgroupallequal_int8_t_requiredsubgroupsize
 dEQP-VK.subgroups.vote.compute.subgroupallequal_i8vec2
+dEQP-VK.subgroups.vote.compute.subgroupallequal_i8vec2_requiredsubgroupsize
 dEQP-VK.subgroups.vote.compute.subgroupallequal_i8vec3
+dEQP-VK.subgroups.vote.compute.subgroupallequal_i8vec3_requiredsubgroupsize
 dEQP-VK.subgroups.vote.compute.subgroupallequal_i8vec4
+dEQP-VK.subgroups.vote.compute.subgroupallequal_i8vec4_requiredsubgroupsize
 dEQP-VK.subgroups.vote.compute.subgroupallequal_uint8_t
+dEQP-VK.subgroups.vote.compute.subgroupallequal_uint8_t_requiredsubgroupsize
 dEQP-VK.subgroups.vote.compute.subgroupallequal_u8vec2
+dEQP-VK.subgroups.vote.compute.subgroupallequal_u8vec2_requiredsubgroupsize
 dEQP-VK.subgroups.vote.compute.subgroupallequal_u8vec3
+dEQP-VK.subgroups.vote.compute.subgroupallequal_u8vec3_requiredsubgroupsize
 dEQP-VK.subgroups.vote.compute.subgroupallequal_u8vec4
+dEQP-VK.subgroups.vote.compute.subgroupallequal_u8vec4_requiredsubgroupsize
 dEQP-VK.subgroups.vote.compute.subgroupallequal_int16_t
+dEQP-VK.subgroups.vote.compute.subgroupallequal_int16_t_requiredsubgroupsize
 dEQP-VK.subgroups.vote.compute.subgroupallequal_i16vec2
+dEQP-VK.subgroups.vote.compute.subgroupallequal_i16vec2_requiredsubgroupsize
 dEQP-VK.subgroups.vote.compute.subgroupallequal_i16vec3
+dEQP-VK.subgroups.vote.compute.subgroupallequal_i16vec3_requiredsubgroupsize
 dEQP-VK.subgroups.vote.compute.subgroupallequal_i16vec4
+dEQP-VK.subgroups.vote.compute.subgroupallequal_i16vec4_requiredsubgroupsize
 dEQP-VK.subgroups.vote.compute.subgroupallequal_uint16_t
+dEQP-VK.subgroups.vote.compute.subgroupallequal_uint16_t_requiredsubgroupsize
 dEQP-VK.subgroups.vote.compute.subgroupallequal_u16vec2
+dEQP-VK.subgroups.vote.compute.subgroupallequal_u16vec2_requiredsubgroupsize
 dEQP-VK.subgroups.vote.compute.subgroupallequal_u16vec3
+dEQP-VK.subgroups.vote.compute.subgroupallequal_u16vec3_requiredsubgroupsize
 dEQP-VK.subgroups.vote.compute.subgroupallequal_u16vec4
+dEQP-VK.subgroups.vote.compute.subgroupallequal_u16vec4_requiredsubgroupsize
 dEQP-VK.subgroups.vote.compute.subgroupallequal_int
+dEQP-VK.subgroups.vote.compute.subgroupallequal_int_requiredsubgroupsize
 dEQP-VK.subgroups.vote.compute.subgroupallequal_ivec2
+dEQP-VK.subgroups.vote.compute.subgroupallequal_ivec2_requiredsubgroupsize
 dEQP-VK.subgroups.vote.compute.subgroupallequal_ivec3
+dEQP-VK.subgroups.vote.compute.subgroupallequal_ivec3_requiredsubgroupsize
 dEQP-VK.subgroups.vote.compute.subgroupallequal_ivec4
+dEQP-VK.subgroups.vote.compute.subgroupallequal_ivec4_requiredsubgroupsize
 dEQP-VK.subgroups.vote.compute.subgroupall_uint
+dEQP-VK.subgroups.vote.compute.subgroupall_uint_requiredsubgroupsize
 dEQP-VK.subgroups.vote.compute.subgroupany_uint
+dEQP-VK.subgroups.vote.compute.subgroupany_uint_requiredsubgroupsize
 dEQP-VK.subgroups.vote.compute.subgroupallequal_uint
+dEQP-VK.subgroups.vote.compute.subgroupallequal_uint_requiredsubgroupsize
 dEQP-VK.subgroups.vote.compute.subgroupallequal_uvec2
+dEQP-VK.subgroups.vote.compute.subgroupallequal_uvec2_requiredsubgroupsize
 dEQP-VK.subgroups.vote.compute.subgroupallequal_uvec3
+dEQP-VK.subgroups.vote.compute.subgroupallequal_uvec3_requiredsubgroupsize
 dEQP-VK.subgroups.vote.compute.subgroupallequal_uvec4
+dEQP-VK.subgroups.vote.compute.subgroupallequal_uvec4_requiredsubgroupsize
 dEQP-VK.subgroups.vote.compute.subgroupallequal_int64_t
+dEQP-VK.subgroups.vote.compute.subgroupallequal_int64_t_requiredsubgroupsize
 dEQP-VK.subgroups.vote.compute.subgroupallequal_i64vec2
+dEQP-VK.subgroups.vote.compute.subgroupallequal_i64vec2_requiredsubgroupsize
 dEQP-VK.subgroups.vote.compute.subgroupallequal_i64vec3
+dEQP-VK.subgroups.vote.compute.subgroupallequal_i64vec3_requiredsubgroupsize
 dEQP-VK.subgroups.vote.compute.subgroupallequal_i64vec4
+dEQP-VK.subgroups.vote.compute.subgroupallequal_i64vec4_requiredsubgroupsize
 dEQP-VK.subgroups.vote.compute.subgroupallequal_uint64_t
+dEQP-VK.subgroups.vote.compute.subgroupallequal_uint64_t_requiredsubgroupsize
 dEQP-VK.subgroups.vote.compute.subgroupallequal_u64vec2
+dEQP-VK.subgroups.vote.compute.subgroupallequal_u64vec2_requiredsubgroupsize
 dEQP-VK.subgroups.vote.compute.subgroupallequal_u64vec3
+dEQP-VK.subgroups.vote.compute.subgroupallequal_u64vec3_requiredsubgroupsize
 dEQP-VK.subgroups.vote.compute.subgroupallequal_u64vec4
+dEQP-VK.subgroups.vote.compute.subgroupallequal_u64vec4_requiredsubgroupsize
 dEQP-VK.subgroups.vote.compute.subgroupallequal_float16_t
+dEQP-VK.subgroups.vote.compute.subgroupallequal_float16_t_requiredsubgroupsize
 dEQP-VK.subgroups.vote.compute.subgroupallequal_f16vec2
+dEQP-VK.subgroups.vote.compute.subgroupallequal_f16vec2_requiredsubgroupsize
 dEQP-VK.subgroups.vote.compute.subgroupallequal_f16vec3
+dEQP-VK.subgroups.vote.compute.subgroupallequal_f16vec3_requiredsubgroupsize
 dEQP-VK.subgroups.vote.compute.subgroupallequal_f16vec4
+dEQP-VK.subgroups.vote.compute.subgroupallequal_f16vec4_requiredsubgroupsize
 dEQP-VK.subgroups.vote.compute.subgroupallequal_float
+dEQP-VK.subgroups.vote.compute.subgroupallequal_float_requiredsubgroupsize
 dEQP-VK.subgroups.vote.compute.subgroupallequal_vec2
+dEQP-VK.subgroups.vote.compute.subgroupallequal_vec2_requiredsubgroupsize
 dEQP-VK.subgroups.vote.compute.subgroupallequal_vec3
+dEQP-VK.subgroups.vote.compute.subgroupallequal_vec3_requiredsubgroupsize
 dEQP-VK.subgroups.vote.compute.subgroupallequal_vec4
+dEQP-VK.subgroups.vote.compute.subgroupallequal_vec4_requiredsubgroupsize
 dEQP-VK.subgroups.vote.compute.subgroupallequal_double
+dEQP-VK.subgroups.vote.compute.subgroupallequal_double_requiredsubgroupsize
 dEQP-VK.subgroups.vote.compute.subgroupallequal_dvec2
+dEQP-VK.subgroups.vote.compute.subgroupallequal_dvec2_requiredsubgroupsize
 dEQP-VK.subgroups.vote.compute.subgroupallequal_dvec3
+dEQP-VK.subgroups.vote.compute.subgroupallequal_dvec3_requiredsubgroupsize
 dEQP-VK.subgroups.vote.compute.subgroupallequal_dvec4
+dEQP-VK.subgroups.vote.compute.subgroupallequal_dvec4_requiredsubgroupsize
 dEQP-VK.subgroups.vote.compute.subgroupallequal_bool
+dEQP-VK.subgroups.vote.compute.subgroupallequal_bool_requiredsubgroupsize
 dEQP-VK.subgroups.vote.compute.subgroupallequal_bvec2
+dEQP-VK.subgroups.vote.compute.subgroupallequal_bvec2_requiredsubgroupsize
 dEQP-VK.subgroups.vote.compute.subgroupallequal_bvec3
+dEQP-VK.subgroups.vote.compute.subgroupallequal_bvec3_requiredsubgroupsize
 dEQP-VK.subgroups.vote.compute.subgroupallequal_bvec4
+dEQP-VK.subgroups.vote.compute.subgroupallequal_bvec4_requiredsubgroupsize
 dEQP-VK.subgroups.vote.framebuffer.subgroupallequal_int8_t_vertex
 dEQP-VK.subgroups.vote.framebuffer.subgroupallequal_int8_t_tess_eval
 dEQP-VK.subgroups.vote.framebuffer.subgroupallequal_int8_t_tess_control
@@ -506459,8 +506524,11 @@ dEQP-VK.subgroups.vote.ext_shader_subgroup_vote.graphics.allinvocationsarb_uint
 dEQP-VK.subgroups.vote.ext_shader_subgroup_vote.graphics.anyinvocationarb_uint
 dEQP-VK.subgroups.vote.ext_shader_subgroup_vote.graphics.allinvocationsequalarb_bool
 dEQP-VK.subgroups.vote.ext_shader_subgroup_vote.compute.allinvocationsarb_uint
+dEQP-VK.subgroups.vote.ext_shader_subgroup_vote.compute.allinvocationsarb_uint_requiredsubgroupsize
 dEQP-VK.subgroups.vote.ext_shader_subgroup_vote.compute.anyinvocationarb_uint
+dEQP-VK.subgroups.vote.ext_shader_subgroup_vote.compute.anyinvocationarb_uint_requiredsubgroupsize
 dEQP-VK.subgroups.vote.ext_shader_subgroup_vote.compute.allinvocationsequalarb_bool
+dEQP-VK.subgroups.vote.ext_shader_subgroup_vote.compute.allinvocationsequalarb_bool_requiredsubgroupsize
 dEQP-VK.subgroups.vote.ext_shader_subgroup_vote.framebuffer.allinvocationsarb_uint_vertex
 dEQP-VK.subgroups.vote.ext_shader_subgroup_vote.framebuffer.allinvocationsarb_uint_tess_eval
 dEQP-VK.subgroups.vote.ext_shader_subgroup_vote.framebuffer.allinvocationsarb_uint_tess_control
@@ -506478,12 +506546,14 @@ dEQP-VK.subgroups.vote.ext_shader_subgroup_vote.frag_helper.anyinvocationarb_uin
 dEQP-VK.subgroups.vote.ext_shader_subgroup_vote.frag_helper.allinvocationsequalarb_bool_fragment
 dEQP-VK.subgroups.ballot.graphics.graphic
 dEQP-VK.subgroups.ballot.compute.compute
+dEQP-VK.subgroups.ballot.compute.compute_requiredsubgroupsize
 dEQP-VK.subgroups.ballot.framebuffer.tess_eval
 dEQP-VK.subgroups.ballot.framebuffer.tess_control
 dEQP-VK.subgroups.ballot.framebuffer.geometry
 dEQP-VK.subgroups.ballot.framebuffer.vertex
 dEQP-VK.subgroups.ballot.ext_shader_subgroup_ballot.graphics.graphic
 dEQP-VK.subgroups.ballot.ext_shader_subgroup_ballot.compute.compute
+dEQP-VK.subgroups.ballot.ext_shader_subgroup_ballot.compute.compute_requiredsubgroupsize
 dEQP-VK.subgroups.ballot.ext_shader_subgroup_ballot.framebuffer.tess_eval
 dEQP-VK.subgroups.ballot.ext_shader_subgroup_ballot.framebuffer.tess_control
 dEQP-VK.subgroups.ballot.ext_shader_subgroup_ballot.framebuffer.geometry
@@ -506633,149 +506703,293 @@ dEQP-VK.subgroups.ballot_broadcast.graphics.subgroupbroadcast_bvec4
 dEQP-VK.subgroups.ballot_broadcast.graphics.subgroupbroadcast_nonconst_bvec4
 dEQP-VK.subgroups.ballot_broadcast.graphics.subgroupbroadcastfirst_bvec4
 dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_int8_t
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_int8_t_requiredsubgroupsize
 dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_nonconst_int8_t
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_nonconst_int8_t_requiredsubgroupsize
 dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcastfirst_int8_t
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcastfirst_int8_t_requiredsubgroupsize
 dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_i8vec2
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_i8vec2_requiredsubgroupsize
 dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_nonconst_i8vec2
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_nonconst_i8vec2_requiredsubgroupsize
 dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcastfirst_i8vec2
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcastfirst_i8vec2_requiredsubgroupsize
 dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_i8vec3
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_i8vec3_requiredsubgroupsize
 dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_nonconst_i8vec3
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_nonconst_i8vec3_requiredsubgroupsize
 dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcastfirst_i8vec3
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcastfirst_i8vec3_requiredsubgroupsize
 dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_i8vec4
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_i8vec4_requiredsubgroupsize
 dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_nonconst_i8vec4
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_nonconst_i8vec4_requiredsubgroupsize
 dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcastfirst_i8vec4
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcastfirst_i8vec4_requiredsubgroupsize
 dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_uint8_t
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_uint8_t_requiredsubgroupsize
 dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_nonconst_uint8_t
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_nonconst_uint8_t_requiredsubgroupsize
 dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcastfirst_uint8_t
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcastfirst_uint8_t_requiredsubgroupsize
 dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_u8vec2
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_u8vec2_requiredsubgroupsize
 dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_nonconst_u8vec2
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_nonconst_u8vec2_requiredsubgroupsize
 dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcastfirst_u8vec2
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcastfirst_u8vec2_requiredsubgroupsize
 dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_u8vec3
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_u8vec3_requiredsubgroupsize
 dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_nonconst_u8vec3
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_nonconst_u8vec3_requiredsubgroupsize
 dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcastfirst_u8vec3
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcastfirst_u8vec3_requiredsubgroupsize
 dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_u8vec4
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_u8vec4_requiredsubgroupsize
 dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_nonconst_u8vec4
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_nonconst_u8vec4_requiredsubgroupsize
 dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcastfirst_u8vec4
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcastfirst_u8vec4_requiredsubgroupsize
 dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_int16_t
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_int16_t_requiredsubgroupsize
 dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_nonconst_int16_t
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_nonconst_int16_t_requiredsubgroupsize
 dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcastfirst_int16_t
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcastfirst_int16_t_requiredsubgroupsize
 dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_i16vec2
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_i16vec2_requiredsubgroupsize
 dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_nonconst_i16vec2
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_nonconst_i16vec2_requiredsubgroupsize
 dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcastfirst_i16vec2
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcastfirst_i16vec2_requiredsubgroupsize
 dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_i16vec3
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_i16vec3_requiredsubgroupsize
 dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_nonconst_i16vec3
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_nonconst_i16vec3_requiredsubgroupsize
 dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcastfirst_i16vec3
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcastfirst_i16vec3_requiredsubgroupsize
 dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_i16vec4
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_i16vec4_requiredsubgroupsize
 dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_nonconst_i16vec4
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_nonconst_i16vec4_requiredsubgroupsize
 dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcastfirst_i16vec4
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcastfirst_i16vec4_requiredsubgroupsize
 dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_uint16_t
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_uint16_t_requiredsubgroupsize
 dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_nonconst_uint16_t
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_nonconst_uint16_t_requiredsubgroupsize
 dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcastfirst_uint16_t
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcastfirst_uint16_t_requiredsubgroupsize
 dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_u16vec2
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_u16vec2_requiredsubgroupsize
 dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_nonconst_u16vec2
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_nonconst_u16vec2_requiredsubgroupsize
 dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcastfirst_u16vec2
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcastfirst_u16vec2_requiredsubgroupsize
 dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_u16vec3
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_u16vec3_requiredsubgroupsize
 dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_nonconst_u16vec3
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_nonconst_u16vec3_requiredsubgroupsize
 dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcastfirst_u16vec3
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcastfirst_u16vec3_requiredsubgroupsize
 dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_u16vec4
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_u16vec4_requiredsubgroupsize
 dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_nonconst_u16vec4
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_nonconst_u16vec4_requiredsubgroupsize
 dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcastfirst_u16vec4
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcastfirst_u16vec4_requiredsubgroupsize
 dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_int
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_int_requiredsubgroupsize
 dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_nonconst_int
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_nonconst_int_requiredsubgroupsize
 dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcastfirst_int
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcastfirst_int_requiredsubgroupsize
 dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_ivec2
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_ivec2_requiredsubgroupsize
 dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_nonconst_ivec2
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_nonconst_ivec2_requiredsubgroupsize
 dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcastfirst_ivec2
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcastfirst_ivec2_requiredsubgroupsize
 dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_ivec3
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_ivec3_requiredsubgroupsize
 dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_nonconst_ivec3
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_nonconst_ivec3_requiredsubgroupsize
 dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcastfirst_ivec3
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcastfirst_ivec3_requiredsubgroupsize
 dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_ivec4
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_ivec4_requiredsubgroupsize
 dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_nonconst_ivec4
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_nonconst_ivec4_requiredsubgroupsize
 dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcastfirst_ivec4
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcastfirst_ivec4_requiredsubgroupsize
 dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_uint
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_uint_requiredsubgroupsize
 dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_nonconst_uint
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_nonconst_uint_requiredsubgroupsize
 dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcastfirst_uint
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcastfirst_uint_requiredsubgroupsize
 dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_uvec2
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_uvec2_requiredsubgroupsize
 dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_nonconst_uvec2
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_nonconst_uvec2_requiredsubgroupsize
 dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcastfirst_uvec2
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcastfirst_uvec2_requiredsubgroupsize
 dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_uvec3
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_uvec3_requiredsubgroupsize
 dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_nonconst_uvec3
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_nonconst_uvec3_requiredsubgroupsize
 dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcastfirst_uvec3
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcastfirst_uvec3_requiredsubgroupsize
 dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_uvec4
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_uvec4_requiredsubgroupsize
 dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_nonconst_uvec4
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_nonconst_uvec4_requiredsubgroupsize
 dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcastfirst_uvec4
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcastfirst_uvec4_requiredsubgroupsize
 dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_int64_t
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_int64_t_requiredsubgroupsize
 dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_nonconst_int64_t
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_nonconst_int64_t_requiredsubgroupsize
 dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcastfirst_int64_t
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcastfirst_int64_t_requiredsubgroupsize
 dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_i64vec2
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_i64vec2_requiredsubgroupsize
 dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_nonconst_i64vec2
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_nonconst_i64vec2_requiredsubgroupsize
 dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcastfirst_i64vec2
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcastfirst_i64vec2_requiredsubgroupsize
 dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_i64vec3
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_i64vec3_requiredsubgroupsize
 dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_nonconst_i64vec3
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_nonconst_i64vec3_requiredsubgroupsize
 dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcastfirst_i64vec3
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcastfirst_i64vec3_requiredsubgroupsize
 dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_i64vec4
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_i64vec4_requiredsubgroupsize
 dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_nonconst_i64vec4
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_nonconst_i64vec4_requiredsubgroupsize
 dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcastfirst_i64vec4
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcastfirst_i64vec4_requiredsubgroupsize
 dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_uint64_t
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_uint64_t_requiredsubgroupsize
 dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_nonconst_uint64_t
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_nonconst_uint64_t_requiredsubgroupsize
 dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcastfirst_uint64_t
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcastfirst_uint64_t_requiredsubgroupsize
 dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_u64vec2
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_u64vec2_requiredsubgroupsize
 dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_nonconst_u64vec2
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_nonconst_u64vec2_requiredsubgroupsize
 dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcastfirst_u64vec2
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcastfirst_u64vec2_requiredsubgroupsize
 dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_u64vec3
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_u64vec3_requiredsubgroupsize
 dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_nonconst_u64vec3
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_nonconst_u64vec3_requiredsubgroupsize
 dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcastfirst_u64vec3
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcastfirst_u64vec3_requiredsubgroupsize
 dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_u64vec4
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_u64vec4_requiredsubgroupsize
 dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_nonconst_u64vec4
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_nonconst_u64vec4_requiredsubgroupsize
 dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcastfirst_u64vec4
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcastfirst_u64vec4_requiredsubgroupsize
 dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_float16_t
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_float16_t_requiredsubgroupsize
 dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_nonconst_float16_t
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_nonconst_float16_t_requiredsubgroupsize
 dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcastfirst_float16_t
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcastfirst_float16_t_requiredsubgroupsize
 dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_f16vec2
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_f16vec2_requiredsubgroupsize
 dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_nonconst_f16vec2
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_nonconst_f16vec2_requiredsubgroupsize
 dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcastfirst_f16vec2
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcastfirst_f16vec2_requiredsubgroupsize
 dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_f16vec3
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_f16vec3_requiredsubgroupsize
 dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_nonconst_f16vec3
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_nonconst_f16vec3_requiredsubgroupsize
 dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcastfirst_f16vec3
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcastfirst_f16vec3_requiredsubgroupsize
 dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_f16vec4
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_f16vec4_requiredsubgroupsize
 dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_nonconst_f16vec4
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_nonconst_f16vec4_requiredsubgroupsize
 dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcastfirst_f16vec4
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcastfirst_f16vec4_requiredsubgroupsize
 dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_float
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_float_requiredsubgroupsize
 dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_nonconst_float
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_nonconst_float_requiredsubgroupsize
 dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcastfirst_float
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcastfirst_float_requiredsubgroupsize
 dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_vec2
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_vec2_requiredsubgroupsize
 dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_nonconst_vec2
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_nonconst_vec2_requiredsubgroupsize
 dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcastfirst_vec2
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcastfirst_vec2_requiredsubgroupsize
 dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_vec3
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_vec3_requiredsubgroupsize
 dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_nonconst_vec3
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_nonconst_vec3_requiredsubgroupsize
 dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcastfirst_vec3
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcastfirst_vec3_requiredsubgroupsize
 dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_vec4
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_vec4_requiredsubgroupsize
 dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_nonconst_vec4
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_nonconst_vec4_requiredsubgroupsize
 dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcastfirst_vec4
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcastfirst_vec4_requiredsubgroupsize
 dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_double
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_double_requiredsubgroupsize
 dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_nonconst_double
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_nonconst_double_requiredsubgroupsize
 dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcastfirst_double
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcastfirst_double_requiredsubgroupsize
 dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_dvec2
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_dvec2_requiredsubgroupsize
 dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_nonconst_dvec2
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_nonconst_dvec2_requiredsubgroupsize
 dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcastfirst_dvec2
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcastfirst_dvec2_requiredsubgroupsize
 dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_dvec3
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_dvec3_requiredsubgroupsize
 dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_nonconst_dvec3
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_nonconst_dvec3_requiredsubgroupsize
 dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcastfirst_dvec3
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcastfirst_dvec3_requiredsubgroupsize
 dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_dvec4
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_dvec4_requiredsubgroupsize
 dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_nonconst_dvec4
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_nonconst_dvec4_requiredsubgroupsize
 dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcastfirst_dvec4
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcastfirst_dvec4_requiredsubgroupsize
 dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_bool
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_bool_requiredsubgroupsize
 dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_nonconst_bool
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_nonconst_bool_requiredsubgroupsize
 dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcastfirst_bool
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcastfirst_bool_requiredsubgroupsize
 dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_bvec2
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_bvec2_requiredsubgroupsize
 dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_nonconst_bvec2
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_nonconst_bvec2_requiredsubgroupsize
 dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcastfirst_bvec2
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcastfirst_bvec2_requiredsubgroupsize
 dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_bvec3
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_bvec3_requiredsubgroupsize
 dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_nonconst_bvec3
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_nonconst_bvec3_requiredsubgroupsize
 dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcastfirst_bvec3
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcastfirst_bvec3_requiredsubgroupsize
 dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_bvec4
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_bvec4_requiredsubgroupsize
 dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_nonconst_bvec4
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_nonconst_bvec4_requiredsubgroupsize
 dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcastfirst_bvec4
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcastfirst_bvec4_requiredsubgroupsize
 dEQP-VK.subgroups.ballot_broadcast.framebuffer.subgroupbroadcast_int8_tvertex
 dEQP-VK.subgroups.ballot_broadcast.framebuffer.subgroupbroadcast_int8_ttess_eval
 dEQP-VK.subgroups.ballot_broadcast.framebuffer.subgroupbroadcast_int8_ttess_control
@@ -507362,14 +507576,23 @@ dEQP-VK.subgroups.ballot_broadcast.ext_shader_subgroup_ballot.graphics.subgroupb
 dEQP-VK.subgroups.ballot_broadcast.ext_shader_subgroup_ballot.graphics.subgroupbroadcast_nonconst_float
 dEQP-VK.subgroups.ballot_broadcast.ext_shader_subgroup_ballot.graphics.subgroupbroadcastfirst_float
 dEQP-VK.subgroups.ballot_broadcast.ext_shader_subgroup_ballot.compute.subgroupbroadcast_int
+dEQP-VK.subgroups.ballot_broadcast.ext_shader_subgroup_ballot.compute.subgroupbroadcast_int_requiredsubgroupsize
 dEQP-VK.subgroups.ballot_broadcast.ext_shader_subgroup_ballot.compute.subgroupbroadcast_nonconst_int
+dEQP-VK.subgroups.ballot_broadcast.ext_shader_subgroup_ballot.compute.subgroupbroadcast_nonconst_int_requiredsubgroupsize
 dEQP-VK.subgroups.ballot_broadcast.ext_shader_subgroup_ballot.compute.subgroupbroadcastfirst_int
+dEQP-VK.subgroups.ballot_broadcast.ext_shader_subgroup_ballot.compute.subgroupbroadcastfirst_int_requiredsubgroupsize
 dEQP-VK.subgroups.ballot_broadcast.ext_shader_subgroup_ballot.compute.subgroupbroadcast_uint
+dEQP-VK.subgroups.ballot_broadcast.ext_shader_subgroup_ballot.compute.subgroupbroadcast_uint_requiredsubgroupsize
 dEQP-VK.subgroups.ballot_broadcast.ext_shader_subgroup_ballot.compute.subgroupbroadcast_nonconst_uint
+dEQP-VK.subgroups.ballot_broadcast.ext_shader_subgroup_ballot.compute.subgroupbroadcast_nonconst_uint_requiredsubgroupsize
 dEQP-VK.subgroups.ballot_broadcast.ext_shader_subgroup_ballot.compute.subgroupbroadcastfirst_uint
+dEQP-VK.subgroups.ballot_broadcast.ext_shader_subgroup_ballot.compute.subgroupbroadcastfirst_uint_requiredsubgroupsize
 dEQP-VK.subgroups.ballot_broadcast.ext_shader_subgroup_ballot.compute.subgroupbroadcast_float
+dEQP-VK.subgroups.ballot_broadcast.ext_shader_subgroup_ballot.compute.subgroupbroadcast_float_requiredsubgroupsize
 dEQP-VK.subgroups.ballot_broadcast.ext_shader_subgroup_ballot.compute.subgroupbroadcast_nonconst_float
+dEQP-VK.subgroups.ballot_broadcast.ext_shader_subgroup_ballot.compute.subgroupbroadcast_nonconst_float_requiredsubgroupsize
 dEQP-VK.subgroups.ballot_broadcast.ext_shader_subgroup_ballot.compute.subgroupbroadcastfirst_float
+dEQP-VK.subgroups.ballot_broadcast.ext_shader_subgroup_ballot.compute.subgroupbroadcastfirst_float_requiredsubgroupsize
 dEQP-VK.subgroups.ballot_broadcast.ext_shader_subgroup_ballot.framebuffer.subgroupbroadcast_intvertex
 dEQP-VK.subgroups.ballot_broadcast.ext_shader_subgroup_ballot.framebuffer.subgroupbroadcast_inttess_eval
 dEQP-VK.subgroups.ballot_broadcast.ext_shader_subgroup_ballot.framebuffer.subgroupbroadcast_inttess_control
@@ -507414,12 +507637,19 @@ dEQP-VK.subgroups.ballot_other.graphics.subgroupballotexclusivebitcount
 dEQP-VK.subgroups.ballot_other.graphics.subgroupballotfindlsb
 dEQP-VK.subgroups.ballot_other.graphics.subgroupballotfindmsb
 dEQP-VK.subgroups.ballot_other.compute.subgroupinverseballot
+dEQP-VK.subgroups.ballot_other.compute.subgroupinverseballot_requiredsubgroupSize
 dEQP-VK.subgroups.ballot_other.compute.subgroupballotbitextract
+dEQP-VK.subgroups.ballot_other.compute.subgroupballotbitextract_requiredsubgroupSize
 dEQP-VK.subgroups.ballot_other.compute.subgroupballotbitcount
+dEQP-VK.subgroups.ballot_other.compute.subgroupballotbitcount_requiredsubgroupSize
 dEQP-VK.subgroups.ballot_other.compute.subgroupballotinclusivebitcount
+dEQP-VK.subgroups.ballot_other.compute.subgroupballotinclusivebitcount_requiredsubgroupSize
 dEQP-VK.subgroups.ballot_other.compute.subgroupballotexclusivebitcount
+dEQP-VK.subgroups.ballot_other.compute.subgroupballotexclusivebitcount_requiredsubgroupSize
 dEQP-VK.subgroups.ballot_other.compute.subgroupballotfindlsb
+dEQP-VK.subgroups.ballot_other.compute.subgroupballotfindlsb_requiredsubgroupSize
 dEQP-VK.subgroups.ballot_other.compute.subgroupballotfindmsb
+dEQP-VK.subgroups.ballot_other.compute.subgroupballotfindmsb_requiredsubgroupSize
 dEQP-VK.subgroups.ballot_other.framebuffer.subgroupinverseballot_vertex
 dEQP-VK.subgroups.ballot_other.framebuffer.subgroupinverseballot_tess_eval
 dEQP-VK.subgroups.ballot_other.framebuffer.subgroupinverseballot_tess_control
@@ -508301,857 +508531,1709 @@ dEQP-VK.subgroups.arithmetic.graphics.subgroupexclusiveand_bvec4
 dEQP-VK.subgroups.arithmetic.graphics.subgroupexclusiveor_bvec4
 dEQP-VK.subgroups.arithmetic.graphics.subgroupexclusivexor_bvec4
 dEQP-VK.subgroups.arithmetic.compute.subgroupadd_int8_t
+dEQP-VK.subgroups.arithmetic.compute.subgroupadd_int8_t_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupmul_int8_t
+dEQP-VK.subgroups.arithmetic.compute.subgroupmul_int8_t_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupmin_int8_t
+dEQP-VK.subgroups.arithmetic.compute.subgroupmin_int8_t_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupmax_int8_t
+dEQP-VK.subgroups.arithmetic.compute.subgroupmax_int8_t_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupand_int8_t
+dEQP-VK.subgroups.arithmetic.compute.subgroupand_int8_t_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupor_int8_t
+dEQP-VK.subgroups.arithmetic.compute.subgroupor_int8_t_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupxor_int8_t
+dEQP-VK.subgroups.arithmetic.compute.subgroupxor_int8_t_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupinclusiveadd_int8_t
+dEQP-VK.subgroups.arithmetic.compute.subgroupinclusiveadd_int8_t_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivemul_int8_t
+dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivemul_int8_t_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivemin_int8_t
+dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivemin_int8_t_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivemax_int8_t
+dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivemax_int8_t_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupinclusiveand_int8_t
+dEQP-VK.subgroups.arithmetic.compute.subgroupinclusiveand_int8_t_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupinclusiveor_int8_t
+dEQP-VK.subgroups.arithmetic.compute.subgroupinclusiveor_int8_t_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivexor_int8_t
+dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivexor_int8_t_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupexclusiveadd_int8_t
+dEQP-VK.subgroups.arithmetic.compute.subgroupexclusiveadd_int8_t_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivemul_int8_t
+dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivemul_int8_t_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivemin_int8_t
+dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivemin_int8_t_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivemax_int8_t
+dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivemax_int8_t_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupexclusiveand_int8_t
+dEQP-VK.subgroups.arithmetic.compute.subgroupexclusiveand_int8_t_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupexclusiveor_int8_t
+dEQP-VK.subgroups.arithmetic.compute.subgroupexclusiveor_int8_t_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivexor_int8_t
+dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivexor_int8_t_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupadd_i8vec2
+dEQP-VK.subgroups.arithmetic.compute.subgroupadd_i8vec2_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupmul_i8vec2
+dEQP-VK.subgroups.arithmetic.compute.subgroupmul_i8vec2_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupmin_i8vec2
+dEQP-VK.subgroups.arithmetic.compute.subgroupmin_i8vec2_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupmax_i8vec2
+dEQP-VK.subgroups.arithmetic.compute.subgroupmax_i8vec2_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupand_i8vec2
+dEQP-VK.subgroups.arithmetic.compute.subgroupand_i8vec2_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupor_i8vec2
+dEQP-VK.subgroups.arithmetic.compute.subgroupor_i8vec2_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupxor_i8vec2
+dEQP-VK.subgroups.arithmetic.compute.subgroupxor_i8vec2_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupinclusiveadd_i8vec2
+dEQP-VK.subgroups.arithmetic.compute.subgroupinclusiveadd_i8vec2_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivemul_i8vec2
+dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivemul_i8vec2_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivemin_i8vec2
+dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivemin_i8vec2_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivemax_i8vec2
+dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivemax_i8vec2_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupinclusiveand_i8vec2
+dEQP-VK.subgroups.arithmetic.compute.subgroupinclusiveand_i8vec2_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupinclusiveor_i8vec2
+dEQP-VK.subgroups.arithmetic.compute.subgroupinclusiveor_i8vec2_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivexor_i8vec2
+dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivexor_i8vec2_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupexclusiveadd_i8vec2
+dEQP-VK.subgroups.arithmetic.compute.subgroupexclusiveadd_i8vec2_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivemul_i8vec2
+dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivemul_i8vec2_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivemin_i8vec2
+dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivemin_i8vec2_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivemax_i8vec2
+dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivemax_i8vec2_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupexclusiveand_i8vec2
+dEQP-VK.subgroups.arithmetic.compute.subgroupexclusiveand_i8vec2_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupexclusiveor_i8vec2
+dEQP-VK.subgroups.arithmetic.compute.subgroupexclusiveor_i8vec2_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivexor_i8vec2
+dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivexor_i8vec2_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupadd_i8vec3
+dEQP-VK.subgroups.arithmetic.compute.subgroupadd_i8vec3_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupmul_i8vec3
+dEQP-VK.subgroups.arithmetic.compute.subgroupmul_i8vec3_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupmin_i8vec3
+dEQP-VK.subgroups.arithmetic.compute.subgroupmin_i8vec3_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupmax_i8vec3
+dEQP-VK.subgroups.arithmetic.compute.subgroupmax_i8vec3_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupand_i8vec3
+dEQP-VK.subgroups.arithmetic.compute.subgroupand_i8vec3_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupor_i8vec3
+dEQP-VK.subgroups.arithmetic.compute.subgroupor_i8vec3_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupxor_i8vec3
+dEQP-VK.subgroups.arithmetic.compute.subgroupxor_i8vec3_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupinclusiveadd_i8vec3
+dEQP-VK.subgroups.arithmetic.compute.subgroupinclusiveadd_i8vec3_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivemul_i8vec3
+dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivemul_i8vec3_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivemin_i8vec3
+dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivemin_i8vec3_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivemax_i8vec3
+dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivemax_i8vec3_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupinclusiveand_i8vec3
+dEQP-VK.subgroups.arithmetic.compute.subgroupinclusiveand_i8vec3_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupinclusiveor_i8vec3
+dEQP-VK.subgroups.arithmetic.compute.subgroupinclusiveor_i8vec3_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivexor_i8vec3
+dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivexor_i8vec3_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupexclusiveadd_i8vec3
+dEQP-VK.subgroups.arithmetic.compute.subgroupexclusiveadd_i8vec3_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivemul_i8vec3
+dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivemul_i8vec3_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivemin_i8vec3
+dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivemin_i8vec3_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivemax_i8vec3
+dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivemax_i8vec3_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupexclusiveand_i8vec3
+dEQP-VK.subgroups.arithmetic.compute.subgroupexclusiveand_i8vec3_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupexclusiveor_i8vec3
+dEQP-VK.subgroups.arithmetic.compute.subgroupexclusiveor_i8vec3_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivexor_i8vec3
+dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivexor_i8vec3_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupadd_i8vec4
+dEQP-VK.subgroups.arithmetic.compute.subgroupadd_i8vec4_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupmul_i8vec4
+dEQP-VK.subgroups.arithmetic.compute.subgroupmul_i8vec4_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupmin_i8vec4
+dEQP-VK.subgroups.arithmetic.compute.subgroupmin_i8vec4_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupmax_i8vec4
+dEQP-VK.subgroups.arithmetic.compute.subgroupmax_i8vec4_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupand_i8vec4
+dEQP-VK.subgroups.arithmetic.compute.subgroupand_i8vec4_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupor_i8vec4
+dEQP-VK.subgroups.arithmetic.compute.subgroupor_i8vec4_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupxor_i8vec4
+dEQP-VK.subgroups.arithmetic.compute.subgroupxor_i8vec4_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupinclusiveadd_i8vec4
+dEQP-VK.subgroups.arithmetic.compute.subgroupinclusiveadd_i8vec4_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivemul_i8vec4
+dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivemul_i8vec4_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivemin_i8vec4
+dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivemin_i8vec4_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivemax_i8vec4
+dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivemax_i8vec4_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupinclusiveand_i8vec4
+dEQP-VK.subgroups.arithmetic.compute.subgroupinclusiveand_i8vec4_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupinclusiveor_i8vec4
+dEQP-VK.subgroups.arithmetic.compute.subgroupinclusiveor_i8vec4_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivexor_i8vec4
+dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivexor_i8vec4_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupexclusiveadd_i8vec4
+dEQP-VK.subgroups.arithmetic.compute.subgroupexclusiveadd_i8vec4_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivemul_i8vec4
+dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivemul_i8vec4_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivemin_i8vec4
+dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivemin_i8vec4_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivemax_i8vec4
+dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivemax_i8vec4_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupexclusiveand_i8vec4
+dEQP-VK.subgroups.arithmetic.compute.subgroupexclusiveand_i8vec4_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupexclusiveor_i8vec4
+dEQP-VK.subgroups.arithmetic.compute.subgroupexclusiveor_i8vec4_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivexor_i8vec4
+dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivexor_i8vec4_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupadd_uint8_t
+dEQP-VK.subgroups.arithmetic.compute.subgroupadd_uint8_t_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupmul_uint8_t
+dEQP-VK.subgroups.arithmetic.compute.subgroupmul_uint8_t_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupmin_uint8_t
+dEQP-VK.subgroups.arithmetic.compute.subgroupmin_uint8_t_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupmax_uint8_t
+dEQP-VK.subgroups.arithmetic.compute.subgroupmax_uint8_t_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupand_uint8_t
+dEQP-VK.subgroups.arithmetic.compute.subgroupand_uint8_t_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupor_uint8_t
+dEQP-VK.subgroups.arithmetic.compute.subgroupor_uint8_t_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupxor_uint8_t
+dEQP-VK.subgroups.arithmetic.compute.subgroupxor_uint8_t_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupinclusiveadd_uint8_t
+dEQP-VK.subgroups.arithmetic.compute.subgroupinclusiveadd_uint8_t_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivemul_uint8_t
+dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivemul_uint8_t_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivemin_uint8_t
+dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivemin_uint8_t_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivemax_uint8_t
+dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivemax_uint8_t_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupinclusiveand_uint8_t
+dEQP-VK.subgroups.arithmetic.compute.subgroupinclusiveand_uint8_t_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupinclusiveor_uint8_t
+dEQP-VK.subgroups.arithmetic.compute.subgroupinclusiveor_uint8_t_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivexor_uint8_t
+dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivexor_uint8_t_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupexclusiveadd_uint8_t
+dEQP-VK.subgroups.arithmetic.compute.subgroupexclusiveadd_uint8_t_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivemul_uint8_t
+dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivemul_uint8_t_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivemin_uint8_t
+dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivemin_uint8_t_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivemax_uint8_t
+dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivemax_uint8_t_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupexclusiveand_uint8_t
+dEQP-VK.subgroups.arithmetic.compute.subgroupexclusiveand_uint8_t_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupexclusiveor_uint8_t
+dEQP-VK.subgroups.arithmetic.compute.subgroupexclusiveor_uint8_t_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivexor_uint8_t
+dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivexor_uint8_t_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupadd_u8vec2
+dEQP-VK.subgroups.arithmetic.compute.subgroupadd_u8vec2_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupmul_u8vec2
+dEQP-VK.subgroups.arithmetic.compute.subgroupmul_u8vec2_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupmin_u8vec2
+dEQP-VK.subgroups.arithmetic.compute.subgroupmin_u8vec2_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupmax_u8vec2
+dEQP-VK.subgroups.arithmetic.compute.subgroupmax_u8vec2_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupand_u8vec2
+dEQP-VK.subgroups.arithmetic.compute.subgroupand_u8vec2_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupor_u8vec2
+dEQP-VK.subgroups.arithmetic.compute.subgroupor_u8vec2_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupxor_u8vec2
+dEQP-VK.subgroups.arithmetic.compute.subgroupxor_u8vec2_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupinclusiveadd_u8vec2
+dEQP-VK.subgroups.arithmetic.compute.subgroupinclusiveadd_u8vec2_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivemul_u8vec2
+dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivemul_u8vec2_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivemin_u8vec2
+dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivemin_u8vec2_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivemax_u8vec2
+dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivemax_u8vec2_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupinclusiveand_u8vec2
+dEQP-VK.subgroups.arithmetic.compute.subgroupinclusiveand_u8vec2_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupinclusiveor_u8vec2
+dEQP-VK.subgroups.arithmetic.compute.subgroupinclusiveor_u8vec2_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivexor_u8vec2
+dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivexor_u8vec2_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupexclusiveadd_u8vec2
+dEQP-VK.subgroups.arithmetic.compute.subgroupexclusiveadd_u8vec2_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivemul_u8vec2
+dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivemul_u8vec2_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivemin_u8vec2
+dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivemin_u8vec2_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivemax_u8vec2
+dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivemax_u8vec2_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupexclusiveand_u8vec2
+dEQP-VK.subgroups.arithmetic.compute.subgroupexclusiveand_u8vec2_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupexclusiveor_u8vec2
+dEQP-VK.subgroups.arithmetic.compute.subgroupexclusiveor_u8vec2_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivexor_u8vec2
+dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivexor_u8vec2_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupadd_u8vec3
+dEQP-VK.subgroups.arithmetic.compute.subgroupadd_u8vec3_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupmul_u8vec3
+dEQP-VK.subgroups.arithmetic.compute.subgroupmul_u8vec3_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupmin_u8vec3
+dEQP-VK.subgroups.arithmetic.compute.subgroupmin_u8vec3_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupmax_u8vec3
+dEQP-VK.subgroups.arithmetic.compute.subgroupmax_u8vec3_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupand_u8vec3
+dEQP-VK.subgroups.arithmetic.compute.subgroupand_u8vec3_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupor_u8vec3
+dEQP-VK.subgroups.arithmetic.compute.subgroupor_u8vec3_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupxor_u8vec3
+dEQP-VK.subgroups.arithmetic.compute.subgroupxor_u8vec3_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupinclusiveadd_u8vec3
+dEQP-VK.subgroups.arithmetic.compute.subgroupinclusiveadd_u8vec3_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivemul_u8vec3
+dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivemul_u8vec3_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivemin_u8vec3
+dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivemin_u8vec3_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivemax_u8vec3
+dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivemax_u8vec3_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupinclusiveand_u8vec3
+dEQP-VK.subgroups.arithmetic.compute.subgroupinclusiveand_u8vec3_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupinclusiveor_u8vec3
+dEQP-VK.subgroups.arithmetic.compute.subgroupinclusiveor_u8vec3_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivexor_u8vec3
+dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivexor_u8vec3_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupexclusiveadd_u8vec3
+dEQP-VK.subgroups.arithmetic.compute.subgroupexclusiveadd_u8vec3_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivemul_u8vec3
+dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivemul_u8vec3_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivemin_u8vec3
+dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivemin_u8vec3_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivemax_u8vec3
+dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivemax_u8vec3_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupexclusiveand_u8vec3
+dEQP-VK.subgroups.arithmetic.compute.subgroupexclusiveand_u8vec3_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupexclusiveor_u8vec3
+dEQP-VK.subgroups.arithmetic.compute.subgroupexclusiveor_u8vec3_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivexor_u8vec3
+dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivexor_u8vec3_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupadd_u8vec4
+dEQP-VK.subgroups.arithmetic.compute.subgroupadd_u8vec4_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupmul_u8vec4
+dEQP-VK.subgroups.arithmetic.compute.subgroupmul_u8vec4_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupmin_u8vec4
+dEQP-VK.subgroups.arithmetic.compute.subgroupmin_u8vec4_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupmax_u8vec4
+dEQP-VK.subgroups.arithmetic.compute.subgroupmax_u8vec4_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupand_u8vec4
+dEQP-VK.subgroups.arithmetic.compute.subgroupand_u8vec4_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupor_u8vec4
+dEQP-VK.subgroups.arithmetic.compute.subgroupor_u8vec4_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupxor_u8vec4
+dEQP-VK.subgroups.arithmetic.compute.subgroupxor_u8vec4_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupinclusiveadd_u8vec4
+dEQP-VK.subgroups.arithmetic.compute.subgroupinclusiveadd_u8vec4_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivemul_u8vec4
+dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivemul_u8vec4_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivemin_u8vec4
+dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivemin_u8vec4_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivemax_u8vec4
+dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivemax_u8vec4_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupinclusiveand_u8vec4
+dEQP-VK.subgroups.arithmetic.compute.subgroupinclusiveand_u8vec4_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupinclusiveor_u8vec4
+dEQP-VK.subgroups.arithmetic.compute.subgroupinclusiveor_u8vec4_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivexor_u8vec4
+dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivexor_u8vec4_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupexclusiveadd_u8vec4
+dEQP-VK.subgroups.arithmetic.compute.subgroupexclusiveadd_u8vec4_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivemul_u8vec4
+dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivemul_u8vec4_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivemin_u8vec4
+dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivemin_u8vec4_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivemax_u8vec4
+dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivemax_u8vec4_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupexclusiveand_u8vec4
+dEQP-VK.subgroups.arithmetic.compute.subgroupexclusiveand_u8vec4_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupexclusiveor_u8vec4
+dEQP-VK.subgroups.arithmetic.compute.subgroupexclusiveor_u8vec4_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivexor_u8vec4
+dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivexor_u8vec4_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupadd_int16_t
+dEQP-VK.subgroups.arithmetic.compute.subgroupadd_int16_t_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupmul_int16_t
+dEQP-VK.subgroups.arithmetic.compute.subgroupmul_int16_t_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupmin_int16_t
+dEQP-VK.subgroups.arithmetic.compute.subgroupmin_int16_t_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupmax_int16_t
+dEQP-VK.subgroups.arithmetic.compute.subgroupmax_int16_t_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupand_int16_t
+dEQP-VK.subgroups.arithmetic.compute.subgroupand_int16_t_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupor_int16_t
+dEQP-VK.subgroups.arithmetic.compute.subgroupor_int16_t_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupxor_int16_t
+dEQP-VK.subgroups.arithmetic.compute.subgroupxor_int16_t_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupinclusiveadd_int16_t
+dEQP-VK.subgroups.arithmetic.compute.subgroupinclusiveadd_int16_t_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivemul_int16_t
+dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivemul_int16_t_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivemin_int16_t
+dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivemin_int16_t_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivemax_int16_t
+dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivemax_int16_t_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupinclusiveand_int16_t
+dEQP-VK.subgroups.arithmetic.compute.subgroupinclusiveand_int16_t_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupinclusiveor_int16_t
+dEQP-VK.subgroups.arithmetic.compute.subgroupinclusiveor_int16_t_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivexor_int16_t
+dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivexor_int16_t_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupexclusiveadd_int16_t
+dEQP-VK.subgroups.arithmetic.compute.subgroupexclusiveadd_int16_t_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivemul_int16_t
+dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivemul_int16_t_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivemin_int16_t
+dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivemin_int16_t_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivemax_int16_t
+dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivemax_int16_t_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupexclusiveand_int16_t
+dEQP-VK.subgroups.arithmetic.compute.subgroupexclusiveand_int16_t_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupexclusiveor_int16_t
+dEQP-VK.subgroups.arithmetic.compute.subgroupexclusiveor_int16_t_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivexor_int16_t
+dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivexor_int16_t_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupadd_i16vec2
+dEQP-VK.subgroups.arithmetic.compute.subgroupadd_i16vec2_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupmul_i16vec2
+dEQP-VK.subgroups.arithmetic.compute.subgroupmul_i16vec2_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupmin_i16vec2
+dEQP-VK.subgroups.arithmetic.compute.subgroupmin_i16vec2_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupmax_i16vec2
+dEQP-VK.subgroups.arithmetic.compute.subgroupmax_i16vec2_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupand_i16vec2
+dEQP-VK.subgroups.arithmetic.compute.subgroupand_i16vec2_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupor_i16vec2
+dEQP-VK.subgroups.arithmetic.compute.subgroupor_i16vec2_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupxor_i16vec2
+dEQP-VK.subgroups.arithmetic.compute.subgroupxor_i16vec2_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupinclusiveadd_i16vec2
+dEQP-VK.subgroups.arithmetic.compute.subgroupinclusiveadd_i16vec2_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivemul_i16vec2
+dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivemul_i16vec2_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivemin_i16vec2
+dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivemin_i16vec2_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivemax_i16vec2
+dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivemax_i16vec2_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupinclusiveand_i16vec2
+dEQP-VK.subgroups.arithmetic.compute.subgroupinclusiveand_i16vec2_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupinclusiveor_i16vec2
+dEQP-VK.subgroups.arithmetic.compute.subgroupinclusiveor_i16vec2_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivexor_i16vec2
+dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivexor_i16vec2_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupexclusiveadd_i16vec2
+dEQP-VK.subgroups.arithmetic.compute.subgroupexclusiveadd_i16vec2_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivemul_i16vec2
+dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivemul_i16vec2_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivemin_i16vec2
+dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivemin_i16vec2_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivemax_i16vec2
+dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivemax_i16vec2_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupexclusiveand_i16vec2
+dEQP-VK.subgroups.arithmetic.compute.subgroupexclusiveand_i16vec2_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupexclusiveor_i16vec2
+dEQP-VK.subgroups.arithmetic.compute.subgroupexclusiveor_i16vec2_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivexor_i16vec2
+dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivexor_i16vec2_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupadd_i16vec3
+dEQP-VK.subgroups.arithmetic.compute.subgroupadd_i16vec3_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupmul_i16vec3
+dEQP-VK.subgroups.arithmetic.compute.subgroupmul_i16vec3_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupmin_i16vec3
+dEQP-VK.subgroups.arithmetic.compute.subgroupmin_i16vec3_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupmax_i16vec3
+dEQP-VK.subgroups.arithmetic.compute.subgroupmax_i16vec3_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupand_i16vec3
+dEQP-VK.subgroups.arithmetic.compute.subgroupand_i16vec3_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupor_i16vec3
+dEQP-VK.subgroups.arithmetic.compute.subgroupor_i16vec3_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupxor_i16vec3
+dEQP-VK.subgroups.arithmetic.compute.subgroupxor_i16vec3_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupinclusiveadd_i16vec3
+dEQP-VK.subgroups.arithmetic.compute.subgroupinclusiveadd_i16vec3_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivemul_i16vec3
+dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivemul_i16vec3_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivemin_i16vec3
+dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivemin_i16vec3_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivemax_i16vec3
+dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivemax_i16vec3_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupinclusiveand_i16vec3
+dEQP-VK.subgroups.arithmetic.compute.subgroupinclusiveand_i16vec3_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupinclusiveor_i16vec3
+dEQP-VK.subgroups.arithmetic.compute.subgroupinclusiveor_i16vec3_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivexor_i16vec3
+dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivexor_i16vec3_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupexclusiveadd_i16vec3
+dEQP-VK.subgroups.arithmetic.compute.subgroupexclusiveadd_i16vec3_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivemul_i16vec3
+dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivemul_i16vec3_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivemin_i16vec3
+dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivemin_i16vec3_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivemax_i16vec3
+dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivemax_i16vec3_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupexclusiveand_i16vec3
+dEQP-VK.subgroups.arithmetic.compute.subgroupexclusiveand_i16vec3_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupexclusiveor_i16vec3
+dEQP-VK.subgroups.arithmetic.compute.subgroupexclusiveor_i16vec3_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivexor_i16vec3
+dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivexor_i16vec3_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupadd_i16vec4
+dEQP-VK.subgroups.arithmetic.compute.subgroupadd_i16vec4_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupmul_i16vec4
+dEQP-VK.subgroups.arithmetic.compute.subgroupmul_i16vec4_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupmin_i16vec4
+dEQP-VK.subgroups.arithmetic.compute.subgroupmin_i16vec4_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupmax_i16vec4
+dEQP-VK.subgroups.arithmetic.compute.subgroupmax_i16vec4_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupand_i16vec4
+dEQP-VK.subgroups.arithmetic.compute.subgroupand_i16vec4_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupor_i16vec4
+dEQP-VK.subgroups.arithmetic.compute.subgroupor_i16vec4_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupxor_i16vec4
+dEQP-VK.subgroups.arithmetic.compute.subgroupxor_i16vec4_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupinclusiveadd_i16vec4
+dEQP-VK.subgroups.arithmetic.compute.subgroupinclusiveadd_i16vec4_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivemul_i16vec4
+dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivemul_i16vec4_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivemin_i16vec4
+dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivemin_i16vec4_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivemax_i16vec4
+dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivemax_i16vec4_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupinclusiveand_i16vec4
+dEQP-VK.subgroups.arithmetic.compute.subgroupinclusiveand_i16vec4_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupinclusiveor_i16vec4
+dEQP-VK.subgroups.arithmetic.compute.subgroupinclusiveor_i16vec4_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivexor_i16vec4
+dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivexor_i16vec4_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupexclusiveadd_i16vec4
+dEQP-VK.subgroups.arithmetic.compute.subgroupexclusiveadd_i16vec4_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivemul_i16vec4
+dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivemul_i16vec4_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivemin_i16vec4
+dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivemin_i16vec4_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivemax_i16vec4
+dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivemax_i16vec4_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupexclusiveand_i16vec4
+dEQP-VK.subgroups.arithmetic.compute.subgroupexclusiveand_i16vec4_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupexclusiveor_i16vec4
+dEQP-VK.subgroups.arithmetic.compute.subgroupexclusiveor_i16vec4_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivexor_i16vec4
+dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivexor_i16vec4_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupadd_uint16_t
+dEQP-VK.subgroups.arithmetic.compute.subgroupadd_uint16_t_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupmul_uint16_t
+dEQP-VK.subgroups.arithmetic.compute.subgroupmul_uint16_t_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupmin_uint16_t
+dEQP-VK.subgroups.arithmetic.compute.subgroupmin_uint16_t_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupmax_uint16_t
+dEQP-VK.subgroups.arithmetic.compute.subgroupmax_uint16_t_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupand_uint16_t
+dEQP-VK.subgroups.arithmetic.compute.subgroupand_uint16_t_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupor_uint16_t
+dEQP-VK.subgroups.arithmetic.compute.subgroupor_uint16_t_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupxor_uint16_t
+dEQP-VK.subgroups.arithmetic.compute.subgroupxor_uint16_t_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupinclusiveadd_uint16_t
+dEQP-VK.subgroups.arithmetic.compute.subgroupinclusiveadd_uint16_t_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivemul_uint16_t
+dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivemul_uint16_t_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivemin_uint16_t
+dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivemin_uint16_t_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivemax_uint16_t
+dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivemax_uint16_t_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupinclusiveand_uint16_t
+dEQP-VK.subgroups.arithmetic.compute.subgroupinclusiveand_uint16_t_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupinclusiveor_uint16_t
+dEQP-VK.subgroups.arithmetic.compute.subgroupinclusiveor_uint16_t_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivexor_uint16_t
+dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivexor_uint16_t_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupexclusiveadd_uint16_t
+dEQP-VK.subgroups.arithmetic.compute.subgroupexclusiveadd_uint16_t_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivemul_uint16_t
+dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivemul_uint16_t_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivemin_uint16_t
+dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivemin_uint16_t_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivemax_uint16_t
+dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivemax_uint16_t_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupexclusiveand_uint16_t
+dEQP-VK.subgroups.arithmetic.compute.subgroupexclusiveand_uint16_t_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupexclusiveor_uint16_t
+dEQP-VK.subgroups.arithmetic.compute.subgroupexclusiveor_uint16_t_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivexor_uint16_t
+dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivexor_uint16_t_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupadd_u16vec2
+dEQP-VK.subgroups.arithmetic.compute.subgroupadd_u16vec2_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupmul_u16vec2
+dEQP-VK.subgroups.arithmetic.compute.subgroupmul_u16vec2_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupmin_u16vec2
+dEQP-VK.subgroups.arithmetic.compute.subgroupmin_u16vec2_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupmax_u16vec2
+dEQP-VK.subgroups.arithmetic.compute.subgroupmax_u16vec2_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupand_u16vec2
+dEQP-VK.subgroups.arithmetic.compute.subgroupand_u16vec2_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupor_u16vec2
+dEQP-VK.subgroups.arithmetic.compute.subgroupor_u16vec2_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupxor_u16vec2
+dEQP-VK.subgroups.arithmetic.compute.subgroupxor_u16vec2_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupinclusiveadd_u16vec2
+dEQP-VK.subgroups.arithmetic.compute.subgroupinclusiveadd_u16vec2_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivemul_u16vec2
+dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivemul_u16vec2_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivemin_u16vec2
+dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivemin_u16vec2_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivemax_u16vec2
+dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivemax_u16vec2_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupinclusiveand_u16vec2
+dEQP-VK.subgroups.arithmetic.compute.subgroupinclusiveand_u16vec2_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupinclusiveor_u16vec2
+dEQP-VK.subgroups.arithmetic.compute.subgroupinclusiveor_u16vec2_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivexor_u16vec2
+dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivexor_u16vec2_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupexclusiveadd_u16vec2
+dEQP-VK.subgroups.arithmetic.compute.subgroupexclusiveadd_u16vec2_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivemul_u16vec2
+dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivemul_u16vec2_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivemin_u16vec2
+dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivemin_u16vec2_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivemax_u16vec2
+dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivemax_u16vec2_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupexclusiveand_u16vec2
+dEQP-VK.subgroups.arithmetic.compute.subgroupexclusiveand_u16vec2_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupexclusiveor_u16vec2
+dEQP-VK.subgroups.arithmetic.compute.subgroupexclusiveor_u16vec2_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivexor_u16vec2
+dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivexor_u16vec2_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupadd_u16vec3
+dEQP-VK.subgroups.arithmetic.compute.subgroupadd_u16vec3_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupmul_u16vec3
+dEQP-VK.subgroups.arithmetic.compute.subgroupmul_u16vec3_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupmin_u16vec3
+dEQP-VK.subgroups.arithmetic.compute.subgroupmin_u16vec3_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupmax_u16vec3
+dEQP-VK.subgroups.arithmetic.compute.subgroupmax_u16vec3_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupand_u16vec3
+dEQP-VK.subgroups.arithmetic.compute.subgroupand_u16vec3_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupor_u16vec3
+dEQP-VK.subgroups.arithmetic.compute.subgroupor_u16vec3_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupxor_u16vec3
+dEQP-VK.subgroups.arithmetic.compute.subgroupxor_u16vec3_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupinclusiveadd_u16vec3
+dEQP-VK.subgroups.arithmetic.compute.subgroupinclusiveadd_u16vec3_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivemul_u16vec3
+dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivemul_u16vec3_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivemin_u16vec3
+dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivemin_u16vec3_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivemax_u16vec3
+dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivemax_u16vec3_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupinclusiveand_u16vec3
+dEQP-VK.subgroups.arithmetic.compute.subgroupinclusiveand_u16vec3_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupinclusiveor_u16vec3
+dEQP-VK.subgroups.arithmetic.compute.subgroupinclusiveor_u16vec3_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivexor_u16vec3
+dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivexor_u16vec3_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupexclusiveadd_u16vec3
+dEQP-VK.subgroups.arithmetic.compute.subgroupexclusiveadd_u16vec3_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivemul_u16vec3
+dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivemul_u16vec3_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivemin_u16vec3
+dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivemin_u16vec3_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivemax_u16vec3
+dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivemax_u16vec3_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupexclusiveand_u16vec3
+dEQP-VK.subgroups.arithmetic.compute.subgroupexclusiveand_u16vec3_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupexclusiveor_u16vec3
+dEQP-VK.subgroups.arithmetic.compute.subgroupexclusiveor_u16vec3_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivexor_u16vec3
+dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivexor_u16vec3_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupadd_u16vec4
+dEQP-VK.subgroups.arithmetic.compute.subgroupadd_u16vec4_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupmul_u16vec4
+dEQP-VK.subgroups.arithmetic.compute.subgroupmul_u16vec4_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupmin_u16vec4
+dEQP-VK.subgroups.arithmetic.compute.subgroupmin_u16vec4_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupmax_u16vec4
+dEQP-VK.subgroups.arithmetic.compute.subgroupmax_u16vec4_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupand_u16vec4
+dEQP-VK.subgroups.arithmetic.compute.subgroupand_u16vec4_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupor_u16vec4
+dEQP-VK.subgroups.arithmetic.compute.subgroupor_u16vec4_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupxor_u16vec4
+dEQP-VK.subgroups.arithmetic.compute.subgroupxor_u16vec4_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupinclusiveadd_u16vec4
+dEQP-VK.subgroups.arithmetic.compute.subgroupinclusiveadd_u16vec4_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivemul_u16vec4
+dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivemul_u16vec4_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivemin_u16vec4
+dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivemin_u16vec4_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivemax_u16vec4
+dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivemax_u16vec4_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupinclusiveand_u16vec4
+dEQP-VK.subgroups.arithmetic.compute.subgroupinclusiveand_u16vec4_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupinclusiveor_u16vec4
+dEQP-VK.subgroups.arithmetic.compute.subgroupinclusiveor_u16vec4_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivexor_u16vec4
+dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivexor_u16vec4_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupexclusiveadd_u16vec4
+dEQP-VK.subgroups.arithmetic.compute.subgroupexclusiveadd_u16vec4_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivemul_u16vec4
+dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivemul_u16vec4_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivemin_u16vec4
+dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivemin_u16vec4_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivemax_u16vec4
+dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivemax_u16vec4_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupexclusiveand_u16vec4
+dEQP-VK.subgroups.arithmetic.compute.subgroupexclusiveand_u16vec4_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupexclusiveor_u16vec4
+dEQP-VK.subgroups.arithmetic.compute.subgroupexclusiveor_u16vec4_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivexor_u16vec4
+dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivexor_u16vec4_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupadd_int
+dEQP-VK.subgroups.arithmetic.compute.subgroupadd_int_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupmul_int
+dEQP-VK.subgroups.arithmetic.compute.subgroupmul_int_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupmin_int
+dEQP-VK.subgroups.arithmetic.compute.subgroupmin_int_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupmax_int
+dEQP-VK.subgroups.arithmetic.compute.subgroupmax_int_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupand_int
+dEQP-VK.subgroups.arithmetic.compute.subgroupand_int_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupor_int
+dEQP-VK.subgroups.arithmetic.compute.subgroupor_int_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupxor_int
+dEQP-VK.subgroups.arithmetic.compute.subgroupxor_int_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupinclusiveadd_int
+dEQP-VK.subgroups.arithmetic.compute.subgroupinclusiveadd_int_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivemul_int
+dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivemul_int_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivemin_int
+dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivemin_int_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivemax_int
+dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivemax_int_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupinclusiveand_int
+dEQP-VK.subgroups.arithmetic.compute.subgroupinclusiveand_int_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupinclusiveor_int
+dEQP-VK.subgroups.arithmetic.compute.subgroupinclusiveor_int_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivexor_int
+dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivexor_int_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupexclusiveadd_int
+dEQP-VK.subgroups.arithmetic.compute.subgroupexclusiveadd_int_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivemul_int
+dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivemul_int_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivemin_int
+dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivemin_int_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivemax_int
+dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivemax_int_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupexclusiveand_int
+dEQP-VK.subgroups.arithmetic.compute.subgroupexclusiveand_int_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupexclusiveor_int
+dEQP-VK.subgroups.arithmetic.compute.subgroupexclusiveor_int_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivexor_int
+dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivexor_int_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupadd_ivec2
+dEQP-VK.subgroups.arithmetic.compute.subgroupadd_ivec2_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupmul_ivec2
+dEQP-VK.subgroups.arithmetic.compute.subgroupmul_ivec2_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupmin_ivec2
+dEQP-VK.subgroups.arithmetic.compute.subgroupmin_ivec2_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupmax_ivec2
+dEQP-VK.subgroups.arithmetic.compute.subgroupmax_ivec2_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupand_ivec2
+dEQP-VK.subgroups.arithmetic.compute.subgroupand_ivec2_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupor_ivec2
+dEQP-VK.subgroups.arithmetic.compute.subgroupor_ivec2_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupxor_ivec2
+dEQP-VK.subgroups.arithmetic.compute.subgroupxor_ivec2_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupinclusiveadd_ivec2
+dEQP-VK.subgroups.arithmetic.compute.subgroupinclusiveadd_ivec2_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivemul_ivec2
+dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivemul_ivec2_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivemin_ivec2
+dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivemin_ivec2_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivemax_ivec2
+dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivemax_ivec2_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupinclusiveand_ivec2
+dEQP-VK.subgroups.arithmetic.compute.subgroupinclusiveand_ivec2_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupinclusiveor_ivec2
+dEQP-VK.subgroups.arithmetic.compute.subgroupinclusiveor_ivec2_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivexor_ivec2
+dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivexor_ivec2_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupexclusiveadd_ivec2
+dEQP-VK.subgroups.arithmetic.compute.subgroupexclusiveadd_ivec2_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivemul_ivec2
+dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivemul_ivec2_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivemin_ivec2
+dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivemin_ivec2_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivemax_ivec2
+dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivemax_ivec2_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupexclusiveand_ivec2
+dEQP-VK.subgroups.arithmetic.compute.subgroupexclusiveand_ivec2_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupexclusiveor_ivec2
+dEQP-VK.subgroups.arithmetic.compute.subgroupexclusiveor_ivec2_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivexor_ivec2
+dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivexor_ivec2_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupadd_ivec3
+dEQP-VK.subgroups.arithmetic.compute.subgroupadd_ivec3_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupmul_ivec3
+dEQP-VK.subgroups.arithmetic.compute.subgroupmul_ivec3_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupmin_ivec3
+dEQP-VK.subgroups.arithmetic.compute.subgroupmin_ivec3_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupmax_ivec3
+dEQP-VK.subgroups.arithmetic.compute.subgroupmax_ivec3_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupand_ivec3
+dEQP-VK.subgroups.arithmetic.compute.subgroupand_ivec3_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupor_ivec3
+dEQP-VK.subgroups.arithmetic.compute.subgroupor_ivec3_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupxor_ivec3
+dEQP-VK.subgroups.arithmetic.compute.subgroupxor_ivec3_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupinclusiveadd_ivec3
+dEQP-VK.subgroups.arithmetic.compute.subgroupinclusiveadd_ivec3_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivemul_ivec3
+dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivemul_ivec3_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivemin_ivec3
+dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivemin_ivec3_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivemax_ivec3
+dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivemax_ivec3_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupinclusiveand_ivec3
+dEQP-VK.subgroups.arithmetic.compute.subgroupinclusiveand_ivec3_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupinclusiveor_ivec3
+dEQP-VK.subgroups.arithmetic.compute.subgroupinclusiveor_ivec3_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivexor_ivec3
+dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivexor_ivec3_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupexclusiveadd_ivec3
+dEQP-VK.subgroups.arithmetic.compute.subgroupexclusiveadd_ivec3_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivemul_ivec3
+dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivemul_ivec3_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivemin_ivec3
+dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivemin_ivec3_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivemax_ivec3
+dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivemax_ivec3_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupexclusiveand_ivec3
+dEQP-VK.subgroups.arithmetic.compute.subgroupexclusiveand_ivec3_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupexclusiveor_ivec3
+dEQP-VK.subgroups.arithmetic.compute.subgroupexclusiveor_ivec3_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivexor_ivec3
+dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivexor_ivec3_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupadd_ivec4
+dEQP-VK.subgroups.arithmetic.compute.subgroupadd_ivec4_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupmul_ivec4
+dEQP-VK.subgroups.arithmetic.compute.subgroupmul_ivec4_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupmin_ivec4
+dEQP-VK.subgroups.arithmetic.compute.subgroupmin_ivec4_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupmax_ivec4
+dEQP-VK.subgroups.arithmetic.compute.subgroupmax_ivec4_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupand_ivec4
+dEQP-VK.subgroups.arithmetic.compute.subgroupand_ivec4_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupor_ivec4
+dEQP-VK.subgroups.arithmetic.compute.subgroupor_ivec4_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupxor_ivec4
+dEQP-VK.subgroups.arithmetic.compute.subgroupxor_ivec4_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupinclusiveadd_ivec4
+dEQP-VK.subgroups.arithmetic.compute.subgroupinclusiveadd_ivec4_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivemul_ivec4
+dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivemul_ivec4_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivemin_ivec4
+dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivemin_ivec4_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivemax_ivec4
+dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivemax_ivec4_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupinclusiveand_ivec4
+dEQP-VK.subgroups.arithmetic.compute.subgroupinclusiveand_ivec4_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupinclusiveor_ivec4
+dEQP-VK.subgroups.arithmetic.compute.subgroupinclusiveor_ivec4_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivexor_ivec4
+dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivexor_ivec4_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupexclusiveadd_ivec4
+dEQP-VK.subgroups.arithmetic.compute.subgroupexclusiveadd_ivec4_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivemul_ivec4
+dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivemul_ivec4_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivemin_ivec4
+dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivemin_ivec4_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivemax_ivec4
+dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivemax_ivec4_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupexclusiveand_ivec4
+dEQP-VK.subgroups.arithmetic.compute.subgroupexclusiveand_ivec4_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupexclusiveor_ivec4
+dEQP-VK.subgroups.arithmetic.compute.subgroupexclusiveor_ivec4_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivexor_ivec4
+dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivexor_ivec4_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupadd_uint
+dEQP-VK.subgroups.arithmetic.compute.subgroupadd_uint_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupmul_uint
+dEQP-VK.subgroups.arithmetic.compute.subgroupmul_uint_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupmin_uint
+dEQP-VK.subgroups.arithmetic.compute.subgroupmin_uint_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupmax_uint
+dEQP-VK.subgroups.arithmetic.compute.subgroupmax_uint_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupand_uint
+dEQP-VK.subgroups.arithmetic.compute.subgroupand_uint_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupor_uint
+dEQP-VK.subgroups.arithmetic.compute.subgroupor_uint_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupxor_uint
+dEQP-VK.subgroups.arithmetic.compute.subgroupxor_uint_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupinclusiveadd_uint
+dEQP-VK.subgroups.arithmetic.compute.subgroupinclusiveadd_uint_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivemul_uint
+dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivemul_uint_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivemin_uint
+dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivemin_uint_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivemax_uint
+dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivemax_uint_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupinclusiveand_uint
+dEQP-VK.subgroups.arithmetic.compute.subgroupinclusiveand_uint_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupinclusiveor_uint
+dEQP-VK.subgroups.arithmetic.compute.subgroupinclusiveor_uint_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivexor_uint
+dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivexor_uint_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupexclusiveadd_uint
+dEQP-VK.subgroups.arithmetic.compute.subgroupexclusiveadd_uint_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivemul_uint
+dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivemul_uint_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivemin_uint
+dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivemin_uint_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivemax_uint
+dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivemax_uint_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupexclusiveand_uint
+dEQP-VK.subgroups.arithmetic.compute.subgroupexclusiveand_uint_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupexclusiveor_uint
+dEQP-VK.subgroups.arithmetic.compute.subgroupexclusiveor_uint_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivexor_uint
+dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivexor_uint_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupadd_uvec2
+dEQP-VK.subgroups.arithmetic.compute.subgroupadd_uvec2_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupmul_uvec2
+dEQP-VK.subgroups.arithmetic.compute.subgroupmul_uvec2_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupmin_uvec2
+dEQP-VK.subgroups.arithmetic.compute.subgroupmin_uvec2_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupmax_uvec2
+dEQP-VK.subgroups.arithmetic.compute.subgroupmax_uvec2_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupand_uvec2
+dEQP-VK.subgroups.arithmetic.compute.subgroupand_uvec2_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupor_uvec2
+dEQP-VK.subgroups.arithmetic.compute.subgroupor_uvec2_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupxor_uvec2
+dEQP-VK.subgroups.arithmetic.compute.subgroupxor_uvec2_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupinclusiveadd_uvec2
+dEQP-VK.subgroups.arithmetic.compute.subgroupinclusiveadd_uvec2_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivemul_uvec2
+dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivemul_uvec2_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivemin_uvec2
+dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivemin_uvec2_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivemax_uvec2
+dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivemax_uvec2_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupinclusiveand_uvec2
+dEQP-VK.subgroups.arithmetic.compute.subgroupinclusiveand_uvec2_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupinclusiveor_uvec2
+dEQP-VK.subgroups.arithmetic.compute.subgroupinclusiveor_uvec2_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivexor_uvec2
+dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivexor_uvec2_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupexclusiveadd_uvec2
+dEQP-VK.subgroups.arithmetic.compute.subgroupexclusiveadd_uvec2_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivemul_uvec2
+dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivemul_uvec2_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivemin_uvec2
+dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivemin_uvec2_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivemax_uvec2
+dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivemax_uvec2_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupexclusiveand_uvec2
+dEQP-VK.subgroups.arithmetic.compute.subgroupexclusiveand_uvec2_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupexclusiveor_uvec2
+dEQP-VK.subgroups.arithmetic.compute.subgroupexclusiveor_uvec2_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivexor_uvec2
+dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivexor_uvec2_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupadd_uvec3
+dEQP-VK.subgroups.arithmetic.compute.subgroupadd_uvec3_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupmul_uvec3
+dEQP-VK.subgroups.arithmetic.compute.subgroupmul_uvec3_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupmin_uvec3
+dEQP-VK.subgroups.arithmetic.compute.subgroupmin_uvec3_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupmax_uvec3
+dEQP-VK.subgroups.arithmetic.compute.subgroupmax_uvec3_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupand_uvec3
+dEQP-VK.subgroups.arithmetic.compute.subgroupand_uvec3_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupor_uvec3
+dEQP-VK.subgroups.arithmetic.compute.subgroupor_uvec3_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupxor_uvec3
+dEQP-VK.subgroups.arithmetic.compute.subgroupxor_uvec3_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupinclusiveadd_uvec3
+dEQP-VK.subgroups.arithmetic.compute.subgroupinclusiveadd_uvec3_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivemul_uvec3
+dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivemul_uvec3_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivemin_uvec3
+dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivemin_uvec3_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivemax_uvec3
+dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivemax_uvec3_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupinclusiveand_uvec3
+dEQP-VK.subgroups.arithmetic.compute.subgroupinclusiveand_uvec3_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupinclusiveor_uvec3
+dEQP-VK.subgroups.arithmetic.compute.subgroupinclusiveor_uvec3_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivexor_uvec3
+dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivexor_uvec3_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupexclusiveadd_uvec3
+dEQP-VK.subgroups.arithmetic.compute.subgroupexclusiveadd_uvec3_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivemul_uvec3
+dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivemul_uvec3_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivemin_uvec3
+dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivemin_uvec3_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivemax_uvec3
+dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivemax_uvec3_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupexclusiveand_uvec3
+dEQP-VK.subgroups.arithmetic.compute.subgroupexclusiveand_uvec3_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupexclusiveor_uvec3
+dEQP-VK.subgroups.arithmetic.compute.subgroupexclusiveor_uvec3_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivexor_uvec3
+dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivexor_uvec3_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupadd_uvec4
+dEQP-VK.subgroups.arithmetic.compute.subgroupadd_uvec4_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupmul_uvec4
+dEQP-VK.subgroups.arithmetic.compute.subgroupmul_uvec4_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupmin_uvec4
+dEQP-VK.subgroups.arithmetic.compute.subgroupmin_uvec4_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupmax_uvec4
+dEQP-VK.subgroups.arithmetic.compute.subgroupmax_uvec4_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupand_uvec4
+dEQP-VK.subgroups.arithmetic.compute.subgroupand_uvec4_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupor_uvec4
+dEQP-VK.subgroups.arithmetic.compute.subgroupor_uvec4_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupxor_uvec4
+dEQP-VK.subgroups.arithmetic.compute.subgroupxor_uvec4_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupinclusiveadd_uvec4
+dEQP-VK.subgroups.arithmetic.compute.subgroupinclusiveadd_uvec4_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivemul_uvec4
+dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivemul_uvec4_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivemin_uvec4
+dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivemin_uvec4_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivemax_uvec4
+dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivemax_uvec4_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupinclusiveand_uvec4
+dEQP-VK.subgroups.arithmetic.compute.subgroupinclusiveand_uvec4_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupinclusiveor_uvec4
+dEQP-VK.subgroups.arithmetic.compute.subgroupinclusiveor_uvec4_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivexor_uvec4
+dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivexor_uvec4_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupexclusiveadd_uvec4
+dEQP-VK.subgroups.arithmetic.compute.subgroupexclusiveadd_uvec4_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivemul_uvec4
+dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivemul_uvec4_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivemin_uvec4
+dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivemin_uvec4_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivemax_uvec4
+dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivemax_uvec4_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupexclusiveand_uvec4
+dEQP-VK.subgroups.arithmetic.compute.subgroupexclusiveand_uvec4_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupexclusiveor_uvec4
+dEQP-VK.subgroups.arithmetic.compute.subgroupexclusiveor_uvec4_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivexor_uvec4
+dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivexor_uvec4_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupadd_int64_t
+dEQP-VK.subgroups.arithmetic.compute.subgroupadd_int64_t_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupmul_int64_t
+dEQP-VK.subgroups.arithmetic.compute.subgroupmul_int64_t_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupmin_int64_t
+dEQP-VK.subgroups.arithmetic.compute.subgroupmin_int64_t_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupmax_int64_t
+dEQP-VK.subgroups.arithmetic.compute.subgroupmax_int64_t_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupand_int64_t
+dEQP-VK.subgroups.arithmetic.compute.subgroupand_int64_t_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupor_int64_t
+dEQP-VK.subgroups.arithmetic.compute.subgroupor_int64_t_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupxor_int64_t
+dEQP-VK.subgroups.arithmetic.compute.subgroupxor_int64_t_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupinclusiveadd_int64_t
+dEQP-VK.subgroups.arithmetic.compute.subgroupinclusiveadd_int64_t_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivemul_int64_t
+dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivemul_int64_t_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivemin_int64_t
+dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivemin_int64_t_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivemax_int64_t
+dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivemax_int64_t_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupinclusiveand_int64_t
+dEQP-VK.subgroups.arithmetic.compute.subgroupinclusiveand_int64_t_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupinclusiveor_int64_t
+dEQP-VK.subgroups.arithmetic.compute.subgroupinclusiveor_int64_t_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivexor_int64_t
+dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivexor_int64_t_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupexclusiveadd_int64_t
+dEQP-VK.subgroups.arithmetic.compute.subgroupexclusiveadd_int64_t_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivemul_int64_t
+dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivemul_int64_t_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivemin_int64_t
+dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivemin_int64_t_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivemax_int64_t
+dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivemax_int64_t_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupexclusiveand_int64_t
+dEQP-VK.subgroups.arithmetic.compute.subgroupexclusiveand_int64_t_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupexclusiveor_int64_t
+dEQP-VK.subgroups.arithmetic.compute.subgroupexclusiveor_int64_t_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivexor_int64_t
+dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivexor_int64_t_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupadd_i64vec2
+dEQP-VK.subgroups.arithmetic.compute.subgroupadd_i64vec2_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupmul_i64vec2
+dEQP-VK.subgroups.arithmetic.compute.subgroupmul_i64vec2_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupmin_i64vec2
+dEQP-VK.subgroups.arithmetic.compute.subgroupmin_i64vec2_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupmax_i64vec2
+dEQP-VK.subgroups.arithmetic.compute.subgroupmax_i64vec2_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupand_i64vec2
+dEQP-VK.subgroups.arithmetic.compute.subgroupand_i64vec2_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupor_i64vec2
+dEQP-VK.subgroups.arithmetic.compute.subgroupor_i64vec2_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupxor_i64vec2
+dEQP-VK.subgroups.arithmetic.compute.subgroupxor_i64vec2_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupinclusiveadd_i64vec2
+dEQP-VK.subgroups.arithmetic.compute.subgroupinclusiveadd_i64vec2_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivemul_i64vec2
+dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivemul_i64vec2_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivemin_i64vec2
+dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivemin_i64vec2_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivemax_i64vec2
+dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivemax_i64vec2_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupinclusiveand_i64vec2
+dEQP-VK.subgroups.arithmetic.compute.subgroupinclusiveand_i64vec2_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupinclusiveor_i64vec2
+dEQP-VK.subgroups.arithmetic.compute.subgroupinclusiveor_i64vec2_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivexor_i64vec2
+dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivexor_i64vec2_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupexclusiveadd_i64vec2
+dEQP-VK.subgroups.arithmetic.compute.subgroupexclusiveadd_i64vec2_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivemul_i64vec2
+dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivemul_i64vec2_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivemin_i64vec2
+dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivemin_i64vec2_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivemax_i64vec2
+dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivemax_i64vec2_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupexclusiveand_i64vec2
+dEQP-VK.subgroups.arithmetic.compute.subgroupexclusiveand_i64vec2_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupexclusiveor_i64vec2
+dEQP-VK.subgroups.arithmetic.compute.subgroupexclusiveor_i64vec2_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivexor_i64vec2
+dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivexor_i64vec2_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupadd_i64vec3
+dEQP-VK.subgroups.arithmetic.compute.subgroupadd_i64vec3_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupmul_i64vec3
+dEQP-VK.subgroups.arithmetic.compute.subgroupmul_i64vec3_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupmin_i64vec3
+dEQP-VK.subgroups.arithmetic.compute.subgroupmin_i64vec3_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupmax_i64vec3
+dEQP-VK.subgroups.arithmetic.compute.subgroupmax_i64vec3_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupand_i64vec3
+dEQP-VK.subgroups.arithmetic.compute.subgroupand_i64vec3_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupor_i64vec3
+dEQP-VK.subgroups.arithmetic.compute.subgroupor_i64vec3_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupxor_i64vec3
+dEQP-VK.subgroups.arithmetic.compute.subgroupxor_i64vec3_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupinclusiveadd_i64vec3
+dEQP-VK.subgroups.arithmetic.compute.subgroupinclusiveadd_i64vec3_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivemul_i64vec3
+dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivemul_i64vec3_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivemin_i64vec3
+dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivemin_i64vec3_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivemax_i64vec3
+dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivemax_i64vec3_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupinclusiveand_i64vec3
+dEQP-VK.subgroups.arithmetic.compute.subgroupinclusiveand_i64vec3_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupinclusiveor_i64vec3
+dEQP-VK.subgroups.arithmetic.compute.subgroupinclusiveor_i64vec3_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivexor_i64vec3
+dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivexor_i64vec3_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupexclusiveadd_i64vec3
+dEQP-VK.subgroups.arithmetic.compute.subgroupexclusiveadd_i64vec3_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivemul_i64vec3
+dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivemul_i64vec3_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivemin_i64vec3
+dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivemin_i64vec3_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivemax_i64vec3
+dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivemax_i64vec3_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupexclusiveand_i64vec3
+dEQP-VK.subgroups.arithmetic.compute.subgroupexclusiveand_i64vec3_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupexclusiveor_i64vec3
+dEQP-VK.subgroups.arithmetic.compute.subgroupexclusiveor_i64vec3_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivexor_i64vec3
+dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivexor_i64vec3_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupadd_i64vec4
+dEQP-VK.subgroups.arithmetic.compute.subgroupadd_i64vec4_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupmul_i64vec4
+dEQP-VK.subgroups.arithmetic.compute.subgroupmul_i64vec4_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupmin_i64vec4
+dEQP-VK.subgroups.arithmetic.compute.subgroupmin_i64vec4_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupmax_i64vec4
+dEQP-VK.subgroups.arithmetic.compute.subgroupmax_i64vec4_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupand_i64vec4
+dEQP-VK.subgroups.arithmetic.compute.subgroupand_i64vec4_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupor_i64vec4
+dEQP-VK.subgroups.arithmetic.compute.subgroupor_i64vec4_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupxor_i64vec4
+dEQP-VK.subgroups.arithmetic.compute.subgroupxor_i64vec4_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupinclusiveadd_i64vec4
+dEQP-VK.subgroups.arithmetic.compute.subgroupinclusiveadd_i64vec4_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivemul_i64vec4
+dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivemul_i64vec4_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivemin_i64vec4
+dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivemin_i64vec4_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivemax_i64vec4
+dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivemax_i64vec4_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupinclusiveand_i64vec4
+dEQP-VK.subgroups.arithmetic.compute.subgroupinclusiveand_i64vec4_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupinclusiveor_i64vec4
+dEQP-VK.subgroups.arithmetic.compute.subgroupinclusiveor_i64vec4_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivexor_i64vec4
+dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivexor_i64vec4_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupexclusiveadd_i64vec4
+dEQP-VK.subgroups.arithmetic.compute.subgroupexclusiveadd_i64vec4_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivemul_i64vec4
+dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivemul_i64vec4_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivemin_i64vec4
+dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivemin_i64vec4_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivemax_i64vec4
+dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivemax_i64vec4_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupexclusiveand_i64vec4
+dEQP-VK.subgroups.arithmetic.compute.subgroupexclusiveand_i64vec4_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupexclusiveor_i64vec4
+dEQP-VK.subgroups.arithmetic.compute.subgroupexclusiveor_i64vec4_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivexor_i64vec4
+dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivexor_i64vec4_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupadd_uint64_t
+dEQP-VK.subgroups.arithmetic.compute.subgroupadd_uint64_t_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupmul_uint64_t
+dEQP-VK.subgroups.arithmetic.compute.subgroupmul_uint64_t_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupmin_uint64_t
+dEQP-VK.subgroups.arithmetic.compute.subgroupmin_uint64_t_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupmax_uint64_t
+dEQP-VK.subgroups.arithmetic.compute.subgroupmax_uint64_t_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupand_uint64_t
+dEQP-VK.subgroups.arithmetic.compute.subgroupand_uint64_t_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupor_uint64_t
+dEQP-VK.subgroups.arithmetic.compute.subgroupor_uint64_t_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupxor_uint64_t
+dEQP-VK.subgroups.arithmetic.compute.subgroupxor_uint64_t_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupinclusiveadd_uint64_t
+dEQP-VK.subgroups.arithmetic.compute.subgroupinclusiveadd_uint64_t_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivemul_uint64_t
+dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivemul_uint64_t_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivemin_uint64_t
+dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivemin_uint64_t_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivemax_uint64_t
+dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivemax_uint64_t_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupinclusiveand_uint64_t
+dEQP-VK.subgroups.arithmetic.compute.subgroupinclusiveand_uint64_t_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupinclusiveor_uint64_t
+dEQP-VK.subgroups.arithmetic.compute.subgroupinclusiveor_uint64_t_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivexor_uint64_t
+dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivexor_uint64_t_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupexclusiveadd_uint64_t
+dEQP-VK.subgroups.arithmetic.compute.subgroupexclusiveadd_uint64_t_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivemul_uint64_t
+dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivemul_uint64_t_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivemin_uint64_t
+dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivemin_uint64_t_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivemax_uint64_t
+dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivemax_uint64_t_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupexclusiveand_uint64_t
+dEQP-VK.subgroups.arithmetic.compute.subgroupexclusiveand_uint64_t_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupexclusiveor_uint64_t
+dEQP-VK.subgroups.arithmetic.compute.subgroupexclusiveor_uint64_t_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivexor_uint64_t
+dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivexor_uint64_t_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupadd_u64vec2
+dEQP-VK.subgroups.arithmetic.compute.subgroupadd_u64vec2_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupmul_u64vec2
+dEQP-VK.subgroups.arithmetic.compute.subgroupmul_u64vec2_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupmin_u64vec2
+dEQP-VK.subgroups.arithmetic.compute.subgroupmin_u64vec2_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupmax_u64vec2
+dEQP-VK.subgroups.arithmetic.compute.subgroupmax_u64vec2_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupand_u64vec2
+dEQP-VK.subgroups.arithmetic.compute.subgroupand_u64vec2_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupor_u64vec2
+dEQP-VK.subgroups.arithmetic.compute.subgroupor_u64vec2_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupxor_u64vec2
+dEQP-VK.subgroups.arithmetic.compute.subgroupxor_u64vec2_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupinclusiveadd_u64vec2
+dEQP-VK.subgroups.arithmetic.compute.subgroupinclusiveadd_u64vec2_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivemul_u64vec2
+dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivemul_u64vec2_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivemin_u64vec2
+dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivemin_u64vec2_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivemax_u64vec2
+dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivemax_u64vec2_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupinclusiveand_u64vec2
+dEQP-VK.subgroups.arithmetic.compute.subgroupinclusiveand_u64vec2_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupinclusiveor_u64vec2
+dEQP-VK.subgroups.arithmetic.compute.subgroupinclusiveor_u64vec2_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivexor_u64vec2
+dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivexor_u64vec2_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupexclusiveadd_u64vec2
+dEQP-VK.subgroups.arithmetic.compute.subgroupexclusiveadd_u64vec2_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivemul_u64vec2
+dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivemul_u64vec2_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivemin_u64vec2
+dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivemin_u64vec2_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivemax_u64vec2
+dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivemax_u64vec2_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupexclusiveand_u64vec2
+dEQP-VK.subgroups.arithmetic.compute.subgroupexclusiveand_u64vec2_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupexclusiveor_u64vec2
+dEQP-VK.subgroups.arithmetic.compute.subgroupexclusiveor_u64vec2_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivexor_u64vec2
+dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivexor_u64vec2_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupadd_u64vec3
+dEQP-VK.subgroups.arithmetic.compute.subgroupadd_u64vec3_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupmul_u64vec3
+dEQP-VK.subgroups.arithmetic.compute.subgroupmul_u64vec3_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupmin_u64vec3
+dEQP-VK.subgroups.arithmetic.compute.subgroupmin_u64vec3_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupmax_u64vec3
+dEQP-VK.subgroups.arithmetic.compute.subgroupmax_u64vec3_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupand_u64vec3
+dEQP-VK.subgroups.arithmetic.compute.subgroupand_u64vec3_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupor_u64vec3
+dEQP-VK.subgroups.arithmetic.compute.subgroupor_u64vec3_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupxor_u64vec3
+dEQP-VK.subgroups.arithmetic.compute.subgroupxor_u64vec3_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupinclusiveadd_u64vec3
+dEQP-VK.subgroups.arithmetic.compute.subgroupinclusiveadd_u64vec3_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivemul_u64vec3
+dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivemul_u64vec3_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivemin_u64vec3
+dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivemin_u64vec3_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivemax_u64vec3
+dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivemax_u64vec3_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupinclusiveand_u64vec3
+dEQP-VK.subgroups.arithmetic.compute.subgroupinclusiveand_u64vec3_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupinclusiveor_u64vec3
+dEQP-VK.subgroups.arithmetic.compute.subgroupinclusiveor_u64vec3_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivexor_u64vec3
+dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivexor_u64vec3_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupexclusiveadd_u64vec3
+dEQP-VK.subgroups.arithmetic.compute.subgroupexclusiveadd_u64vec3_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivemul_u64vec3
+dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivemul_u64vec3_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivemin_u64vec3
+dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivemin_u64vec3_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivemax_u64vec3
+dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivemax_u64vec3_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupexclusiveand_u64vec3
+dEQP-VK.subgroups.arithmetic.compute.subgroupexclusiveand_u64vec3_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupexclusiveor_u64vec3
+dEQP-VK.subgroups.arithmetic.compute.subgroupexclusiveor_u64vec3_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivexor_u64vec3
+dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivexor_u64vec3_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupadd_u64vec4
+dEQP-VK.subgroups.arithmetic.compute.subgroupadd_u64vec4_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupmul_u64vec4
+dEQP-VK.subgroups.arithmetic.compute.subgroupmul_u64vec4_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupmin_u64vec4
+dEQP-VK.subgroups.arithmetic.compute.subgroupmin_u64vec4_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupmax_u64vec4
+dEQP-VK.subgroups.arithmetic.compute.subgroupmax_u64vec4_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupand_u64vec4
+dEQP-VK.subgroups.arithmetic.compute.subgroupand_u64vec4_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupor_u64vec4
+dEQP-VK.subgroups.arithmetic.compute.subgroupor_u64vec4_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupxor_u64vec4
+dEQP-VK.subgroups.arithmetic.compute.subgroupxor_u64vec4_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupinclusiveadd_u64vec4
+dEQP-VK.subgroups.arithmetic.compute.subgroupinclusiveadd_u64vec4_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivemul_u64vec4
+dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivemul_u64vec4_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivemin_u64vec4
+dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivemin_u64vec4_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivemax_u64vec4
+dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivemax_u64vec4_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupinclusiveand_u64vec4
+dEQP-VK.subgroups.arithmetic.compute.subgroupinclusiveand_u64vec4_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupinclusiveor_u64vec4
+dEQP-VK.subgroups.arithmetic.compute.subgroupinclusiveor_u64vec4_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivexor_u64vec4
+dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivexor_u64vec4_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupexclusiveadd_u64vec4
+dEQP-VK.subgroups.arithmetic.compute.subgroupexclusiveadd_u64vec4_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivemul_u64vec4
+dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivemul_u64vec4_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivemin_u64vec4
+dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivemin_u64vec4_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivemax_u64vec4
+dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivemax_u64vec4_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupexclusiveand_u64vec4
+dEQP-VK.subgroups.arithmetic.compute.subgroupexclusiveand_u64vec4_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupexclusiveor_u64vec4
+dEQP-VK.subgroups.arithmetic.compute.subgroupexclusiveor_u64vec4_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivexor_u64vec4
+dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivexor_u64vec4_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupadd_float16_t
+dEQP-VK.subgroups.arithmetic.compute.subgroupadd_float16_t_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupmul_float16_t
+dEQP-VK.subgroups.arithmetic.compute.subgroupmul_float16_t_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupmin_float16_t
+dEQP-VK.subgroups.arithmetic.compute.subgroupmin_float16_t_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupmax_float16_t
+dEQP-VK.subgroups.arithmetic.compute.subgroupmax_float16_t_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupinclusiveadd_float16_t
+dEQP-VK.subgroups.arithmetic.compute.subgroupinclusiveadd_float16_t_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivemul_float16_t
+dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivemul_float16_t_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivemin_float16_t
+dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivemin_float16_t_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivemax_float16_t
+dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivemax_float16_t_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupexclusiveadd_float16_t
+dEQP-VK.subgroups.arithmetic.compute.subgroupexclusiveadd_float16_t_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivemul_float16_t
+dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivemul_float16_t_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivemin_float16_t
+dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivemin_float16_t_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivemax_float16_t
+dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivemax_float16_t_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupadd_f16vec2
+dEQP-VK.subgroups.arithmetic.compute.subgroupadd_f16vec2_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupmul_f16vec2
+dEQP-VK.subgroups.arithmetic.compute.subgroupmul_f16vec2_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupmin_f16vec2
+dEQP-VK.subgroups.arithmetic.compute.subgroupmin_f16vec2_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupmax_f16vec2
+dEQP-VK.subgroups.arithmetic.compute.subgroupmax_f16vec2_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupinclusiveadd_f16vec2
+dEQP-VK.subgroups.arithmetic.compute.subgroupinclusiveadd_f16vec2_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivemul_f16vec2
+dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivemul_f16vec2_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivemin_f16vec2
+dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivemin_f16vec2_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivemax_f16vec2
+dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivemax_f16vec2_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupexclusiveadd_f16vec2
+dEQP-VK.subgroups.arithmetic.compute.subgroupexclusiveadd_f16vec2_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivemul_f16vec2
+dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivemul_f16vec2_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivemin_f16vec2
+dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivemin_f16vec2_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivemax_f16vec2
+dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivemax_f16vec2_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupadd_f16vec3
+dEQP-VK.subgroups.arithmetic.compute.subgroupadd_f16vec3_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupmul_f16vec3
+dEQP-VK.subgroups.arithmetic.compute.subgroupmul_f16vec3_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupmin_f16vec3
+dEQP-VK.subgroups.arithmetic.compute.subgroupmin_f16vec3_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupmax_f16vec3
+dEQP-VK.subgroups.arithmetic.compute.subgroupmax_f16vec3_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupinclusiveadd_f16vec3
+dEQP-VK.subgroups.arithmetic.compute.subgroupinclusiveadd_f16vec3_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivemul_f16vec3
+dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivemul_f16vec3_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivemin_f16vec3
+dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivemin_f16vec3_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivemax_f16vec3
+dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivemax_f16vec3_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupexclusiveadd_f16vec3
+dEQP-VK.subgroups.arithmetic.compute.subgroupexclusiveadd_f16vec3_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivemul_f16vec3
+dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivemul_f16vec3_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivemin_f16vec3
+dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivemin_f16vec3_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivemax_f16vec3
+dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivemax_f16vec3_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupadd_f16vec4
+dEQP-VK.subgroups.arithmetic.compute.subgroupadd_f16vec4_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupmul_f16vec4
+dEQP-VK.subgroups.arithmetic.compute.subgroupmul_f16vec4_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupmin_f16vec4
+dEQP-VK.subgroups.arithmetic.compute.subgroupmin_f16vec4_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupmax_f16vec4
+dEQP-VK.subgroups.arithmetic.compute.subgroupmax_f16vec4_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupinclusiveadd_f16vec4
+dEQP-VK.subgroups.arithmetic.compute.subgroupinclusiveadd_f16vec4_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivemul_f16vec4
+dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivemul_f16vec4_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivemin_f16vec4
+dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivemin_f16vec4_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivemax_f16vec4
+dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivemax_f16vec4_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupexclusiveadd_f16vec4
+dEQP-VK.subgroups.arithmetic.compute.subgroupexclusiveadd_f16vec4_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivemul_f16vec4
+dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivemul_f16vec4_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivemin_f16vec4
+dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivemin_f16vec4_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivemax_f16vec4
+dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivemax_f16vec4_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupadd_float
+dEQP-VK.subgroups.arithmetic.compute.subgroupadd_float_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupmul_float
+dEQP-VK.subgroups.arithmetic.compute.subgroupmul_float_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupmin_float
+dEQP-VK.subgroups.arithmetic.compute.subgroupmin_float_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupmax_float
+dEQP-VK.subgroups.arithmetic.compute.subgroupmax_float_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupinclusiveadd_float
+dEQP-VK.subgroups.arithmetic.compute.subgroupinclusiveadd_float_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivemul_float
+dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivemul_float_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivemin_float
+dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivemin_float_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivemax_float
+dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivemax_float_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupexclusiveadd_float
+dEQP-VK.subgroups.arithmetic.compute.subgroupexclusiveadd_float_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivemul_float
+dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivemul_float_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivemin_float
+dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivemin_float_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivemax_float
+dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivemax_float_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupadd_vec2
+dEQP-VK.subgroups.arithmetic.compute.subgroupadd_vec2_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupmul_vec2
+dEQP-VK.subgroups.arithmetic.compute.subgroupmul_vec2_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupmin_vec2
+dEQP-VK.subgroups.arithmetic.compute.subgroupmin_vec2_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupmax_vec2
+dEQP-VK.subgroups.arithmetic.compute.subgroupmax_vec2_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupinclusiveadd_vec2
+dEQP-VK.subgroups.arithmetic.compute.subgroupinclusiveadd_vec2_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivemul_vec2
+dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivemul_vec2_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivemin_vec2
+dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivemin_vec2_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivemax_vec2
+dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivemax_vec2_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupexclusiveadd_vec2
+dEQP-VK.subgroups.arithmetic.compute.subgroupexclusiveadd_vec2_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivemul_vec2
+dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivemul_vec2_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivemin_vec2
+dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivemin_vec2_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivemax_vec2
+dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivemax_vec2_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupadd_vec3
+dEQP-VK.subgroups.arithmetic.compute.subgroupadd_vec3_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupmul_vec3
+dEQP-VK.subgroups.arithmetic.compute.subgroupmul_vec3_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupmin_vec3
+dEQP-VK.subgroups.arithmetic.compute.subgroupmin_vec3_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupmax_vec3
+dEQP-VK.subgroups.arithmetic.compute.subgroupmax_vec3_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupinclusiveadd_vec3
+dEQP-VK.subgroups.arithmetic.compute.subgroupinclusiveadd_vec3_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivemul_vec3
+dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivemul_vec3_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivemin_vec3
+dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivemin_vec3_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivemax_vec3
+dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivemax_vec3_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupexclusiveadd_vec3
+dEQP-VK.subgroups.arithmetic.compute.subgroupexclusiveadd_vec3_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivemul_vec3
+dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivemul_vec3_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivemin_vec3
+dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivemin_vec3_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivemax_vec3
+dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivemax_vec3_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupadd_vec4
+dEQP-VK.subgroups.arithmetic.compute.subgroupadd_vec4_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupmul_vec4
+dEQP-VK.subgroups.arithmetic.compute.subgroupmul_vec4_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupmin_vec4
+dEQP-VK.subgroups.arithmetic.compute.subgroupmin_vec4_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupmax_vec4
+dEQP-VK.subgroups.arithmetic.compute.subgroupmax_vec4_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupinclusiveadd_vec4
+dEQP-VK.subgroups.arithmetic.compute.subgroupinclusiveadd_vec4_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivemul_vec4
+dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivemul_vec4_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivemin_vec4
+dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivemin_vec4_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivemax_vec4
+dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivemax_vec4_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupexclusiveadd_vec4
+dEQP-VK.subgroups.arithmetic.compute.subgroupexclusiveadd_vec4_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivemul_vec4
+dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivemul_vec4_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivemin_vec4
+dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivemin_vec4_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivemax_vec4
+dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivemax_vec4_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupadd_double
+dEQP-VK.subgroups.arithmetic.compute.subgroupadd_double_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupmul_double
+dEQP-VK.subgroups.arithmetic.compute.subgroupmul_double_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupmin_double
+dEQP-VK.subgroups.arithmetic.compute.subgroupmin_double_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupmax_double
+dEQP-VK.subgroups.arithmetic.compute.subgroupmax_double_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupinclusiveadd_double
+dEQP-VK.subgroups.arithmetic.compute.subgroupinclusiveadd_double_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivemul_double
+dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivemul_double_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivemin_double
+dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivemin_double_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivemax_double
+dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivemax_double_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupexclusiveadd_double
+dEQP-VK.subgroups.arithmetic.compute.subgroupexclusiveadd_double_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivemul_double
+dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivemul_double_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivemin_double
+dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivemin_double_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivemax_double
+dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivemax_double_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupadd_dvec2
+dEQP-VK.subgroups.arithmetic.compute.subgroupadd_dvec2_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupmul_dvec2
+dEQP-VK.subgroups.arithmetic.compute.subgroupmul_dvec2_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupmin_dvec2
+dEQP-VK.subgroups.arithmetic.compute.subgroupmin_dvec2_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupmax_dvec2
+dEQP-VK.subgroups.arithmetic.compute.subgroupmax_dvec2_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupinclusiveadd_dvec2
+dEQP-VK.subgroups.arithmetic.compute.subgroupinclusiveadd_dvec2_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivemul_dvec2
+dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivemul_dvec2_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivemin_dvec2
+dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivemin_dvec2_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivemax_dvec2
+dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivemax_dvec2_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupexclusiveadd_dvec2
+dEQP-VK.subgroups.arithmetic.compute.subgroupexclusiveadd_dvec2_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivemul_dvec2
+dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivemul_dvec2_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivemin_dvec2
+dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivemin_dvec2_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivemax_dvec2
+dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivemax_dvec2_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupadd_dvec3
+dEQP-VK.subgroups.arithmetic.compute.subgroupadd_dvec3_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupmul_dvec3
+dEQP-VK.subgroups.arithmetic.compute.subgroupmul_dvec3_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupmin_dvec3
+dEQP-VK.subgroups.arithmetic.compute.subgroupmin_dvec3_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupmax_dvec3
+dEQP-VK.subgroups.arithmetic.compute.subgroupmax_dvec3_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupinclusiveadd_dvec3
+dEQP-VK.subgroups.arithmetic.compute.subgroupinclusiveadd_dvec3_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivemul_dvec3
+dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivemul_dvec3_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivemin_dvec3
+dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivemin_dvec3_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivemax_dvec3
+dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivemax_dvec3_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupexclusiveadd_dvec3
+dEQP-VK.subgroups.arithmetic.compute.subgroupexclusiveadd_dvec3_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivemul_dvec3
+dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivemul_dvec3_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivemin_dvec3
+dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivemin_dvec3_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivemax_dvec3
+dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivemax_dvec3_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupadd_dvec4
+dEQP-VK.subgroups.arithmetic.compute.subgroupadd_dvec4_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupmul_dvec4
+dEQP-VK.subgroups.arithmetic.compute.subgroupmul_dvec4_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupmin_dvec4
+dEQP-VK.subgroups.arithmetic.compute.subgroupmin_dvec4_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupmax_dvec4
+dEQP-VK.subgroups.arithmetic.compute.subgroupmax_dvec4_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupinclusiveadd_dvec4
+dEQP-VK.subgroups.arithmetic.compute.subgroupinclusiveadd_dvec4_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivemul_dvec4
+dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivemul_dvec4_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivemin_dvec4
+dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivemin_dvec4_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivemax_dvec4
+dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivemax_dvec4_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupexclusiveadd_dvec4
+dEQP-VK.subgroups.arithmetic.compute.subgroupexclusiveadd_dvec4_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivemul_dvec4
+dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivemul_dvec4_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivemin_dvec4
+dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivemin_dvec4_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivemax_dvec4
+dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivemax_dvec4_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupand_bool
+dEQP-VK.subgroups.arithmetic.compute.subgroupand_bool_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupor_bool
+dEQP-VK.subgroups.arithmetic.compute.subgroupor_bool_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupxor_bool
+dEQP-VK.subgroups.arithmetic.compute.subgroupxor_bool_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupinclusiveand_bool
+dEQP-VK.subgroups.arithmetic.compute.subgroupinclusiveand_bool_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupinclusiveor_bool
+dEQP-VK.subgroups.arithmetic.compute.subgroupinclusiveor_bool_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivexor_bool
+dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivexor_bool_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupexclusiveand_bool
+dEQP-VK.subgroups.arithmetic.compute.subgroupexclusiveand_bool_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupexclusiveor_bool
+dEQP-VK.subgroups.arithmetic.compute.subgroupexclusiveor_bool_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivexor_bool
+dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivexor_bool_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupand_bvec2
+dEQP-VK.subgroups.arithmetic.compute.subgroupand_bvec2_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupor_bvec2
+dEQP-VK.subgroups.arithmetic.compute.subgroupor_bvec2_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupxor_bvec2
+dEQP-VK.subgroups.arithmetic.compute.subgroupxor_bvec2_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupinclusiveand_bvec2
+dEQP-VK.subgroups.arithmetic.compute.subgroupinclusiveand_bvec2_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupinclusiveor_bvec2
+dEQP-VK.subgroups.arithmetic.compute.subgroupinclusiveor_bvec2_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivexor_bvec2
+dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivexor_bvec2_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupexclusiveand_bvec2
+dEQP-VK.subgroups.arithmetic.compute.subgroupexclusiveand_bvec2_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupexclusiveor_bvec2
+dEQP-VK.subgroups.arithmetic.compute.subgroupexclusiveor_bvec2_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivexor_bvec2
+dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivexor_bvec2_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupand_bvec3
+dEQP-VK.subgroups.arithmetic.compute.subgroupand_bvec3_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupor_bvec3
+dEQP-VK.subgroups.arithmetic.compute.subgroupor_bvec3_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupxor_bvec3
+dEQP-VK.subgroups.arithmetic.compute.subgroupxor_bvec3_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupinclusiveand_bvec3
+dEQP-VK.subgroups.arithmetic.compute.subgroupinclusiveand_bvec3_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupinclusiveor_bvec3
+dEQP-VK.subgroups.arithmetic.compute.subgroupinclusiveor_bvec3_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivexor_bvec3
+dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivexor_bvec3_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupexclusiveand_bvec3
+dEQP-VK.subgroups.arithmetic.compute.subgroupexclusiveand_bvec3_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupexclusiveor_bvec3
+dEQP-VK.subgroups.arithmetic.compute.subgroupexclusiveor_bvec3_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivexor_bvec3
+dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivexor_bvec3_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupand_bvec4
+dEQP-VK.subgroups.arithmetic.compute.subgroupand_bvec4_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupor_bvec4
+dEQP-VK.subgroups.arithmetic.compute.subgroupor_bvec4_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupxor_bvec4
+dEQP-VK.subgroups.arithmetic.compute.subgroupxor_bvec4_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupinclusiveand_bvec4
+dEQP-VK.subgroups.arithmetic.compute.subgroupinclusiveand_bvec4_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupinclusiveor_bvec4
+dEQP-VK.subgroups.arithmetic.compute.subgroupinclusiveor_bvec4_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivexor_bvec4
+dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivexor_bvec4_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupexclusiveand_bvec4
+dEQP-VK.subgroups.arithmetic.compute.subgroupexclusiveand_bvec4_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupexclusiveor_bvec4
+dEQP-VK.subgroups.arithmetic.compute.subgroupexclusiveor_bvec4_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivexor_bvec4
+dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivexor_bvec4_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.framebuffer.subgroupadd_int8_t_vertex
 dEQP-VK.subgroups.arithmetic.framebuffer.subgroupadd_int8_t_tess_eval
 dEQP-VK.subgroups.arithmetic.framebuffer.subgroupadd_int8_t_tess_control
@@ -512845,289 +513927,573 @@ dEQP-VK.subgroups.clustered.graphics.subgroupclusteredand_bvec4
 dEQP-VK.subgroups.clustered.graphics.subgroupclusteredor_bvec4
 dEQP-VK.subgroups.clustered.graphics.subgroupclusteredxor_bvec4
 dEQP-VK.subgroups.clustered.compute.subgroupclusteredadd_int8_t
+dEQP-VK.subgroups.clustered.compute.subgroupclusteredadd_int8_t_requiredsubgroupsize
 dEQP-VK.subgroups.clustered.compute.subgroupclusteredmul_int8_t
+dEQP-VK.subgroups.clustered.compute.subgroupclusteredmul_int8_t_requiredsubgroupsize
 dEQP-VK.subgroups.clustered.compute.subgroupclusteredmin_int8_t
+dEQP-VK.subgroups.clustered.compute.subgroupclusteredmin_int8_t_requiredsubgroupsize
 dEQP-VK.subgroups.clustered.compute.subgroupclusteredmax_int8_t
+dEQP-VK.subgroups.clustered.compute.subgroupclusteredmax_int8_t_requiredsubgroupsize
 dEQP-VK.subgroups.clustered.compute.subgroupclusteredand_int8_t
+dEQP-VK.subgroups.clustered.compute.subgroupclusteredand_int8_t_requiredsubgroupsize
 dEQP-VK.subgroups.clustered.compute.subgroupclusteredor_int8_t
+dEQP-VK.subgroups.clustered.compute.subgroupclusteredor_int8_t_requiredsubgroupsize
 dEQP-VK.subgroups.clustered.compute.subgroupclusteredxor_int8_t
+dEQP-VK.subgroups.clustered.compute.subgroupclusteredxor_int8_t_requiredsubgroupsize
 dEQP-VK.subgroups.clustered.compute.subgroupclusteredadd_i8vec2
+dEQP-VK.subgroups.clustered.compute.subgroupclusteredadd_i8vec2_requiredsubgroupsize
 dEQP-VK.subgroups.clustered.compute.subgroupclusteredmul_i8vec2
+dEQP-VK.subgroups.clustered.compute.subgroupclusteredmul_i8vec2_requiredsubgroupsize
 dEQP-VK.subgroups.clustered.compute.subgroupclusteredmin_i8vec2
+dEQP-VK.subgroups.clustered.compute.subgroupclusteredmin_i8vec2_requiredsubgroupsize
 dEQP-VK.subgroups.clustered.compute.subgroupclusteredmax_i8vec2
+dEQP-VK.subgroups.clustered.compute.subgroupclusteredmax_i8vec2_requiredsubgroupsize
 dEQP-VK.subgroups.clustered.compute.subgroupclusteredand_i8vec2
+dEQP-VK.subgroups.clustered.compute.subgroupclusteredand_i8vec2_requiredsubgroupsize
 dEQP-VK.subgroups.clustered.compute.subgroupclusteredor_i8vec2
+dEQP-VK.subgroups.clustered.compute.subgroupclusteredor_i8vec2_requiredsubgroupsize
 dEQP-VK.subgroups.clustered.compute.subgroupclusteredxor_i8vec2
+dEQP-VK.subgroups.clustered.compute.subgroupclusteredxor_i8vec2_requiredsubgroupsize
 dEQP-VK.subgroups.clustered.compute.subgroupclusteredadd_i8vec3
+dEQP-VK.subgroups.clustered.compute.subgroupclusteredadd_i8vec3_requiredsubgroupsize
 dEQP-VK.subgroups.clustered.compute.subgroupclusteredmul_i8vec3
+dEQP-VK.subgroups.clustered.compute.subgroupclusteredmul_i8vec3_requiredsubgroupsize
 dEQP-VK.subgroups.clustered.compute.subgroupclusteredmin_i8vec3
+dEQP-VK.subgroups.clustered.compute.subgroupclusteredmin_i8vec3_requiredsubgroupsize
 dEQP-VK.subgroups.clustered.compute.subgroupclusteredmax_i8vec3
+dEQP-VK.subgroups.clustered.compute.subgroupclusteredmax_i8vec3_requiredsubgroupsize
 dEQP-VK.subgroups.clustered.compute.subgroupclusteredand_i8vec3
+dEQP-VK.subgroups.clustered.compute.subgroupclusteredand_i8vec3_requiredsubgroupsize
 dEQP-VK.subgroups.clustered.compute.subgroupclusteredor_i8vec3
+dEQP-VK.subgroups.clustered.compute.subgroupclusteredor_i8vec3_requiredsubgroupsize
 dEQP-VK.subgroups.clustered.compute.subgroupclusteredxor_i8vec3
+dEQP-VK.subgroups.clustered.compute.subgroupclusteredxor_i8vec3_requiredsubgroupsize
 dEQP-VK.subgroups.clustered.compute.subgroupclusteredadd_i8vec4
+dEQP-VK.subgroups.clustered.compute.subgroupclusteredadd_i8vec4_requiredsubgroupsize
 dEQP-VK.subgroups.clustered.compute.subgroupclusteredmul_i8vec4
+dEQP-VK.subgroups.clustered.compute.subgroupclusteredmul_i8vec4_requiredsubgroupsize
 dEQP-VK.subgroups.clustered.compute.subgroupclusteredmin_i8vec4
+dEQP-VK.subgroups.clustered.compute.subgroupclusteredmin_i8vec4_requiredsubgroupsize
 dEQP-VK.subgroups.clustered.compute.subgroupclusteredmax_i8vec4
+dEQP-VK.subgroups.clustered.compute.subgroupclusteredmax_i8vec4_requiredsubgroupsize
 dEQP-VK.subgroups.clustered.compute.subgroupclusteredand_i8vec4
+dEQP-VK.subgroups.clustered.compute.subgroupclusteredand_i8vec4_requiredsubgroupsize
 dEQP-VK.subgroups.clustered.compute.subgroupclusteredor_i8vec4
+dEQP-VK.subgroups.clustered.compute.subgroupclusteredor_i8vec4_requiredsubgroupsize
 dEQP-VK.subgroups.clustered.compute.subgroupclusteredxor_i8vec4
+dEQP-VK.subgroups.clustered.compute.subgroupclusteredxor_i8vec4_requiredsubgroupsize
 dEQP-VK.subgroups.clustered.compute.subgroupclusteredadd_uint8_t
+dEQP-VK.subgroups.clustered.compute.subgroupclusteredadd_uint8_t_requiredsubgroupsize
 dEQP-VK.subgroups.clustered.compute.subgroupclusteredmul_uint8_t
+dEQP-VK.subgroups.clustered.compute.subgroupclusteredmul_uint8_t_requiredsubgroupsize
 dEQP-VK.subgroups.clustered.compute.subgroupclusteredmin_uint8_t
+dEQP-VK.subgroups.clustered.compute.subgroupclusteredmin_uint8_t_requiredsubgroupsize
 dEQP-VK.subgroups.clustered.compute.subgroupclusteredmax_uint8_t
+dEQP-VK.subgroups.clustered.compute.subgroupclusteredmax_uint8_t_requiredsubgroupsize
 dEQP-VK.subgroups.clustered.compute.subgroupclusteredand_uint8_t
+dEQP-VK.subgroups.clustered.compute.subgroupclusteredand_uint8_t_requiredsubgroupsize
 dEQP-VK.subgroups.clustered.compute.subgroupclusteredor_uint8_t
+dEQP-VK.subgroups.clustered.compute.subgroupclusteredor_uint8_t_requiredsubgroupsize
 dEQP-VK.subgroups.clustered.compute.subgroupclusteredxor_uint8_t
+dEQP-VK.subgroups.clustered.compute.subgroupclusteredxor_uint8_t_requiredsubgroupsize
 dEQP-VK.subgroups.clustered.compute.subgroupclusteredadd_u8vec2
+dEQP-VK.subgroups.clustered.compute.subgroupclusteredadd_u8vec2_requiredsubgroupsize
 dEQP-VK.subgroups.clustered.compute.subgroupclusteredmul_u8vec2
+dEQP-VK.subgroups.clustered.compute.subgroupclusteredmul_u8vec2_requiredsubgroupsize
 dEQP-VK.subgroups.clustered.compute.subgroupclusteredmin_u8vec2
+dEQP-VK.subgroups.clustered.compute.subgroupclusteredmin_u8vec2_requiredsubgroupsize
 dEQP-VK.subgroups.clustered.compute.subgroupclusteredmax_u8vec2
+dEQP-VK.subgroups.clustered.compute.subgroupclusteredmax_u8vec2_requiredsubgroupsize
 dEQP-VK.subgroups.clustered.compute.subgroupclusteredand_u8vec2
+dEQP-VK.subgroups.clustered.compute.subgroupclusteredand_u8vec2_requiredsubgroupsize
 dEQP-VK.subgroups.clustered.compute.subgroupclusteredor_u8vec2
+dEQP-VK.subgroups.clustered.compute.subgroupclusteredor_u8vec2_requiredsubgroupsize
 dEQP-VK.subgroups.clustered.compute.subgroupclusteredxor_u8vec2
+dEQP-VK.subgroups.clustered.compute.subgroupclusteredxor_u8vec2_requiredsubgroupsize
 dEQP-VK.subgroups.clustered.compute.subgroupclusteredadd_u8vec3
+dEQP-VK.subgroups.clustered.compute.subgroupclusteredadd_u8vec3_requiredsubgroupsize
 dEQP-VK.subgroups.clustered.compute.subgroupclusteredmul_u8vec3
+dEQP-VK.subgroups.clustered.compute.subgroupclusteredmul_u8vec3_requiredsubgroupsize
 dEQP-VK.subgroups.clustered.compute.subgroupclusteredmin_u8vec3
+dEQP-VK.subgroups.clustered.compute.subgroupclusteredmin_u8vec3_requiredsubgroupsize
 dEQP-VK.subgroups.clustered.compute.subgroupclusteredmax_u8vec3
+dEQP-VK.subgroups.clustered.compute.subgroupclusteredmax_u8vec3_requiredsubgroupsize
 dEQP-VK.subgroups.clustered.compute.subgroupclusteredand_u8vec3
+dEQP-VK.subgroups.clustered.compute.subgroupclusteredand_u8vec3_requiredsubgroupsize
 dEQP-VK.subgroups.clustered.compute.subgroupclusteredor_u8vec3
+dEQP-VK.subgroups.clustered.compute.subgroupclusteredor_u8vec3_requiredsubgroupsize
 dEQP-VK.subgroups.clustered.compute.subgroupclusteredxor_u8vec3
+dEQP-VK.subgroups.clustered.compute.subgroupclusteredxor_u8vec3_requiredsubgroupsize
 dEQP-VK.subgroups.clustered.compute.subgroupclusteredadd_u8vec4
+dEQP-VK.subgroups.clustered.compute.subgroupclusteredadd_u8vec4_requiredsubgroupsize
 dEQP-VK.subgroups.clustered.compute.subgroupclusteredmul_u8vec4
+dEQP-VK.subgroups.clustered.compute.subgroupclusteredmul_u8vec4_requiredsubgroupsize
 dEQP-VK.subgroups.clustered.compute.subgroupclusteredmin_u8vec4
+dEQP-VK.subgroups.clustered.compute.subgroupclusteredmin_u8vec4_requiredsubgroupsize
 dEQP-VK.subgroups.clustered.compute.subgroupclusteredmax_u8vec4
+dEQP-VK.subgroups.clustered.compute.subgroupclusteredmax_u8vec4_requiredsubgroupsize
 dEQP-VK.subgroups.clustered.compute.subgroupclusteredand_u8vec4
+dEQP-VK.subgroups.clustered.compute.subgroupclusteredand_u8vec4_requiredsubgroupsize
 dEQP-VK.subgroups.clustered.compute.subgroupclusteredor_u8vec4
+dEQP-VK.subgroups.clustered.compute.subgroupclusteredor_u8vec4_requiredsubgroupsize
 dEQP-VK.subgroups.clustered.compute.subgroupclusteredxor_u8vec4
+dEQP-VK.subgroups.clustered.compute.subgroupclusteredxor_u8vec4_requiredsubgroupsize
 dEQP-VK.subgroups.clustered.compute.subgroupclusteredadd_int16_t
+dEQP-VK.subgroups.clustered.compute.subgroupclusteredadd_int16_t_requiredsubgroupsize
 dEQP-VK.subgroups.clustered.compute.subgroupclusteredmul_int16_t
+dEQP-VK.subgroups.clustered.compute.subgroupclusteredmul_int16_t_requiredsubgroupsize
 dEQP-VK.subgroups.clustered.compute.subgroupclusteredmin_int16_t
+dEQP-VK.subgroups.clustered.compute.subgroupclusteredmin_int16_t_requiredsubgroupsize
 dEQP-VK.subgroups.clustered.compute.subgroupclusteredmax_int16_t
+dEQP-VK.subgroups.clustered.compute.subgroupclusteredmax_int16_t_requiredsubgroupsize
 dEQP-VK.subgroups.clustered.compute.subgroupclusteredand_int16_t
+dEQP-VK.subgroups.clustered.compute.subgroupclusteredand_int16_t_requiredsubgroupsize
 dEQP-VK.subgroups.clustered.compute.subgroupclusteredor_int16_t
+dEQP-VK.subgroups.clustered.compute.subgroupclusteredor_int16_t_requiredsubgroupsize
 dEQP-VK.subgroups.clustered.compute.subgroupclusteredxor_int16_t
+dEQP-VK.subgroups.clustered.compute.subgroupclusteredxor_int16_t_requiredsubgroupsize
 dEQP-VK.subgroups.clustered.compute.subgroupclusteredadd_i16vec2
+dEQP-VK.subgroups.clustered.compute.subgroupclusteredadd_i16vec2_requiredsubgroupsize
 dEQP-VK.subgroups.clustered.compute.subgroupclusteredmul_i16vec2
+dEQP-VK.subgroups.clustered.compute.subgroupclusteredmul_i16vec2_requiredsubgroupsize
 dEQP-VK.subgroups.clustered.compute.subgroupclusteredmin_i16vec2
+dEQP-VK.subgroups.clustered.compute.subgroupclusteredmin_i16vec2_requiredsubgroupsize
 dEQP-VK.subgroups.clustered.compute.subgroupclusteredmax_i16vec2
+dEQP-VK.subgroups.clustered.compute.subgroupclusteredmax_i16vec2_requiredsubgroupsize
 dEQP-VK.subgroups.clustered.compute.subgroupclusteredand_i16vec2
+dEQP-VK.subgroups.clustered.compute.subgroupclusteredand_i16vec2_requiredsubgroupsize
 dEQP-VK.subgroups.clustered.compute.subgroupclusteredor_i16vec2
+dEQP-VK.subgroups.clustered.compute.subgroupclusteredor_i16vec2_requiredsubgroupsize
 dEQP-VK.subgroups.clustered.compute.subgroupclusteredxor_i16vec2
+dEQP-VK.subgroups.clustered.compute.subgroupclusteredxor_i16vec2_requiredsubgroupsize
 dEQP-VK.subgroups.clustered.compute.subgroupclusteredadd_i16vec3
+dEQP-VK.subgroups.clustered.compute.subgroupclusteredadd_i16vec3_requiredsubgroupsize
 dEQP-VK.subgroups.clustered.compute.subgroupclusteredmul_i16vec3
+dEQP-VK.subgroups.clustered.compute.subgroupclusteredmul_i16vec3_requiredsubgroupsize
 dEQP-VK.subgroups.clustered.compute.subgroupclusteredmin_i16vec3
+dEQP-VK.subgroups.clustered.compute.subgroupclusteredmin_i16vec3_requiredsubgroupsize
 dEQP-VK.subgroups.clustered.compute.subgroupclusteredmax_i16vec3
+dEQP-VK.subgroups.clustered.compute.subgroupclusteredmax_i16vec3_requiredsubgroupsize
 dEQP-VK.subgroups.clustered.compute.subgroupclusteredand_i16vec3
+dEQP-VK.subgroups.clustered.compute.subgroupclusteredand_i16vec3_requiredsubgroupsize
 dEQP-VK.subgroups.clustered.compute.subgroupclusteredor_i16vec3
+dEQP-VK.subgroups.clustered.compute.subgroupclusteredor_i16vec3_requiredsubgroupsize
 dEQP-VK.subgroups.clustered.compute.subgroupclusteredxor_i16vec3
+dEQP-VK.subgroups.clustered.compute.subgroupclusteredxor_i16vec3_requiredsubgroupsize
 dEQP-VK.subgroups.clustered.compute.subgroupclusteredadd_i16vec4
+dEQP-VK.subgroups.clustered.compute.subgroupclusteredadd_i16vec4_requiredsubgroupsize
 dEQP-VK.subgroups.clustered.compute.subgroupclusteredmul_i16vec4
+dEQP-VK.subgroups.clustered.compute.subgroupclusteredmul_i16vec4_requiredsubgroupsize
 dEQP-VK.subgroups.clustered.compute.subgroupclusteredmin_i16vec4
+dEQP-VK.subgroups.clustered.compute.subgroupclusteredmin_i16vec4_requiredsubgroupsize
 dEQP-VK.subgroups.clustered.compute.subgroupclusteredmax_i16vec4
+dEQP-VK.subgroups.clustered.compute.subgroupclusteredmax_i16vec4_requiredsubgroupsize
 dEQP-VK.subgroups.clustered.compute.subgroupclusteredand_i16vec4
+dEQP-VK.subgroups.clustered.compute.subgroupclusteredand_i16vec4_requiredsubgroupsize
 dEQP-VK.subgroups.clustered.compute.subgroupclusteredor_i16vec4
+dEQP-VK.subgroups.clustered.compute.subgroupclusteredor_i16vec4_requiredsubgroupsize
 dEQP-VK.subgroups.clustered.compute.subgroupclusteredxor_i16vec4
+dEQP-VK.subgroups.clustered.compute.subgroupclusteredxor_i16vec4_requiredsubgroupsize
 dEQP-VK.subgroups.clustered.compute.subgroupclusteredadd_uint16_t
+dEQP-VK.subgroups.clustered.compute.subgroupclusteredadd_uint16_t_requiredsubgroupsize
 dEQP-VK.subgroups.clustered.compute.subgroupclusteredmul_uint16_t
+dEQP-VK.subgroups.clustered.compute.subgroupclusteredmul_uint16_t_requiredsubgroupsize
 dEQP-VK.subgroups.clustered.compute.subgroupclusteredmin_uint16_t
+dEQP-VK.subgroups.clustered.compute.subgroupclusteredmin_uint16_t_requiredsubgroupsize
 dEQP-VK.subgroups.clustered.compute.subgroupclusteredmax_uint16_t
+dEQP-VK.subgroups.clustered.compute.subgroupclusteredmax_uint16_t_requiredsubgroupsize
 dEQP-VK.subgroups.clustered.compute.subgroupclusteredand_uint16_t
+dEQP-VK.subgroups.clustered.compute.subgroupclusteredand_uint16_t_requiredsubgroupsize
 dEQP-VK.subgroups.clustered.compute.subgroupclusteredor_uint16_t
+dEQP-VK.subgroups.clustered.compute.subgroupclusteredor_uint16_t_requiredsubgroupsize
 dEQP-VK.subgroups.clustered.compute.subgroupclusteredxor_uint16_t
+dEQP-VK.subgroups.clustered.compute.subgroupclusteredxor_uint16_t_requiredsubgroupsize
 dEQP-VK.subgroups.clustered.compute.subgroupclusteredadd_u16vec2
+dEQP-VK.subgroups.clustered.compute.subgroupclusteredadd_u16vec2_requiredsubgroupsize
 dEQP-VK.subgroups.clustered.compute.subgroupclusteredmul_u16vec2
+dEQP-VK.subgroups.clustered.compute.subgroupclusteredmul_u16vec2_requiredsubgroupsize
 dEQP-VK.subgroups.clustered.compute.subgroupclusteredmin_u16vec2
+dEQP-VK.subgroups.clustered.compute.subgroupclusteredmin_u16vec2_requiredsubgroupsize
 dEQP-VK.subgroups.clustered.compute.subgroupclusteredmax_u16vec2
+dEQP-VK.subgroups.clustered.compute.subgroupclusteredmax_u16vec2_requiredsubgroupsize
 dEQP-VK.subgroups.clustered.compute.subgroupclusteredand_u16vec2
+dEQP-VK.subgroups.clustered.compute.subgroupclusteredand_u16vec2_requiredsubgroupsize
 dEQP-VK.subgroups.clustered.compute.subgroupclusteredor_u16vec2
+dEQP-VK.subgroups.clustered.compute.subgroupclusteredor_u16vec2_requiredsubgroupsize
 dEQP-VK.subgroups.clustered.compute.subgroupclusteredxor_u16vec2
+dEQP-VK.subgroups.clustered.compute.subgroupclusteredxor_u16vec2_requiredsubgroupsize
 dEQP-VK.subgroups.clustered.compute.subgroupclusteredadd_u16vec3
+dEQP-VK.subgroups.clustered.compute.subgroupclusteredadd_u16vec3_requiredsubgroupsize
 dEQP-VK.subgroups.clustered.compute.subgroupclusteredmul_u16vec3
+dEQP-VK.subgroups.clustered.compute.subgroupclusteredmul_u16vec3_requiredsubgroupsize
 dEQP-VK.subgroups.clustered.compute.subgroupclusteredmin_u16vec3
+dEQP-VK.subgroups.clustered.compute.subgroupclusteredmin_u16vec3_requiredsubgroupsize
 dEQP-VK.subgroups.clustered.compute.subgroupclusteredmax_u16vec3
+dEQP-VK.subgroups.clustered.compute.subgroupclusteredmax_u16vec3_requiredsubgroupsize
 dEQP-VK.subgroups.clustered.compute.subgroupclusteredand_u16vec3
+dEQP-VK.subgroups.clustered.compute.subgroupclusteredand_u16vec3_requiredsubgroupsize
 dEQP-VK.subgroups.clustered.compute.subgroupclusteredor_u16vec3
+dEQP-VK.subgroups.clustered.compute.subgroupclusteredor_u16vec3_requiredsubgroupsize
 dEQP-VK.subgroups.clustered.compute.subgroupclusteredxor_u16vec3
+dEQP-VK.subgroups.clustered.compute.subgroupclusteredxor_u16vec3_requiredsubgroupsize
 dEQP-VK.subgroups.clustered.compute.subgroupclusteredadd_u16vec4
+dEQP-VK.subgroups.clustered.compute.subgroupclusteredadd_u16vec4_requiredsubgroupsize
 dEQP-VK.subgroups.clustered.compute.subgroupclusteredmul_u16vec4
+dEQP-VK.subgroups.clustered.compute.subgroupclusteredmul_u16vec4_requiredsubgroupsize
 dEQP-VK.subgroups.clustered.compute.subgroupclusteredmin_u16vec4
+dEQP-VK.subgroups.clustered.compute.subgroupclusteredmin_u16vec4_requiredsubgroupsize
 dEQP-VK.subgroups.clustered.compute.subgroupclusteredmax_u16vec4
+dEQP-VK.subgroups.clustered.compute.subgroupclusteredmax_u16vec4_requiredsubgroupsize
 dEQP-VK.subgroups.clustered.compute.subgroupclusteredand_u16vec4
+dEQP-VK.subgroups.clustered.compute.subgroupclusteredand_u16vec4_requiredsubgroupsize
 dEQP-VK.subgroups.clustered.compute.subgroupclusteredor_u16vec4
+dEQP-VK.subgroups.clustered.compute.subgroupclusteredor_u16vec4_requiredsubgroupsize
 dEQP-VK.subgroups.clustered.compute.subgroupclusteredxor_u16vec4
+dEQP-VK.subgroups.clustered.compute.subgroupclusteredxor_u16vec4_requiredsubgroupsize
 dEQP-VK.subgroups.clustered.compute.subgroupclusteredadd_int
+dEQP-VK.subgroups.clustered.compute.subgroupclusteredadd_int_requiredsubgroupsize
 dEQP-VK.subgroups.clustered.compute.subgroupclusteredmul_int
+dEQP-VK.subgroups.clustered.compute.subgroupclusteredmul_int_requiredsubgroupsize
 dEQP-VK.subgroups.clustered.compute.subgroupclusteredmin_int
+dEQP-VK.subgroups.clustered.compute.subgroupclusteredmin_int_requiredsubgroupsize
 dEQP-VK.subgroups.clustered.compute.subgroupclusteredmax_int
+dEQP-VK.subgroups.clustered.compute.subgroupclusteredmax_int_requiredsubgroupsize
 dEQP-VK.subgroups.clustered.compute.subgroupclusteredand_int
+dEQP-VK.subgroups.clustered.compute.subgroupclusteredand_int_requiredsubgroupsize
 dEQP-VK.subgroups.clustered.compute.subgroupclusteredor_int
+dEQP-VK.subgroups.clustered.compute.subgroupclusteredor_int_requiredsubgroupsize
 dEQP-VK.subgroups.clustered.compute.subgroupclusteredxor_int
+dEQP-VK.subgroups.clustered.compute.subgroupclusteredxor_int_requiredsubgroupsize
 dEQP-VK.subgroups.clustered.compute.subgroupclusteredadd_ivec2
+dEQP-VK.subgroups.clustered.compute.subgroupclusteredadd_ivec2_requiredsubgroupsize
 dEQP-VK.subgroups.clustered.compute.subgroupclusteredmul_ivec2
+dEQP-VK.subgroups.clustered.compute.subgroupclusteredmul_ivec2_requiredsubgroupsize
 dEQP-VK.subgroups.clustered.compute.subgroupclusteredmin_ivec2
+dEQP-VK.subgroups.clustered.compute.subgroupclusteredmin_ivec2_requiredsubgroupsize
 dEQP-VK.subgroups.clustered.compute.subgroupclusteredmax_ivec2
+dEQP-VK.subgroups.clustered.compute.subgroupclusteredmax_ivec2_requiredsubgroupsize
 dEQP-VK.subgroups.clustered.compute.subgroupclusteredand_ivec2
+dEQP-VK.subgroups.clustered.compute.subgroupclusteredand_ivec2_requiredsubgroupsize
 dEQP-VK.subgroups.clustered.compute.subgroupclusteredor_ivec2
+dEQP-VK.subgroups.clustered.compute.subgroupclusteredor_ivec2_requiredsubgroupsize
 dEQP-VK.subgroups.clustered.compute.subgroupclusteredxor_ivec2
+dEQP-VK.subgroups.clustered.compute.subgroupclusteredxor_ivec2_requiredsubgroupsize
 dEQP-VK.subgroups.clustered.compute.subgroupclusteredadd_ivec3
+dEQP-VK.subgroups.clustered.compute.subgroupclusteredadd_ivec3_requiredsubgroupsize
 dEQP-VK.subgroups.clustered.compute.subgroupclusteredmul_ivec3
+dEQP-VK.subgroups.clustered.compute.subgroupclusteredmul_ivec3_requiredsubgroupsize
 dEQP-VK.subgroups.clustered.compute.subgroupclusteredmin_ivec3
+dEQP-VK.subgroups.clustered.compute.subgroupclusteredmin_ivec3_requiredsubgroupsize
 dEQP-VK.subgroups.clustered.compute.subgroupclusteredmax_ivec3
+dEQP-VK.subgroups.clustered.compute.subgroupclusteredmax_ivec3_requiredsubgroupsize
 dEQP-VK.subgroups.clustered.compute.subgroupclusteredand_ivec3
+dEQP-VK.subgroups.clustered.compute.subgroupclusteredand_ivec3_requiredsubgroupsize
 dEQP-VK.subgroups.clustered.compute.subgroupclusteredor_ivec3
+dEQP-VK.subgroups.clustered.compute.subgroupclusteredor_ivec3_requiredsubgroupsize
 dEQP-VK.subgroups.clustered.compute.subgroupclusteredxor_ivec3
+dEQP-VK.subgroups.clustered.compute.subgroupclusteredxor_ivec3_requiredsubgroupsize
 dEQP-VK.subgroups.clustered.compute.subgroupclusteredadd_ivec4
+dEQP-VK.subgroups.clustered.compute.subgroupclusteredadd_ivec4_requiredsubgroupsize
 dEQP-VK.subgroups.clustered.compute.subgroupclusteredmul_ivec4
+dEQP-VK.subgroups.clustered.compute.subgroupclusteredmul_ivec4_requiredsubgroupsize
 dEQP-VK.subgroups.clustered.compute.subgroupclusteredmin_ivec4
+dEQP-VK.subgroups.clustered.compute.subgroupclusteredmin_ivec4_requiredsubgroupsize
 dEQP-VK.subgroups.clustered.compute.subgroupclusteredmax_ivec4
+dEQP-VK.subgroups.clustered.compute.subgroupclusteredmax_ivec4_requiredsubgroupsize
 dEQP-VK.subgroups.clustered.compute.subgroupclusteredand_ivec4
+dEQP-VK.subgroups.clustered.compute.subgroupclusteredand_ivec4_requiredsubgroupsize
 dEQP-VK.subgroups.clustered.compute.subgroupclusteredor_ivec4
+dEQP-VK.subgroups.clustered.compute.subgroupclusteredor_ivec4_requiredsubgroupsize
 dEQP-VK.subgroups.clustered.compute.subgroupclusteredxor_ivec4
+dEQP-VK.subgroups.clustered.compute.subgroupclusteredxor_ivec4_requiredsubgroupsize
 dEQP-VK.subgroups.clustered.compute.subgroupclusteredadd_uint
+dEQP-VK.subgroups.clustered.compute.subgroupclusteredadd_uint_requiredsubgroupsize
 dEQP-VK.subgroups.clustered.compute.subgroupclusteredmul_uint
+dEQP-VK.subgroups.clustered.compute.subgroupclusteredmul_uint_requiredsubgroupsize
 dEQP-VK.subgroups.clustered.compute.subgroupclusteredmin_uint
+dEQP-VK.subgroups.clustered.compute.subgroupclusteredmin_uint_requiredsubgroupsize
 dEQP-VK.subgroups.clustered.compute.subgroupclusteredmax_uint
+dEQP-VK.subgroups.clustered.compute.subgroupclusteredmax_uint_requiredsubgroupsize
 dEQP-VK.subgroups.clustered.compute.subgroupclusteredand_uint
+dEQP-VK.subgroups.clustered.compute.subgroupclusteredand_uint_requiredsubgroupsize
 dEQP-VK.subgroups.clustered.compute.subgroupclusteredor_uint
+dEQP-VK.subgroups.clustered.compute.subgroupclusteredor_uint_requiredsubgroupsize
 dEQP-VK.subgroups.clustered.compute.subgroupclusteredxor_uint
+dEQP-VK.subgroups.clustered.compute.subgroupclusteredxor_uint_requiredsubgroupsize
 dEQP-VK.subgroups.clustered.compute.subgroupclusteredadd_uvec2
+dEQP-VK.subgroups.clustered.compute.subgroupclusteredadd_uvec2_requiredsubgroupsize
 dEQP-VK.subgroups.clustered.compute.subgroupclusteredmul_uvec2
+dEQP-VK.subgroups.clustered.compute.subgroupclusteredmul_uvec2_requiredsubgroupsize
 dEQP-VK.subgroups.clustered.compute.subgroupclusteredmin_uvec2
+dEQP-VK.subgroups.clustered.compute.subgroupclusteredmin_uvec2_requiredsubgroupsize
 dEQP-VK.subgroups.clustered.compute.subgroupclusteredmax_uvec2
+dEQP-VK.subgroups.clustered.compute.subgroupclusteredmax_uvec2_requiredsubgroupsize
 dEQP-VK.subgroups.clustered.compute.subgroupclusteredand_uvec2
+dEQP-VK.subgroups.clustered.compute.subgroupclusteredand_uvec2_requiredsubgroupsize
 dEQP-VK.subgroups.clustered.compute.subgroupclusteredor_uvec2
+dEQP-VK.subgroups.clustered.compute.subgroupclusteredor_uvec2_requiredsubgroupsize
 dEQP-VK.subgroups.clustered.compute.subgroupclusteredxor_uvec2
+dEQP-VK.subgroups.clustered.compute.subgroupclusteredxor_uvec2_requiredsubgroupsize
 dEQP-VK.subgroups.clustered.compute.subgroupclusteredadd_uvec3
+dEQP-VK.subgroups.clustered.compute.subgroupclusteredadd_uvec3_requiredsubgroupsize
 dEQP-VK.subgroups.clustered.compute.subgroupclusteredmul_uvec3
+dEQP-VK.subgroups.clustered.compute.subgroupclusteredmul_uvec3_requiredsubgroupsize
 dEQP-VK.subgroups.clustered.compute.subgroupclusteredmin_uvec3
+dEQP-VK.subgroups.clustered.compute.subgroupclusteredmin_uvec3_requiredsubgroupsize
 dEQP-VK.subgroups.clustered.compute.subgroupclusteredmax_uvec3
+dEQP-VK.subgroups.clustered.compute.subgroupclusteredmax_uvec3_requiredsubgroupsize
 dEQP-VK.subgroups.clustered.compute.subgroupclusteredand_uvec3
+dEQP-VK.subgroups.clustered.compute.subgroupclusteredand_uvec3_requiredsubgroupsize
 dEQP-VK.subgroups.clustered.compute.subgroupclusteredor_uvec3
+dEQP-VK.subgroups.clustered.compute.subgroupclusteredor_uvec3_requiredsubgroupsize
 dEQP-VK.subgroups.clustered.compute.subgroupclusteredxor_uvec3
+dEQP-VK.subgroups.clustered.compute.subgroupclusteredxor_uvec3_requiredsubgroupsize
 dEQP-VK.subgroups.clustered.compute.subgroupclusteredadd_uvec4
+dEQP-VK.subgroups.clustered.compute.subgroupclusteredadd_uvec4_requiredsubgroupsize
 dEQP-VK.subgroups.clustered.compute.subgroupclusteredmul_uvec4
+dEQP-VK.subgroups.clustered.compute.subgroupclusteredmul_uvec4_requiredsubgroupsize
 dEQP-VK.subgroups.clustered.compute.subgroupclusteredmin_uvec4
+dEQP-VK.subgroups.clustered.compute.subgroupclusteredmin_uvec4_requiredsubgroupsize
 dEQP-VK.subgroups.clustered.compute.subgroupclusteredmax_uvec4
+dEQP-VK.subgroups.clustered.compute.subgroupclusteredmax_uvec4_requiredsubgroupsize
 dEQP-VK.subgroups.clustered.compute.subgroupclusteredand_uvec4
+dEQP-VK.subgroups.clustered.compute.subgroupclusteredand_uvec4_requiredsubgroupsize
 dEQP-VK.subgroups.clustered.compute.subgroupclusteredor_uvec4
+dEQP-VK.subgroups.clustered.compute.subgroupclusteredor_uvec4_requiredsubgroupsize
 dEQP-VK.subgroups.clustered.compute.subgroupclusteredxor_uvec4
+dEQP-VK.subgroups.clustered.compute.subgroupclusteredxor_uvec4_requiredsubgroupsize
 dEQP-VK.subgroups.clustered.compute.subgroupclusteredadd_int64_t
+dEQP-VK.subgroups.clustered.compute.subgroupclusteredadd_int64_t_requiredsubgroupsize
 dEQP-VK.subgroups.clustered.compute.subgroupclusteredmul_int64_t
+dEQP-VK.subgroups.clustered.compute.subgroupclusteredmul_int64_t_requiredsubgroupsize
 dEQP-VK.subgroups.clustered.compute.subgroupclusteredmin_int64_t
+dEQP-VK.subgroups.clustered.compute.subgroupclusteredmin_int64_t_requiredsubgroupsize
 dEQP-VK.subgroups.clustered.compute.subgroupclusteredmax_int64_t
+dEQP-VK.subgroups.clustered.compute.subgroupclusteredmax_int64_t_requiredsubgroupsize
 dEQP-VK.subgroups.clustered.compute.subgroupclusteredand_int64_t
+dEQP-VK.subgroups.clustered.compute.subgroupclusteredand_int64_t_requiredsubgroupsize
 dEQP-VK.subgroups.clustered.compute.subgroupclusteredor_int64_t
+dEQP-VK.subgroups.clustered.compute.subgroupclusteredor_int64_t_requiredsubgroupsize
 dEQP-VK.subgroups.clustered.compute.subgroupclusteredxor_int64_t
+dEQP-VK.subgroups.clustered.compute.subgroupclusteredxor_int64_t_requiredsubgroupsize
 dEQP-VK.subgroups.clustered.compute.subgroupclusteredadd_i64vec2
+dEQP-VK.subgroups.clustered.compute.subgroupclusteredadd_i64vec2_requiredsubgroupsize
 dEQP-VK.subgroups.clustered.compute.subgroupclusteredmul_i64vec2
+dEQP-VK.subgroups.clustered.compute.subgroupclusteredmul_i64vec2_requiredsubgroupsize
 dEQP-VK.subgroups.clustered.compute.subgroupclusteredmin_i64vec2
+dEQP-VK.subgroups.clustered.compute.subgroupclusteredmin_i64vec2_requiredsubgroupsize
 dEQP-VK.subgroups.clustered.compute.subgroupclusteredmax_i64vec2
+dEQP-VK.subgroups.clustered.compute.subgroupclusteredmax_i64vec2_requiredsubgroupsize
 dEQP-VK.subgroups.clustered.compute.subgroupclusteredand_i64vec2
+dEQP-VK.subgroups.clustered.compute.subgroupclusteredand_i64vec2_requiredsubgroupsize
 dEQP-VK.subgroups.clustered.compute.subgroupclusteredor_i64vec2
+dEQP-VK.subgroups.clustered.compute.subgroupclusteredor_i64vec2_requiredsubgroupsize
 dEQP-VK.subgroups.clustered.compute.subgroupclusteredxor_i64vec2
+dEQP-VK.subgroups.clustered.compute.subgroupclusteredxor_i64vec2_requiredsubgroupsize
 dEQP-VK.subgroups.clustered.compute.subgroupclusteredadd_i64vec3
+dEQP-VK.subgroups.clustered.compute.subgroupclusteredadd_i64vec3_requiredsubgroupsize
 dEQP-VK.subgroups.clustered.compute.subgroupclusteredmul_i64vec3
+dEQP-VK.subgroups.clustered.compute.subgroupclusteredmul_i64vec3_requiredsubgroupsize
 dEQP-VK.subgroups.clustered.compute.subgroupclusteredmin_i64vec3
+dEQP-VK.subgroups.clustered.compute.subgroupclusteredmin_i64vec3_requiredsubgroupsize
 dEQP-VK.subgroups.clustered.compute.subgroupclusteredmax_i64vec3
+dEQP-VK.subgroups.clustered.compute.subgroupclusteredmax_i64vec3_requiredsubgroupsize
 dEQP-VK.subgroups.clustered.compute.subgroupclusteredand_i64vec3
+dEQP-VK.subgroups.clustered.compute.subgroupclusteredand_i64vec3_requiredsubgroupsize
 dEQP-VK.subgroups.clustered.compute.subgroupclusteredor_i64vec3
+dEQP-VK.subgroups.clustered.compute.subgroupclusteredor_i64vec3_requiredsubgroupsize
 dEQP-VK.subgroups.clustered.compute.subgroupclusteredxor_i64vec3
+dEQP-VK.subgroups.clustered.compute.subgroupclusteredxor_i64vec3_requiredsubgroupsize
 dEQP-VK.subgroups.clustered.compute.subgroupclusteredadd_i64vec4
+dEQP-VK.subgroups.clustered.compute.subgroupclusteredadd_i64vec4_requiredsubgroupsize
 dEQP-VK.subgroups.clustered.compute.subgroupclusteredmul_i64vec4
+dEQP-VK.subgroups.clustered.compute.subgroupclusteredmul_i64vec4_requiredsubgroupsize
 dEQP-VK.subgroups.clustered.compute.subgroupclusteredmin_i64vec4
+dEQP-VK.subgroups.clustered.compute.subgroupclusteredmin_i64vec4_requiredsubgroupsize
 dEQP-VK.subgroups.clustered.compute.subgroupclusteredmax_i64vec4
+dEQP-VK.subgroups.clustered.compute.subgroupclusteredmax_i64vec4_requiredsubgroupsize
 dEQP-VK.subgroups.clustered.compute.subgroupclusteredand_i64vec4
+dEQP-VK.subgroups.clustered.compute.subgroupclusteredand_i64vec4_requiredsubgroupsize
 dEQP-VK.subgroups.clustered.compute.subgroupclusteredor_i64vec4
+dEQP-VK.subgroups.clustered.compute.subgroupclusteredor_i64vec4_requiredsubgroupsize
 dEQP-VK.subgroups.clustered.compute.subgroupclusteredxor_i64vec4
+dEQP-VK.subgroups.clustered.compute.subgroupclusteredxor_i64vec4_requiredsubgroupsize
 dEQP-VK.subgroups.clustered.compute.subgroupclusteredadd_uint64_t
+dEQP-VK.subgroups.clustered.compute.subgroupclusteredadd_uint64_t_requiredsubgroupsize
 dEQP-VK.subgroups.clustered.compute.subgroupclusteredmul_uint64_t
+dEQP-VK.subgroups.clustered.compute.subgroupclusteredmul_uint64_t_requiredsubgroupsize
 dEQP-VK.subgroups.clustered.compute.subgroupclusteredmin_uint64_t
+dEQP-VK.subgroups.clustered.compute.subgroupclusteredmin_uint64_t_requiredsubgroupsize
 dEQP-VK.subgroups.clustered.compute.subgroupclusteredmax_uint64_t
+dEQP-VK.subgroups.clustered.compute.subgroupclusteredmax_uint64_t_requiredsubgroupsize
 dEQP-VK.subgroups.clustered.compute.subgroupclusteredand_uint64_t
+dEQP-VK.subgroups.clustered.compute.subgroupclusteredand_uint64_t_requiredsubgroupsize
 dEQP-VK.subgroups.clustered.compute.subgroupclusteredor_uint64_t
+dEQP-VK.subgroups.clustered.compute.subgroupclusteredor_uint64_t_requiredsubgroupsize
 dEQP-VK.subgroups.clustered.compute.subgroupclusteredxor_uint64_t
+dEQP-VK.subgroups.clustered.compute.subgroupclusteredxor_uint64_t_requiredsubgroupsize
 dEQP-VK.subgroups.clustered.compute.subgroupclusteredadd_u64vec2
+dEQP-VK.subgroups.clustered.compute.subgroupclusteredadd_u64vec2_requiredsubgroupsize
 dEQP-VK.subgroups.clustered.compute.subgroupclusteredmul_u64vec2
+dEQP-VK.subgroups.clustered.compute.subgroupclusteredmul_u64vec2_requiredsubgroupsize
 dEQP-VK.subgroups.clustered.compute.subgroupclusteredmin_u64vec2
+dEQP-VK.subgroups.clustered.compute.subgroupclusteredmin_u64vec2_requiredsubgroupsize
 dEQP-VK.subgroups.clustered.compute.subgroupclusteredmax_u64vec2
+dEQP-VK.subgroups.clustered.compute.subgroupclusteredmax_u64vec2_requiredsubgroupsize
 dEQP-VK.subgroups.clustered.compute.subgroupclusteredand_u64vec2
+dEQP-VK.subgroups.clustered.compute.subgroupclusteredand_u64vec2_requiredsubgroupsize
 dEQP-VK.subgroups.clustered.compute.subgroupclusteredor_u64vec2
+dEQP-VK.subgroups.clustered.compute.subgroupclusteredor_u64vec2_requiredsubgroupsize
 dEQP-VK.subgroups.clustered.compute.subgroupclusteredxor_u64vec2
+dEQP-VK.subgroups.clustered.compute.subgroupclusteredxor_u64vec2_requiredsubgroupsize
 dEQP-VK.subgroups.clustered.compute.subgroupclusteredadd_u64vec3
+dEQP-VK.subgroups.clustered.compute.subgroupclusteredadd_u64vec3_requiredsubgroupsize
 dEQP-VK.subgroups.clustered.compute.subgroupclusteredmul_u64vec3
+dEQP-VK.subgroups.clustered.compute.subgroupclusteredmul_u64vec3_requiredsubgroupsize
 dEQP-VK.subgroups.clustered.compute.subgroupclusteredmin_u64vec3
+dEQP-VK.subgroups.clustered.compute.subgroupclusteredmin_u64vec3_requiredsubgroupsize
 dEQP-VK.subgroups.clustered.compute.subgroupclusteredmax_u64vec3
+dEQP-VK.subgroups.clustered.compute.subgroupclusteredmax_u64vec3_requiredsubgroupsize
 dEQP-VK.subgroups.clustered.compute.subgroupclusteredand_u64vec3
+dEQP-VK.subgroups.clustered.compute.subgroupclusteredand_u64vec3_requiredsubgroupsize
 dEQP-VK.subgroups.clustered.compute.subgroupclusteredor_u64vec3
+dEQP-VK.subgroups.clustered.compute.subgroupclusteredor_u64vec3_requiredsubgroupsize
 dEQP-VK.subgroups.clustered.compute.subgroupclusteredxor_u64vec3
+dEQP-VK.subgroups.clustered.compute.subgroupclusteredxor_u64vec3_requiredsubgroupsize
 dEQP-VK.subgroups.clustered.compute.subgroupclusteredadd_u64vec4
+dEQP-VK.subgroups.clustered.compute.subgroupclusteredadd_u64vec4_requiredsubgroupsize
 dEQP-VK.subgroups.clustered.compute.subgroupclusteredmul_u64vec4
+dEQP-VK.subgroups.clustered.compute.subgroupclusteredmul_u64vec4_requiredsubgroupsize
 dEQP-VK.subgroups.clustered.compute.subgroupclusteredmin_u64vec4
+dEQP-VK.subgroups.clustered.compute.subgroupclusteredmin_u64vec4_requiredsubgroupsize
 dEQP-VK.subgroups.clustered.compute.subgroupclusteredmax_u64vec4
+dEQP-VK.subgroups.clustered.compute.subgroupclusteredmax_u64vec4_requiredsubgroupsize
 dEQP-VK.subgroups.clustered.compute.subgroupclusteredand_u64vec4
+dEQP-VK.subgroups.clustered.compute.subgroupclusteredand_u64vec4_requiredsubgroupsize
 dEQP-VK.subgroups.clustered.compute.subgroupclusteredor_u64vec4
+dEQP-VK.subgroups.clustered.compute.subgroupclusteredor_u64vec4_requiredsubgroupsize
 dEQP-VK.subgroups.clustered.compute.subgroupclusteredxor_u64vec4
+dEQP-VK.subgroups.clustered.compute.subgroupclusteredxor_u64vec4_requiredsubgroupsize
 dEQP-VK.subgroups.clustered.compute.subgroupclusteredadd_float16_t
+dEQP-VK.subgroups.clustered.compute.subgroupclusteredadd_float16_t_requiredsubgroupsize
 dEQP-VK.subgroups.clustered.compute.subgroupclusteredmul_float16_t
+dEQP-VK.subgroups.clustered.compute.subgroupclusteredmul_float16_t_requiredsubgroupsize
 dEQP-VK.subgroups.clustered.compute.subgroupclusteredmin_float16_t
+dEQP-VK.subgroups.clustered.compute.subgroupclusteredmin_float16_t_requiredsubgroupsize
 dEQP-VK.subgroups.clustered.compute.subgroupclusteredmax_float16_t
+dEQP-VK.subgroups.clustered.compute.subgroupclusteredmax_float16_t_requiredsubgroupsize
 dEQP-VK.subgroups.clustered.compute.subgroupclusteredadd_f16vec2
+dEQP-VK.subgroups.clustered.compute.subgroupclusteredadd_f16vec2_requiredsubgroupsize
 dEQP-VK.subgroups.clustered.compute.subgroupclusteredmul_f16vec2
+dEQP-VK.subgroups.clustered.compute.subgroupclusteredmul_f16vec2_requiredsubgroupsize
 dEQP-VK.subgroups.clustered.compute.subgroupclusteredmin_f16vec2
+dEQP-VK.subgroups.clustered.compute.subgroupclusteredmin_f16vec2_requiredsubgroupsize
 dEQP-VK.subgroups.clustered.compute.subgroupclusteredmax_f16vec2
+dEQP-VK.subgroups.clustered.compute.subgroupclusteredmax_f16vec2_requiredsubgroupsize
 dEQP-VK.subgroups.clustered.compute.subgroupclusteredadd_f16vec3
+dEQP-VK.subgroups.clustered.compute.subgroupclusteredadd_f16vec3_requiredsubgroupsize
 dEQP-VK.subgroups.clustered.compute.subgroupclusteredmul_f16vec3
+dEQP-VK.subgroups.clustered.compute.subgroupclusteredmul_f16vec3_requiredsubgroupsize
 dEQP-VK.subgroups.clustered.compute.subgroupclusteredmin_f16vec3
+dEQP-VK.subgroups.clustered.compute.subgroupclusteredmin_f16vec3_requiredsubgroupsize
 dEQP-VK.subgroups.clustered.compute.subgroupclusteredmax_f16vec3
+dEQP-VK.subgroups.clustered.compute.subgroupclusteredmax_f16vec3_requiredsubgroupsize
 dEQP-VK.subgroups.clustered.compute.subgroupclusteredadd_f16vec4
+dEQP-VK.subgroups.clustered.compute.subgroupclusteredadd_f16vec4_requiredsubgroupsize
 dEQP-VK.subgroups.clustered.compute.subgroupclusteredmul_f16vec4
+dEQP-VK.subgroups.clustered.compute.subgroupclusteredmul_f16vec4_requiredsubgroupsize
 dEQP-VK.subgroups.clustered.compute.subgroupclusteredmin_f16vec4
+dEQP-VK.subgroups.clustered.compute.subgroupclusteredmin_f16vec4_requiredsubgroupsize
 dEQP-VK.subgroups.clustered.compute.subgroupclusteredmax_f16vec4
+dEQP-VK.subgroups.clustered.compute.subgroupclusteredmax_f16vec4_requiredsubgroupsize
 dEQP-VK.subgroups.clustered.compute.subgroupclusteredadd_float
+dEQP-VK.subgroups.clustered.compute.subgroupclusteredadd_float_requiredsubgroupsize
 dEQP-VK.subgroups.clustered.compute.subgroupclusteredmul_float
+dEQP-VK.subgroups.clustered.compute.subgroupclusteredmul_float_requiredsubgroupsize
 dEQP-VK.subgroups.clustered.compute.subgroupclusteredmin_float
+dEQP-VK.subgroups.clustered.compute.subgroupclusteredmin_float_requiredsubgroupsize
 dEQP-VK.subgroups.clustered.compute.subgroupclusteredmax_float
+dEQP-VK.subgroups.clustered.compute.subgroupclusteredmax_float_requiredsubgroupsize
 dEQP-VK.subgroups.clustered.compute.subgroupclusteredadd_vec2
+dEQP-VK.subgroups.clustered.compute.subgroupclusteredadd_vec2_requiredsubgroupsize
 dEQP-VK.subgroups.clustered.compute.subgroupclusteredmul_vec2
+dEQP-VK.subgroups.clustered.compute.subgroupclusteredmul_vec2_requiredsubgroupsize
 dEQP-VK.subgroups.clustered.compute.subgroupclusteredmin_vec2
+dEQP-VK.subgroups.clustered.compute.subgroupclusteredmin_vec2_requiredsubgroupsize
 dEQP-VK.subgroups.clustered.compute.subgroupclusteredmax_vec2
+dEQP-VK.subgroups.clustered.compute.subgroupclusteredmax_vec2_requiredsubgroupsize
 dEQP-VK.subgroups.clustered.compute.subgroupclusteredadd_vec3
+dEQP-VK.subgroups.clustered.compute.subgroupclusteredadd_vec3_requiredsubgroupsize
 dEQP-VK.subgroups.clustered.compute.subgroupclusteredmul_vec3
+dEQP-VK.subgroups.clustered.compute.subgroupclusteredmul_vec3_requiredsubgroupsize
 dEQP-VK.subgroups.clustered.compute.subgroupclusteredmin_vec3
+dEQP-VK.subgroups.clustered.compute.subgroupclusteredmin_vec3_requiredsubgroupsize
 dEQP-VK.subgroups.clustered.compute.subgroupclusteredmax_vec3
+dEQP-VK.subgroups.clustered.compute.subgroupclusteredmax_vec3_requiredsubgroupsize
 dEQP-VK.subgroups.clustered.compute.subgroupclusteredadd_vec4
+dEQP-VK.subgroups.clustered.compute.subgroupclusteredadd_vec4_requiredsubgroupsize
 dEQP-VK.subgroups.clustered.compute.subgroupclusteredmul_vec4
+dEQP-VK.subgroups.clustered.compute.subgroupclusteredmul_vec4_requiredsubgroupsize
 dEQP-VK.subgroups.clustered.compute.subgroupclusteredmin_vec4
+dEQP-VK.subgroups.clustered.compute.subgroupclusteredmin_vec4_requiredsubgroupsize
 dEQP-VK.subgroups.clustered.compute.subgroupclusteredmax_vec4
+dEQP-VK.subgroups.clustered.compute.subgroupclusteredmax_vec4_requiredsubgroupsize
 dEQP-VK.subgroups.clustered.compute.subgroupclusteredadd_double
+dEQP-VK.subgroups.clustered.compute.subgroupclusteredadd_double_requiredsubgroupsize
 dEQP-VK.subgroups.clustered.compute.subgroupclusteredmul_double
+dEQP-VK.subgroups.clustered.compute.subgroupclusteredmul_double_requiredsubgroupsize
 dEQP-VK.subgroups.clustered.compute.subgroupclusteredmin_double
+dEQP-VK.subgroups.clustered.compute.subgroupclusteredmin_double_requiredsubgroupsize
 dEQP-VK.subgroups.clustered.compute.subgroupclusteredmax_double
+dEQP-VK.subgroups.clustered.compute.subgroupclusteredmax_double_requiredsubgroupsize
 dEQP-VK.subgroups.clustered.compute.subgroupclusteredadd_dvec2
+dEQP-VK.subgroups.clustered.compute.subgroupclusteredadd_dvec2_requiredsubgroupsize
 dEQP-VK.subgroups.clustered.compute.subgroupclusteredmul_dvec2
+dEQP-VK.subgroups.clustered.compute.subgroupclusteredmul_dvec2_requiredsubgroupsize
 dEQP-VK.subgroups.clustered.compute.subgroupclusteredmin_dvec2
+dEQP-VK.subgroups.clustered.compute.subgroupclusteredmin_dvec2_requiredsubgroupsize
 dEQP-VK.subgroups.clustered.compute.subgroupclusteredmax_dvec2
+dEQP-VK.subgroups.clustered.compute.subgroupclusteredmax_dvec2_requiredsubgroupsize
 dEQP-VK.subgroups.clustered.compute.subgroupclusteredadd_dvec3
+dEQP-VK.subgroups.clustered.compute.subgroupclusteredadd_dvec3_requiredsubgroupsize
 dEQP-VK.subgroups.clustered.compute.subgroupclusteredmul_dvec3
+dEQP-VK.subgroups.clustered.compute.subgroupclusteredmul_dvec3_requiredsubgroupsize
 dEQP-VK.subgroups.clustered.compute.subgroupclusteredmin_dvec3
+dEQP-VK.subgroups.clustered.compute.subgroupclusteredmin_dvec3_requiredsubgroupsize
 dEQP-VK.subgroups.clustered.compute.subgroupclusteredmax_dvec3
+dEQP-VK.subgroups.clustered.compute.subgroupclusteredmax_dvec3_requiredsubgroupsize
 dEQP-VK.subgroups.clustered.compute.subgroupclusteredadd_dvec4
+dEQP-VK.subgroups.clustered.compute.subgroupclusteredadd_dvec4_requiredsubgroupsize
 dEQP-VK.subgroups.clustered.compute.subgroupclusteredmul_dvec4
+dEQP-VK.subgroups.clustered.compute.subgroupclusteredmul_dvec4_requiredsubgroupsize
 dEQP-VK.subgroups.clustered.compute.subgroupclusteredmin_dvec4
+dEQP-VK.subgroups.clustered.compute.subgroupclusteredmin_dvec4_requiredsubgroupsize
 dEQP-VK.subgroups.clustered.compute.subgroupclusteredmax_dvec4
+dEQP-VK.subgroups.clustered.compute.subgroupclusteredmax_dvec4_requiredsubgroupsize
 dEQP-VK.subgroups.clustered.compute.subgroupclusteredand_bool
+dEQP-VK.subgroups.clustered.compute.subgroupclusteredand_bool_requiredsubgroupsize
 dEQP-VK.subgroups.clustered.compute.subgroupclusteredor_bool
+dEQP-VK.subgroups.clustered.compute.subgroupclusteredor_bool_requiredsubgroupsize
 dEQP-VK.subgroups.clustered.compute.subgroupclusteredxor_bool
+dEQP-VK.subgroups.clustered.compute.subgroupclusteredxor_bool_requiredsubgroupsize
 dEQP-VK.subgroups.clustered.compute.subgroupclusteredand_bvec2
+dEQP-VK.subgroups.clustered.compute.subgroupclusteredand_bvec2_requiredsubgroupsize
 dEQP-VK.subgroups.clustered.compute.subgroupclusteredor_bvec2
+dEQP-VK.subgroups.clustered.compute.subgroupclusteredor_bvec2_requiredsubgroupsize
 dEQP-VK.subgroups.clustered.compute.subgroupclusteredxor_bvec2
+dEQP-VK.subgroups.clustered.compute.subgroupclusteredxor_bvec2_requiredsubgroupsize
 dEQP-VK.subgroups.clustered.compute.subgroupclusteredand_bvec3
+dEQP-VK.subgroups.clustered.compute.subgroupclusteredand_bvec3_requiredsubgroupsize
 dEQP-VK.subgroups.clustered.compute.subgroupclusteredor_bvec3
+dEQP-VK.subgroups.clustered.compute.subgroupclusteredor_bvec3_requiredsubgroupsize
 dEQP-VK.subgroups.clustered.compute.subgroupclusteredxor_bvec3
+dEQP-VK.subgroups.clustered.compute.subgroupclusteredxor_bvec3_requiredsubgroupsize
 dEQP-VK.subgroups.clustered.compute.subgroupclusteredand_bvec4
+dEQP-VK.subgroups.clustered.compute.subgroupclusteredand_bvec4_requiredsubgroupsize
 dEQP-VK.subgroups.clustered.compute.subgroupclusteredor_bvec4
+dEQP-VK.subgroups.clustered.compute.subgroupclusteredor_bvec4_requiredsubgroupsize
 dEQP-VK.subgroups.clustered.compute.subgroupclusteredxor_bvec4
+dEQP-VK.subgroups.clustered.compute.subgroupclusteredxor_bvec4_requiredsubgroupsize
 dEQP-VK.subgroups.clustered.framebuffer.subgroupclusteredadd_int8_t_vertex
 dEQP-VK.subgroups.clustered.framebuffer.subgroupclusteredadd_int8_t_tess_eval
 dEQP-VK.subgroups.clustered.framebuffer.subgroupclusteredadd_int8_t_tess_control
@@ -515117,857 +516483,1709 @@ dEQP-VK.subgroups.partitioned.graphics.subgroupexclusiveand_bvec4
 dEQP-VK.subgroups.partitioned.graphics.subgroupexclusiveor_bvec4
 dEQP-VK.subgroups.partitioned.graphics.subgroupexclusivexor_bvec4
 dEQP-VK.subgroups.partitioned.compute.subgroupadd_int8_t
+dEQP-VK.subgroups.partitioned.compute.subgroupadd_int8_t_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupmul_int8_t
+dEQP-VK.subgroups.partitioned.compute.subgroupmul_int8_t_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupmin_int8_t
+dEQP-VK.subgroups.partitioned.compute.subgroupmin_int8_t_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupmax_int8_t
+dEQP-VK.subgroups.partitioned.compute.subgroupmax_int8_t_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupand_int8_t
+dEQP-VK.subgroups.partitioned.compute.subgroupand_int8_t_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupor_int8_t
+dEQP-VK.subgroups.partitioned.compute.subgroupor_int8_t_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupxor_int8_t
+dEQP-VK.subgroups.partitioned.compute.subgroupxor_int8_t_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupinclusiveadd_int8_t
+dEQP-VK.subgroups.partitioned.compute.subgroupinclusiveadd_int8_t_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupinclusivemul_int8_t
+dEQP-VK.subgroups.partitioned.compute.subgroupinclusivemul_int8_t_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupinclusivemin_int8_t
+dEQP-VK.subgroups.partitioned.compute.subgroupinclusivemin_int8_t_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupinclusivemax_int8_t
+dEQP-VK.subgroups.partitioned.compute.subgroupinclusivemax_int8_t_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupinclusiveand_int8_t
+dEQP-VK.subgroups.partitioned.compute.subgroupinclusiveand_int8_t_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupinclusiveor_int8_t
+dEQP-VK.subgroups.partitioned.compute.subgroupinclusiveor_int8_t_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupinclusivexor_int8_t
+dEQP-VK.subgroups.partitioned.compute.subgroupinclusivexor_int8_t_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupexclusiveadd_int8_t
+dEQP-VK.subgroups.partitioned.compute.subgroupexclusiveadd_int8_t_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupexclusivemul_int8_t
+dEQP-VK.subgroups.partitioned.compute.subgroupexclusivemul_int8_t_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupexclusivemin_int8_t
+dEQP-VK.subgroups.partitioned.compute.subgroupexclusivemin_int8_t_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupexclusivemax_int8_t
+dEQP-VK.subgroups.partitioned.compute.subgroupexclusivemax_int8_t_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupexclusiveand_int8_t
+dEQP-VK.subgroups.partitioned.compute.subgroupexclusiveand_int8_t_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupexclusiveor_int8_t
+dEQP-VK.subgroups.partitioned.compute.subgroupexclusiveor_int8_t_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupexclusivexor_int8_t
+dEQP-VK.subgroups.partitioned.compute.subgroupexclusivexor_int8_t_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupadd_i8vec2
+dEQP-VK.subgroups.partitioned.compute.subgroupadd_i8vec2_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupmul_i8vec2
+dEQP-VK.subgroups.partitioned.compute.subgroupmul_i8vec2_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupmin_i8vec2
+dEQP-VK.subgroups.partitioned.compute.subgroupmin_i8vec2_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupmax_i8vec2
+dEQP-VK.subgroups.partitioned.compute.subgroupmax_i8vec2_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupand_i8vec2
+dEQP-VK.subgroups.partitioned.compute.subgroupand_i8vec2_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupor_i8vec2
+dEQP-VK.subgroups.partitioned.compute.subgroupor_i8vec2_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupxor_i8vec2
+dEQP-VK.subgroups.partitioned.compute.subgroupxor_i8vec2_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupinclusiveadd_i8vec2
+dEQP-VK.subgroups.partitioned.compute.subgroupinclusiveadd_i8vec2_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupinclusivemul_i8vec2
+dEQP-VK.subgroups.partitioned.compute.subgroupinclusivemul_i8vec2_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupinclusivemin_i8vec2
+dEQP-VK.subgroups.partitioned.compute.subgroupinclusivemin_i8vec2_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupinclusivemax_i8vec2
+dEQP-VK.subgroups.partitioned.compute.subgroupinclusivemax_i8vec2_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupinclusiveand_i8vec2
+dEQP-VK.subgroups.partitioned.compute.subgroupinclusiveand_i8vec2_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupinclusiveor_i8vec2
+dEQP-VK.subgroups.partitioned.compute.subgroupinclusiveor_i8vec2_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupinclusivexor_i8vec2
+dEQP-VK.subgroups.partitioned.compute.subgroupinclusivexor_i8vec2_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupexclusiveadd_i8vec2
+dEQP-VK.subgroups.partitioned.compute.subgroupexclusiveadd_i8vec2_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupexclusivemul_i8vec2
+dEQP-VK.subgroups.partitioned.compute.subgroupexclusivemul_i8vec2_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupexclusivemin_i8vec2
+dEQP-VK.subgroups.partitioned.compute.subgroupexclusivemin_i8vec2_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupexclusivemax_i8vec2
+dEQP-VK.subgroups.partitioned.compute.subgroupexclusivemax_i8vec2_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupexclusiveand_i8vec2
+dEQP-VK.subgroups.partitioned.compute.subgroupexclusiveand_i8vec2_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupexclusiveor_i8vec2
+dEQP-VK.subgroups.partitioned.compute.subgroupexclusiveor_i8vec2_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupexclusivexor_i8vec2
+dEQP-VK.subgroups.partitioned.compute.subgroupexclusivexor_i8vec2_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupadd_i8vec3
+dEQP-VK.subgroups.partitioned.compute.subgroupadd_i8vec3_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupmul_i8vec3
+dEQP-VK.subgroups.partitioned.compute.subgroupmul_i8vec3_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupmin_i8vec3
+dEQP-VK.subgroups.partitioned.compute.subgroupmin_i8vec3_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupmax_i8vec3
+dEQP-VK.subgroups.partitioned.compute.subgroupmax_i8vec3_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupand_i8vec3
+dEQP-VK.subgroups.partitioned.compute.subgroupand_i8vec3_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupor_i8vec3
+dEQP-VK.subgroups.partitioned.compute.subgroupor_i8vec3_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupxor_i8vec3
+dEQP-VK.subgroups.partitioned.compute.subgroupxor_i8vec3_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupinclusiveadd_i8vec3
+dEQP-VK.subgroups.partitioned.compute.subgroupinclusiveadd_i8vec3_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupinclusivemul_i8vec3
+dEQP-VK.subgroups.partitioned.compute.subgroupinclusivemul_i8vec3_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupinclusivemin_i8vec3
+dEQP-VK.subgroups.partitioned.compute.subgroupinclusivemin_i8vec3_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupinclusivemax_i8vec3
+dEQP-VK.subgroups.partitioned.compute.subgroupinclusivemax_i8vec3_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupinclusiveand_i8vec3
+dEQP-VK.subgroups.partitioned.compute.subgroupinclusiveand_i8vec3_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupinclusiveor_i8vec3
+dEQP-VK.subgroups.partitioned.compute.subgroupinclusiveor_i8vec3_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupinclusivexor_i8vec3
+dEQP-VK.subgroups.partitioned.compute.subgroupinclusivexor_i8vec3_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupexclusiveadd_i8vec3
+dEQP-VK.subgroups.partitioned.compute.subgroupexclusiveadd_i8vec3_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupexclusivemul_i8vec3
+dEQP-VK.subgroups.partitioned.compute.subgroupexclusivemul_i8vec3_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupexclusivemin_i8vec3
+dEQP-VK.subgroups.partitioned.compute.subgroupexclusivemin_i8vec3_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupexclusivemax_i8vec3
+dEQP-VK.subgroups.partitioned.compute.subgroupexclusivemax_i8vec3_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupexclusiveand_i8vec3
+dEQP-VK.subgroups.partitioned.compute.subgroupexclusiveand_i8vec3_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupexclusiveor_i8vec3
+dEQP-VK.subgroups.partitioned.compute.subgroupexclusiveor_i8vec3_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupexclusivexor_i8vec3
+dEQP-VK.subgroups.partitioned.compute.subgroupexclusivexor_i8vec3_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupadd_i8vec4
+dEQP-VK.subgroups.partitioned.compute.subgroupadd_i8vec4_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupmul_i8vec4
+dEQP-VK.subgroups.partitioned.compute.subgroupmul_i8vec4_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupmin_i8vec4
+dEQP-VK.subgroups.partitioned.compute.subgroupmin_i8vec4_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupmax_i8vec4
+dEQP-VK.subgroups.partitioned.compute.subgroupmax_i8vec4_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupand_i8vec4
+dEQP-VK.subgroups.partitioned.compute.subgroupand_i8vec4_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupor_i8vec4
+dEQP-VK.subgroups.partitioned.compute.subgroupor_i8vec4_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupxor_i8vec4
+dEQP-VK.subgroups.partitioned.compute.subgroupxor_i8vec4_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupinclusiveadd_i8vec4
+dEQP-VK.subgroups.partitioned.compute.subgroupinclusiveadd_i8vec4_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupinclusivemul_i8vec4
+dEQP-VK.subgroups.partitioned.compute.subgroupinclusivemul_i8vec4_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupinclusivemin_i8vec4
+dEQP-VK.subgroups.partitioned.compute.subgroupinclusivemin_i8vec4_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupinclusivemax_i8vec4
+dEQP-VK.subgroups.partitioned.compute.subgroupinclusivemax_i8vec4_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupinclusiveand_i8vec4
+dEQP-VK.subgroups.partitioned.compute.subgroupinclusiveand_i8vec4_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupinclusiveor_i8vec4
+dEQP-VK.subgroups.partitioned.compute.subgroupinclusiveor_i8vec4_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupinclusivexor_i8vec4
+dEQP-VK.subgroups.partitioned.compute.subgroupinclusivexor_i8vec4_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupexclusiveadd_i8vec4
+dEQP-VK.subgroups.partitioned.compute.subgroupexclusiveadd_i8vec4_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupexclusivemul_i8vec4
+dEQP-VK.subgroups.partitioned.compute.subgroupexclusivemul_i8vec4_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupexclusivemin_i8vec4
+dEQP-VK.subgroups.partitioned.compute.subgroupexclusivemin_i8vec4_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupexclusivemax_i8vec4
+dEQP-VK.subgroups.partitioned.compute.subgroupexclusivemax_i8vec4_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupexclusiveand_i8vec4
+dEQP-VK.subgroups.partitioned.compute.subgroupexclusiveand_i8vec4_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupexclusiveor_i8vec4
+dEQP-VK.subgroups.partitioned.compute.subgroupexclusiveor_i8vec4_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupexclusivexor_i8vec4
+dEQP-VK.subgroups.partitioned.compute.subgroupexclusivexor_i8vec4_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupadd_uint8_t
+dEQP-VK.subgroups.partitioned.compute.subgroupadd_uint8_t_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupmul_uint8_t
+dEQP-VK.subgroups.partitioned.compute.subgroupmul_uint8_t_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupmin_uint8_t
+dEQP-VK.subgroups.partitioned.compute.subgroupmin_uint8_t_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupmax_uint8_t
+dEQP-VK.subgroups.partitioned.compute.subgroupmax_uint8_t_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupand_uint8_t
+dEQP-VK.subgroups.partitioned.compute.subgroupand_uint8_t_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupor_uint8_t
+dEQP-VK.subgroups.partitioned.compute.subgroupor_uint8_t_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupxor_uint8_t
+dEQP-VK.subgroups.partitioned.compute.subgroupxor_uint8_t_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupinclusiveadd_uint8_t
+dEQP-VK.subgroups.partitioned.compute.subgroupinclusiveadd_uint8_t_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupinclusivemul_uint8_t
+dEQP-VK.subgroups.partitioned.compute.subgroupinclusivemul_uint8_t_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupinclusivemin_uint8_t
+dEQP-VK.subgroups.partitioned.compute.subgroupinclusivemin_uint8_t_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupinclusivemax_uint8_t
+dEQP-VK.subgroups.partitioned.compute.subgroupinclusivemax_uint8_t_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupinclusiveand_uint8_t
+dEQP-VK.subgroups.partitioned.compute.subgroupinclusiveand_uint8_t_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupinclusiveor_uint8_t
+dEQP-VK.subgroups.partitioned.compute.subgroupinclusiveor_uint8_t_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupinclusivexor_uint8_t
+dEQP-VK.subgroups.partitioned.compute.subgroupinclusivexor_uint8_t_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupexclusiveadd_uint8_t
+dEQP-VK.subgroups.partitioned.compute.subgroupexclusiveadd_uint8_t_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupexclusivemul_uint8_t
+dEQP-VK.subgroups.partitioned.compute.subgroupexclusivemul_uint8_t_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupexclusivemin_uint8_t
+dEQP-VK.subgroups.partitioned.compute.subgroupexclusivemin_uint8_t_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupexclusivemax_uint8_t
+dEQP-VK.subgroups.partitioned.compute.subgroupexclusivemax_uint8_t_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupexclusiveand_uint8_t
+dEQP-VK.subgroups.partitioned.compute.subgroupexclusiveand_uint8_t_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupexclusiveor_uint8_t
+dEQP-VK.subgroups.partitioned.compute.subgroupexclusiveor_uint8_t_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupexclusivexor_uint8_t
+dEQP-VK.subgroups.partitioned.compute.subgroupexclusivexor_uint8_t_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupadd_u8vec2
+dEQP-VK.subgroups.partitioned.compute.subgroupadd_u8vec2_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupmul_u8vec2
+dEQP-VK.subgroups.partitioned.compute.subgroupmul_u8vec2_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupmin_u8vec2
+dEQP-VK.subgroups.partitioned.compute.subgroupmin_u8vec2_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupmax_u8vec2
+dEQP-VK.subgroups.partitioned.compute.subgroupmax_u8vec2_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupand_u8vec2
+dEQP-VK.subgroups.partitioned.compute.subgroupand_u8vec2_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupor_u8vec2
+dEQP-VK.subgroups.partitioned.compute.subgroupor_u8vec2_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupxor_u8vec2
+dEQP-VK.subgroups.partitioned.compute.subgroupxor_u8vec2_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupinclusiveadd_u8vec2
+dEQP-VK.subgroups.partitioned.compute.subgroupinclusiveadd_u8vec2_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupinclusivemul_u8vec2
+dEQP-VK.subgroups.partitioned.compute.subgroupinclusivemul_u8vec2_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupinclusivemin_u8vec2
+dEQP-VK.subgroups.partitioned.compute.subgroupinclusivemin_u8vec2_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupinclusivemax_u8vec2
+dEQP-VK.subgroups.partitioned.compute.subgroupinclusivemax_u8vec2_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupinclusiveand_u8vec2
+dEQP-VK.subgroups.partitioned.compute.subgroupinclusiveand_u8vec2_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupinclusiveor_u8vec2
+dEQP-VK.subgroups.partitioned.compute.subgroupinclusiveor_u8vec2_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupinclusivexor_u8vec2
+dEQP-VK.subgroups.partitioned.compute.subgroupinclusivexor_u8vec2_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupexclusiveadd_u8vec2
+dEQP-VK.subgroups.partitioned.compute.subgroupexclusiveadd_u8vec2_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupexclusivemul_u8vec2
+dEQP-VK.subgroups.partitioned.compute.subgroupexclusivemul_u8vec2_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupexclusivemin_u8vec2
+dEQP-VK.subgroups.partitioned.compute.subgroupexclusivemin_u8vec2_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupexclusivemax_u8vec2
+dEQP-VK.subgroups.partitioned.compute.subgroupexclusivemax_u8vec2_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupexclusiveand_u8vec2
+dEQP-VK.subgroups.partitioned.compute.subgroupexclusiveand_u8vec2_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupexclusiveor_u8vec2
+dEQP-VK.subgroups.partitioned.compute.subgroupexclusiveor_u8vec2_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupexclusivexor_u8vec2
+dEQP-VK.subgroups.partitioned.compute.subgroupexclusivexor_u8vec2_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupadd_u8vec3
+dEQP-VK.subgroups.partitioned.compute.subgroupadd_u8vec3_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupmul_u8vec3
+dEQP-VK.subgroups.partitioned.compute.subgroupmul_u8vec3_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupmin_u8vec3
+dEQP-VK.subgroups.partitioned.compute.subgroupmin_u8vec3_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupmax_u8vec3
+dEQP-VK.subgroups.partitioned.compute.subgroupmax_u8vec3_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupand_u8vec3
+dEQP-VK.subgroups.partitioned.compute.subgroupand_u8vec3_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupor_u8vec3
+dEQP-VK.subgroups.partitioned.compute.subgroupor_u8vec3_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupxor_u8vec3
+dEQP-VK.subgroups.partitioned.compute.subgroupxor_u8vec3_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupinclusiveadd_u8vec3
+dEQP-VK.subgroups.partitioned.compute.subgroupinclusiveadd_u8vec3_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupinclusivemul_u8vec3
+dEQP-VK.subgroups.partitioned.compute.subgroupinclusivemul_u8vec3_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupinclusivemin_u8vec3
+dEQP-VK.subgroups.partitioned.compute.subgroupinclusivemin_u8vec3_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupinclusivemax_u8vec3
+dEQP-VK.subgroups.partitioned.compute.subgroupinclusivemax_u8vec3_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupinclusiveand_u8vec3
+dEQP-VK.subgroups.partitioned.compute.subgroupinclusiveand_u8vec3_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupinclusiveor_u8vec3
+dEQP-VK.subgroups.partitioned.compute.subgroupinclusiveor_u8vec3_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupinclusivexor_u8vec3
+dEQP-VK.subgroups.partitioned.compute.subgroupinclusivexor_u8vec3_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupexclusiveadd_u8vec3
+dEQP-VK.subgroups.partitioned.compute.subgroupexclusiveadd_u8vec3_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupexclusivemul_u8vec3
+dEQP-VK.subgroups.partitioned.compute.subgroupexclusivemul_u8vec3_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupexclusivemin_u8vec3
+dEQP-VK.subgroups.partitioned.compute.subgroupexclusivemin_u8vec3_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupexclusivemax_u8vec3
+dEQP-VK.subgroups.partitioned.compute.subgroupexclusivemax_u8vec3_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupexclusiveand_u8vec3
+dEQP-VK.subgroups.partitioned.compute.subgroupexclusiveand_u8vec3_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupexclusiveor_u8vec3
+dEQP-VK.subgroups.partitioned.compute.subgroupexclusiveor_u8vec3_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupexclusivexor_u8vec3
+dEQP-VK.subgroups.partitioned.compute.subgroupexclusivexor_u8vec3_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupadd_u8vec4
+dEQP-VK.subgroups.partitioned.compute.subgroupadd_u8vec4_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupmul_u8vec4
+dEQP-VK.subgroups.partitioned.compute.subgroupmul_u8vec4_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupmin_u8vec4
+dEQP-VK.subgroups.partitioned.compute.subgroupmin_u8vec4_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupmax_u8vec4
+dEQP-VK.subgroups.partitioned.compute.subgroupmax_u8vec4_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupand_u8vec4
+dEQP-VK.subgroups.partitioned.compute.subgroupand_u8vec4_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupor_u8vec4
+dEQP-VK.subgroups.partitioned.compute.subgroupor_u8vec4_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupxor_u8vec4
+dEQP-VK.subgroups.partitioned.compute.subgroupxor_u8vec4_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupinclusiveadd_u8vec4
+dEQP-VK.subgroups.partitioned.compute.subgroupinclusiveadd_u8vec4_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupinclusivemul_u8vec4
+dEQP-VK.subgroups.partitioned.compute.subgroupinclusivemul_u8vec4_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupinclusivemin_u8vec4
+dEQP-VK.subgroups.partitioned.compute.subgroupinclusivemin_u8vec4_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupinclusivemax_u8vec4
+dEQP-VK.subgroups.partitioned.compute.subgroupinclusivemax_u8vec4_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupinclusiveand_u8vec4
+dEQP-VK.subgroups.partitioned.compute.subgroupinclusiveand_u8vec4_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupinclusiveor_u8vec4
+dEQP-VK.subgroups.partitioned.compute.subgroupinclusiveor_u8vec4_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupinclusivexor_u8vec4
+dEQP-VK.subgroups.partitioned.compute.subgroupinclusivexor_u8vec4_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupexclusiveadd_u8vec4
+dEQP-VK.subgroups.partitioned.compute.subgroupexclusiveadd_u8vec4_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupexclusivemul_u8vec4
+dEQP-VK.subgroups.partitioned.compute.subgroupexclusivemul_u8vec4_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupexclusivemin_u8vec4
+dEQP-VK.subgroups.partitioned.compute.subgroupexclusivemin_u8vec4_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupexclusivemax_u8vec4
+dEQP-VK.subgroups.partitioned.compute.subgroupexclusivemax_u8vec4_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupexclusiveand_u8vec4
+dEQP-VK.subgroups.partitioned.compute.subgroupexclusiveand_u8vec4_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupexclusiveor_u8vec4
+dEQP-VK.subgroups.partitioned.compute.subgroupexclusiveor_u8vec4_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupexclusivexor_u8vec4
+dEQP-VK.subgroups.partitioned.compute.subgroupexclusivexor_u8vec4_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupadd_int16_t
+dEQP-VK.subgroups.partitioned.compute.subgroupadd_int16_t_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupmul_int16_t
+dEQP-VK.subgroups.partitioned.compute.subgroupmul_int16_t_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupmin_int16_t
+dEQP-VK.subgroups.partitioned.compute.subgroupmin_int16_t_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupmax_int16_t
+dEQP-VK.subgroups.partitioned.compute.subgroupmax_int16_t_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupand_int16_t
+dEQP-VK.subgroups.partitioned.compute.subgroupand_int16_t_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupor_int16_t
+dEQP-VK.subgroups.partitioned.compute.subgroupor_int16_t_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupxor_int16_t
+dEQP-VK.subgroups.partitioned.compute.subgroupxor_int16_t_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupinclusiveadd_int16_t
+dEQP-VK.subgroups.partitioned.compute.subgroupinclusiveadd_int16_t_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupinclusivemul_int16_t
+dEQP-VK.subgroups.partitioned.compute.subgroupinclusivemul_int16_t_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupinclusivemin_int16_t
+dEQP-VK.subgroups.partitioned.compute.subgroupinclusivemin_int16_t_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupinclusivemax_int16_t
+dEQP-VK.subgroups.partitioned.compute.subgroupinclusivemax_int16_t_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupinclusiveand_int16_t
+dEQP-VK.subgroups.partitioned.compute.subgroupinclusiveand_int16_t_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupinclusiveor_int16_t
+dEQP-VK.subgroups.partitioned.compute.subgroupinclusiveor_int16_t_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupinclusivexor_int16_t
+dEQP-VK.subgroups.partitioned.compute.subgroupinclusivexor_int16_t_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupexclusiveadd_int16_t
+dEQP-VK.subgroups.partitioned.compute.subgroupexclusiveadd_int16_t_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupexclusivemul_int16_t
+dEQP-VK.subgroups.partitioned.compute.subgroupexclusivemul_int16_t_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupexclusivemin_int16_t
+dEQP-VK.subgroups.partitioned.compute.subgroupexclusivemin_int16_t_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupexclusivemax_int16_t
+dEQP-VK.subgroups.partitioned.compute.subgroupexclusivemax_int16_t_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupexclusiveand_int16_t
+dEQP-VK.subgroups.partitioned.compute.subgroupexclusiveand_int16_t_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupexclusiveor_int16_t
+dEQP-VK.subgroups.partitioned.compute.subgroupexclusiveor_int16_t_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupexclusivexor_int16_t
+dEQP-VK.subgroups.partitioned.compute.subgroupexclusivexor_int16_t_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupadd_i16vec2
+dEQP-VK.subgroups.partitioned.compute.subgroupadd_i16vec2_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupmul_i16vec2
+dEQP-VK.subgroups.partitioned.compute.subgroupmul_i16vec2_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupmin_i16vec2
+dEQP-VK.subgroups.partitioned.compute.subgroupmin_i16vec2_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupmax_i16vec2
+dEQP-VK.subgroups.partitioned.compute.subgroupmax_i16vec2_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupand_i16vec2
+dEQP-VK.subgroups.partitioned.compute.subgroupand_i16vec2_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupor_i16vec2
+dEQP-VK.subgroups.partitioned.compute.subgroupor_i16vec2_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupxor_i16vec2
+dEQP-VK.subgroups.partitioned.compute.subgroupxor_i16vec2_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupinclusiveadd_i16vec2
+dEQP-VK.subgroups.partitioned.compute.subgroupinclusiveadd_i16vec2_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupinclusivemul_i16vec2
+dEQP-VK.subgroups.partitioned.compute.subgroupinclusivemul_i16vec2_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupinclusivemin_i16vec2
+dEQP-VK.subgroups.partitioned.compute.subgroupinclusivemin_i16vec2_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupinclusivemax_i16vec2
+dEQP-VK.subgroups.partitioned.compute.subgroupinclusivemax_i16vec2_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupinclusiveand_i16vec2
+dEQP-VK.subgroups.partitioned.compute.subgroupinclusiveand_i16vec2_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupinclusiveor_i16vec2
+dEQP-VK.subgroups.partitioned.compute.subgroupinclusiveor_i16vec2_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupinclusivexor_i16vec2
+dEQP-VK.subgroups.partitioned.compute.subgroupinclusivexor_i16vec2_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupexclusiveadd_i16vec2
+dEQP-VK.subgroups.partitioned.compute.subgroupexclusiveadd_i16vec2_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupexclusivemul_i16vec2
+dEQP-VK.subgroups.partitioned.compute.subgroupexclusivemul_i16vec2_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupexclusivemin_i16vec2
+dEQP-VK.subgroups.partitioned.compute.subgroupexclusivemin_i16vec2_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupexclusivemax_i16vec2
+dEQP-VK.subgroups.partitioned.compute.subgroupexclusivemax_i16vec2_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupexclusiveand_i16vec2
+dEQP-VK.subgroups.partitioned.compute.subgroupexclusiveand_i16vec2_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupexclusiveor_i16vec2
+dEQP-VK.subgroups.partitioned.compute.subgroupexclusiveor_i16vec2_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupexclusivexor_i16vec2
+dEQP-VK.subgroups.partitioned.compute.subgroupexclusivexor_i16vec2_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupadd_i16vec3
+dEQP-VK.subgroups.partitioned.compute.subgroupadd_i16vec3_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupmul_i16vec3
+dEQP-VK.subgroups.partitioned.compute.subgroupmul_i16vec3_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupmin_i16vec3
+dEQP-VK.subgroups.partitioned.compute.subgroupmin_i16vec3_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupmax_i16vec3
+dEQP-VK.subgroups.partitioned.compute.subgroupmax_i16vec3_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupand_i16vec3
+dEQP-VK.subgroups.partitioned.compute.subgroupand_i16vec3_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupor_i16vec3
+dEQP-VK.subgroups.partitioned.compute.subgroupor_i16vec3_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupxor_i16vec3
+dEQP-VK.subgroups.partitioned.compute.subgroupxor_i16vec3_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupinclusiveadd_i16vec3
+dEQP-VK.subgroups.partitioned.compute.subgroupinclusiveadd_i16vec3_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupinclusivemul_i16vec3
+dEQP-VK.subgroups.partitioned.compute.subgroupinclusivemul_i16vec3_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupinclusivemin_i16vec3
+dEQP-VK.subgroups.partitioned.compute.subgroupinclusivemin_i16vec3_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupinclusivemax_i16vec3
+dEQP-VK.subgroups.partitioned.compute.subgroupinclusivemax_i16vec3_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupinclusiveand_i16vec3
+dEQP-VK.subgroups.partitioned.compute.subgroupinclusiveand_i16vec3_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupinclusiveor_i16vec3
+dEQP-VK.subgroups.partitioned.compute.subgroupinclusiveor_i16vec3_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupinclusivexor_i16vec3
+dEQP-VK.subgroups.partitioned.compute.subgroupinclusivexor_i16vec3_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupexclusiveadd_i16vec3
+dEQP-VK.subgroups.partitioned.compute.subgroupexclusiveadd_i16vec3_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupexclusivemul_i16vec3
+dEQP-VK.subgroups.partitioned.compute.subgroupexclusivemul_i16vec3_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupexclusivemin_i16vec3
+dEQP-VK.subgroups.partitioned.compute.subgroupexclusivemin_i16vec3_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupexclusivemax_i16vec3
+dEQP-VK.subgroups.partitioned.compute.subgroupexclusivemax_i16vec3_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupexclusiveand_i16vec3
+dEQP-VK.subgroups.partitioned.compute.subgroupexclusiveand_i16vec3_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupexclusiveor_i16vec3
+dEQP-VK.subgroups.partitioned.compute.subgroupexclusiveor_i16vec3_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupexclusivexor_i16vec3
+dEQP-VK.subgroups.partitioned.compute.subgroupexclusivexor_i16vec3_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupadd_i16vec4
+dEQP-VK.subgroups.partitioned.compute.subgroupadd_i16vec4_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupmul_i16vec4
+dEQP-VK.subgroups.partitioned.compute.subgroupmul_i16vec4_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupmin_i16vec4
+dEQP-VK.subgroups.partitioned.compute.subgroupmin_i16vec4_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupmax_i16vec4
+dEQP-VK.subgroups.partitioned.compute.subgroupmax_i16vec4_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupand_i16vec4
+dEQP-VK.subgroups.partitioned.compute.subgroupand_i16vec4_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupor_i16vec4
+dEQP-VK.subgroups.partitioned.compute.subgroupor_i16vec4_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupxor_i16vec4
+dEQP-VK.subgroups.partitioned.compute.subgroupxor_i16vec4_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupinclusiveadd_i16vec4
+dEQP-VK.subgroups.partitioned.compute.subgroupinclusiveadd_i16vec4_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupinclusivemul_i16vec4
+dEQP-VK.subgroups.partitioned.compute.subgroupinclusivemul_i16vec4_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupinclusivemin_i16vec4
+dEQP-VK.subgroups.partitioned.compute.subgroupinclusivemin_i16vec4_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupinclusivemax_i16vec4
+dEQP-VK.subgroups.partitioned.compute.subgroupinclusivemax_i16vec4_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupinclusiveand_i16vec4
+dEQP-VK.subgroups.partitioned.compute.subgroupinclusiveand_i16vec4_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupinclusiveor_i16vec4
+dEQP-VK.subgroups.partitioned.compute.subgroupinclusiveor_i16vec4_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupinclusivexor_i16vec4
+dEQP-VK.subgroups.partitioned.compute.subgroupinclusivexor_i16vec4_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupexclusiveadd_i16vec4
+dEQP-VK.subgroups.partitioned.compute.subgroupexclusiveadd_i16vec4_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupexclusivemul_i16vec4
+dEQP-VK.subgroups.partitioned.compute.subgroupexclusivemul_i16vec4_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupexclusivemin_i16vec4
+dEQP-VK.subgroups.partitioned.compute.subgroupexclusivemin_i16vec4_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupexclusivemax_i16vec4
+dEQP-VK.subgroups.partitioned.compute.subgroupexclusivemax_i16vec4_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupexclusiveand_i16vec4
+dEQP-VK.subgroups.partitioned.compute.subgroupexclusiveand_i16vec4_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupexclusiveor_i16vec4
+dEQP-VK.subgroups.partitioned.compute.subgroupexclusiveor_i16vec4_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupexclusivexor_i16vec4
+dEQP-VK.subgroups.partitioned.compute.subgroupexclusivexor_i16vec4_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupadd_uint16_t
+dEQP-VK.subgroups.partitioned.compute.subgroupadd_uint16_t_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupmul_uint16_t
+dEQP-VK.subgroups.partitioned.compute.subgroupmul_uint16_t_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupmin_uint16_t
+dEQP-VK.subgroups.partitioned.compute.subgroupmin_uint16_t_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupmax_uint16_t
+dEQP-VK.subgroups.partitioned.compute.subgroupmax_uint16_t_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupand_uint16_t
+dEQP-VK.subgroups.partitioned.compute.subgroupand_uint16_t_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupor_uint16_t
+dEQP-VK.subgroups.partitioned.compute.subgroupor_uint16_t_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupxor_uint16_t
+dEQP-VK.subgroups.partitioned.compute.subgroupxor_uint16_t_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupinclusiveadd_uint16_t
+dEQP-VK.subgroups.partitioned.compute.subgroupinclusiveadd_uint16_t_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupinclusivemul_uint16_t
+dEQP-VK.subgroups.partitioned.compute.subgroupinclusivemul_uint16_t_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupinclusivemin_uint16_t
+dEQP-VK.subgroups.partitioned.compute.subgroupinclusivemin_uint16_t_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupinclusivemax_uint16_t
+dEQP-VK.subgroups.partitioned.compute.subgroupinclusivemax_uint16_t_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupinclusiveand_uint16_t
+dEQP-VK.subgroups.partitioned.compute.subgroupinclusiveand_uint16_t_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupinclusiveor_uint16_t
+dEQP-VK.subgroups.partitioned.compute.subgroupinclusiveor_uint16_t_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupinclusivexor_uint16_t
+dEQP-VK.subgroups.partitioned.compute.subgroupinclusivexor_uint16_t_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupexclusiveadd_uint16_t
+dEQP-VK.subgroups.partitioned.compute.subgroupexclusiveadd_uint16_t_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupexclusivemul_uint16_t
+dEQP-VK.subgroups.partitioned.compute.subgroupexclusivemul_uint16_t_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupexclusivemin_uint16_t
+dEQP-VK.subgroups.partitioned.compute.subgroupexclusivemin_uint16_t_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupexclusivemax_uint16_t
+dEQP-VK.subgroups.partitioned.compute.subgroupexclusivemax_uint16_t_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupexclusiveand_uint16_t
+dEQP-VK.subgroups.partitioned.compute.subgroupexclusiveand_uint16_t_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupexclusiveor_uint16_t
+dEQP-VK.subgroups.partitioned.compute.subgroupexclusiveor_uint16_t_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupexclusivexor_uint16_t
+dEQP-VK.subgroups.partitioned.compute.subgroupexclusivexor_uint16_t_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupadd_u16vec2
+dEQP-VK.subgroups.partitioned.compute.subgroupadd_u16vec2_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupmul_u16vec2
+dEQP-VK.subgroups.partitioned.compute.subgroupmul_u16vec2_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupmin_u16vec2
+dEQP-VK.subgroups.partitioned.compute.subgroupmin_u16vec2_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupmax_u16vec2
+dEQP-VK.subgroups.partitioned.compute.subgroupmax_u16vec2_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupand_u16vec2
+dEQP-VK.subgroups.partitioned.compute.subgroupand_u16vec2_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupor_u16vec2
+dEQP-VK.subgroups.partitioned.compute.subgroupor_u16vec2_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupxor_u16vec2
+dEQP-VK.subgroups.partitioned.compute.subgroupxor_u16vec2_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupinclusiveadd_u16vec2
+dEQP-VK.subgroups.partitioned.compute.subgroupinclusiveadd_u16vec2_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupinclusivemul_u16vec2
+dEQP-VK.subgroups.partitioned.compute.subgroupinclusivemul_u16vec2_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupinclusivemin_u16vec2
+dEQP-VK.subgroups.partitioned.compute.subgroupinclusivemin_u16vec2_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupinclusivemax_u16vec2
+dEQP-VK.subgroups.partitioned.compute.subgroupinclusivemax_u16vec2_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupinclusiveand_u16vec2
+dEQP-VK.subgroups.partitioned.compute.subgroupinclusiveand_u16vec2_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupinclusiveor_u16vec2
+dEQP-VK.subgroups.partitioned.compute.subgroupinclusiveor_u16vec2_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupinclusivexor_u16vec2
+dEQP-VK.subgroups.partitioned.compute.subgroupinclusivexor_u16vec2_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupexclusiveadd_u16vec2
+dEQP-VK.subgroups.partitioned.compute.subgroupexclusiveadd_u16vec2_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupexclusivemul_u16vec2
+dEQP-VK.subgroups.partitioned.compute.subgroupexclusivemul_u16vec2_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupexclusivemin_u16vec2
+dEQP-VK.subgroups.partitioned.compute.subgroupexclusivemin_u16vec2_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupexclusivemax_u16vec2
+dEQP-VK.subgroups.partitioned.compute.subgroupexclusivemax_u16vec2_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupexclusiveand_u16vec2
+dEQP-VK.subgroups.partitioned.compute.subgroupexclusiveand_u16vec2_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupexclusiveor_u16vec2
+dEQP-VK.subgroups.partitioned.compute.subgroupexclusiveor_u16vec2_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupexclusivexor_u16vec2
+dEQP-VK.subgroups.partitioned.compute.subgroupexclusivexor_u16vec2_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupadd_u16vec3
+dEQP-VK.subgroups.partitioned.compute.subgroupadd_u16vec3_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupmul_u16vec3
+dEQP-VK.subgroups.partitioned.compute.subgroupmul_u16vec3_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupmin_u16vec3
+dEQP-VK.subgroups.partitioned.compute.subgroupmin_u16vec3_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupmax_u16vec3
+dEQP-VK.subgroups.partitioned.compute.subgroupmax_u16vec3_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupand_u16vec3
+dEQP-VK.subgroups.partitioned.compute.subgroupand_u16vec3_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupor_u16vec3
+dEQP-VK.subgroups.partitioned.compute.subgroupor_u16vec3_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupxor_u16vec3
+dEQP-VK.subgroups.partitioned.compute.subgroupxor_u16vec3_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupinclusiveadd_u16vec3
+dEQP-VK.subgroups.partitioned.compute.subgroupinclusiveadd_u16vec3_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupinclusivemul_u16vec3
+dEQP-VK.subgroups.partitioned.compute.subgroupinclusivemul_u16vec3_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupinclusivemin_u16vec3
+dEQP-VK.subgroups.partitioned.compute.subgroupinclusivemin_u16vec3_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupinclusivemax_u16vec3
+dEQP-VK.subgroups.partitioned.compute.subgroupinclusivemax_u16vec3_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupinclusiveand_u16vec3
+dEQP-VK.subgroups.partitioned.compute.subgroupinclusiveand_u16vec3_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupinclusiveor_u16vec3
+dEQP-VK.subgroups.partitioned.compute.subgroupinclusiveor_u16vec3_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupinclusivexor_u16vec3
+dEQP-VK.subgroups.partitioned.compute.subgroupinclusivexor_u16vec3_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupexclusiveadd_u16vec3
+dEQP-VK.subgroups.partitioned.compute.subgroupexclusiveadd_u16vec3_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupexclusivemul_u16vec3
+dEQP-VK.subgroups.partitioned.compute.subgroupexclusivemul_u16vec3_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupexclusivemin_u16vec3
+dEQP-VK.subgroups.partitioned.compute.subgroupexclusivemin_u16vec3_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupexclusivemax_u16vec3
+dEQP-VK.subgroups.partitioned.compute.subgroupexclusivemax_u16vec3_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupexclusiveand_u16vec3
+dEQP-VK.subgroups.partitioned.compute.subgroupexclusiveand_u16vec3_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupexclusiveor_u16vec3
+dEQP-VK.subgroups.partitioned.compute.subgroupexclusiveor_u16vec3_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupexclusivexor_u16vec3
+dEQP-VK.subgroups.partitioned.compute.subgroupexclusivexor_u16vec3_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupadd_u16vec4
+dEQP-VK.subgroups.partitioned.compute.subgroupadd_u16vec4_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupmul_u16vec4
+dEQP-VK.subgroups.partitioned.compute.subgroupmul_u16vec4_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupmin_u16vec4
+dEQP-VK.subgroups.partitioned.compute.subgroupmin_u16vec4_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupmax_u16vec4
+dEQP-VK.subgroups.partitioned.compute.subgroupmax_u16vec4_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupand_u16vec4
+dEQP-VK.subgroups.partitioned.compute.subgroupand_u16vec4_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupor_u16vec4
+dEQP-VK.subgroups.partitioned.compute.subgroupor_u16vec4_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupxor_u16vec4
+dEQP-VK.subgroups.partitioned.compute.subgroupxor_u16vec4_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupinclusiveadd_u16vec4
+dEQP-VK.subgroups.partitioned.compute.subgroupinclusiveadd_u16vec4_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupinclusivemul_u16vec4
+dEQP-VK.subgroups.partitioned.compute.subgroupinclusivemul_u16vec4_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupinclusivemin_u16vec4
+dEQP-VK.subgroups.partitioned.compute.subgroupinclusivemin_u16vec4_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupinclusivemax_u16vec4
+dEQP-VK.subgroups.partitioned.compute.subgroupinclusivemax_u16vec4_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupinclusiveand_u16vec4
+dEQP-VK.subgroups.partitioned.compute.subgroupinclusiveand_u16vec4_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupinclusiveor_u16vec4
+dEQP-VK.subgroups.partitioned.compute.subgroupinclusiveor_u16vec4_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupinclusivexor_u16vec4
+dEQP-VK.subgroups.partitioned.compute.subgroupinclusivexor_u16vec4_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupexclusiveadd_u16vec4
+dEQP-VK.subgroups.partitioned.compute.subgroupexclusiveadd_u16vec4_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupexclusivemul_u16vec4
+dEQP-VK.subgroups.partitioned.compute.subgroupexclusivemul_u16vec4_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupexclusivemin_u16vec4
+dEQP-VK.subgroups.partitioned.compute.subgroupexclusivemin_u16vec4_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupexclusivemax_u16vec4
+dEQP-VK.subgroups.partitioned.compute.subgroupexclusivemax_u16vec4_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupexclusiveand_u16vec4
+dEQP-VK.subgroups.partitioned.compute.subgroupexclusiveand_u16vec4_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupexclusiveor_u16vec4
+dEQP-VK.subgroups.partitioned.compute.subgroupexclusiveor_u16vec4_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupexclusivexor_u16vec4
+dEQP-VK.subgroups.partitioned.compute.subgroupexclusivexor_u16vec4_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupadd_int
+dEQP-VK.subgroups.partitioned.compute.subgroupadd_int_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupmul_int
+dEQP-VK.subgroups.partitioned.compute.subgroupmul_int_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupmin_int
+dEQP-VK.subgroups.partitioned.compute.subgroupmin_int_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupmax_int
+dEQP-VK.subgroups.partitioned.compute.subgroupmax_int_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupand_int
+dEQP-VK.subgroups.partitioned.compute.subgroupand_int_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupor_int
+dEQP-VK.subgroups.partitioned.compute.subgroupor_int_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupxor_int
+dEQP-VK.subgroups.partitioned.compute.subgroupxor_int_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupinclusiveadd_int
+dEQP-VK.subgroups.partitioned.compute.subgroupinclusiveadd_int_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupinclusivemul_int
+dEQP-VK.subgroups.partitioned.compute.subgroupinclusivemul_int_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupinclusivemin_int
+dEQP-VK.subgroups.partitioned.compute.subgroupinclusivemin_int_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupinclusivemax_int
+dEQP-VK.subgroups.partitioned.compute.subgroupinclusivemax_int_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupinclusiveand_int
+dEQP-VK.subgroups.partitioned.compute.subgroupinclusiveand_int_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupinclusiveor_int
+dEQP-VK.subgroups.partitioned.compute.subgroupinclusiveor_int_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupinclusivexor_int
+dEQP-VK.subgroups.partitioned.compute.subgroupinclusivexor_int_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupexclusiveadd_int
+dEQP-VK.subgroups.partitioned.compute.subgroupexclusiveadd_int_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupexclusivemul_int
+dEQP-VK.subgroups.partitioned.compute.subgroupexclusivemul_int_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupexclusivemin_int
+dEQP-VK.subgroups.partitioned.compute.subgroupexclusivemin_int_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupexclusivemax_int
+dEQP-VK.subgroups.partitioned.compute.subgroupexclusivemax_int_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupexclusiveand_int
+dEQP-VK.subgroups.partitioned.compute.subgroupexclusiveand_int_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupexclusiveor_int
+dEQP-VK.subgroups.partitioned.compute.subgroupexclusiveor_int_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupexclusivexor_int
+dEQP-VK.subgroups.partitioned.compute.subgroupexclusivexor_int_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupadd_ivec2
+dEQP-VK.subgroups.partitioned.compute.subgroupadd_ivec2_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupmul_ivec2
+dEQP-VK.subgroups.partitioned.compute.subgroupmul_ivec2_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupmin_ivec2
+dEQP-VK.subgroups.partitioned.compute.subgroupmin_ivec2_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupmax_ivec2
+dEQP-VK.subgroups.partitioned.compute.subgroupmax_ivec2_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupand_ivec2
+dEQP-VK.subgroups.partitioned.compute.subgroupand_ivec2_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupor_ivec2
+dEQP-VK.subgroups.partitioned.compute.subgroupor_ivec2_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupxor_ivec2
+dEQP-VK.subgroups.partitioned.compute.subgroupxor_ivec2_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupinclusiveadd_ivec2
+dEQP-VK.subgroups.partitioned.compute.subgroupinclusiveadd_ivec2_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupinclusivemul_ivec2
+dEQP-VK.subgroups.partitioned.compute.subgroupinclusivemul_ivec2_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupinclusivemin_ivec2
+dEQP-VK.subgroups.partitioned.compute.subgroupinclusivemin_ivec2_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupinclusivemax_ivec2
+dEQP-VK.subgroups.partitioned.compute.subgroupinclusivemax_ivec2_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupinclusiveand_ivec2
+dEQP-VK.subgroups.partitioned.compute.subgroupinclusiveand_ivec2_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupinclusiveor_ivec2
+dEQP-VK.subgroups.partitioned.compute.subgroupinclusiveor_ivec2_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupinclusivexor_ivec2
+dEQP-VK.subgroups.partitioned.compute.subgroupinclusivexor_ivec2_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupexclusiveadd_ivec2
+dEQP-VK.subgroups.partitioned.compute.subgroupexclusiveadd_ivec2_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupexclusivemul_ivec2
+dEQP-VK.subgroups.partitioned.compute.subgroupexclusivemul_ivec2_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupexclusivemin_ivec2
+dEQP-VK.subgroups.partitioned.compute.subgroupexclusivemin_ivec2_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupexclusivemax_ivec2
+dEQP-VK.subgroups.partitioned.compute.subgroupexclusivemax_ivec2_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupexclusiveand_ivec2
+dEQP-VK.subgroups.partitioned.compute.subgroupexclusiveand_ivec2_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupexclusiveor_ivec2
+dEQP-VK.subgroups.partitioned.compute.subgroupexclusiveor_ivec2_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupexclusivexor_ivec2
+dEQP-VK.subgroups.partitioned.compute.subgroupexclusivexor_ivec2_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupadd_ivec3
+dEQP-VK.subgroups.partitioned.compute.subgroupadd_ivec3_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupmul_ivec3
+dEQP-VK.subgroups.partitioned.compute.subgroupmul_ivec3_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupmin_ivec3
+dEQP-VK.subgroups.partitioned.compute.subgroupmin_ivec3_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupmax_ivec3
+dEQP-VK.subgroups.partitioned.compute.subgroupmax_ivec3_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupand_ivec3
+dEQP-VK.subgroups.partitioned.compute.subgroupand_ivec3_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupor_ivec3
+dEQP-VK.subgroups.partitioned.compute.subgroupor_ivec3_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupxor_ivec3
+dEQP-VK.subgroups.partitioned.compute.subgroupxor_ivec3_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupinclusiveadd_ivec3
+dEQP-VK.subgroups.partitioned.compute.subgroupinclusiveadd_ivec3_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupinclusivemul_ivec3
+dEQP-VK.subgroups.partitioned.compute.subgroupinclusivemul_ivec3_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupinclusivemin_ivec3
+dEQP-VK.subgroups.partitioned.compute.subgroupinclusivemin_ivec3_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupinclusivemax_ivec3
+dEQP-VK.subgroups.partitioned.compute.subgroupinclusivemax_ivec3_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupinclusiveand_ivec3
+dEQP-VK.subgroups.partitioned.compute.subgroupinclusiveand_ivec3_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupinclusiveor_ivec3
+dEQP-VK.subgroups.partitioned.compute.subgroupinclusiveor_ivec3_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupinclusivexor_ivec3
+dEQP-VK.subgroups.partitioned.compute.subgroupinclusivexor_ivec3_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupexclusiveadd_ivec3
+dEQP-VK.subgroups.partitioned.compute.subgroupexclusiveadd_ivec3_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupexclusivemul_ivec3
+dEQP-VK.subgroups.partitioned.compute.subgroupexclusivemul_ivec3_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupexclusivemin_ivec3
+dEQP-VK.subgroups.partitioned.compute.subgroupexclusivemin_ivec3_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupexclusivemax_ivec3
+dEQP-VK.subgroups.partitioned.compute.subgroupexclusivemax_ivec3_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupexclusiveand_ivec3
+dEQP-VK.subgroups.partitioned.compute.subgroupexclusiveand_ivec3_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupexclusiveor_ivec3
+dEQP-VK.subgroups.partitioned.compute.subgroupexclusiveor_ivec3_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupexclusivexor_ivec3
+dEQP-VK.subgroups.partitioned.compute.subgroupexclusivexor_ivec3_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupadd_ivec4
+dEQP-VK.subgroups.partitioned.compute.subgroupadd_ivec4_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupmul_ivec4
+dEQP-VK.subgroups.partitioned.compute.subgroupmul_ivec4_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupmin_ivec4
+dEQP-VK.subgroups.partitioned.compute.subgroupmin_ivec4_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupmax_ivec4
+dEQP-VK.subgroups.partitioned.compute.subgroupmax_ivec4_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupand_ivec4
+dEQP-VK.subgroups.partitioned.compute.subgroupand_ivec4_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupor_ivec4
+dEQP-VK.subgroups.partitioned.compute.subgroupor_ivec4_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupxor_ivec4
+dEQP-VK.subgroups.partitioned.compute.subgroupxor_ivec4_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupinclusiveadd_ivec4
+dEQP-VK.subgroups.partitioned.compute.subgroupinclusiveadd_ivec4_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupinclusivemul_ivec4
+dEQP-VK.subgroups.partitioned.compute.subgroupinclusivemul_ivec4_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupinclusivemin_ivec4
+dEQP-VK.subgroups.partitioned.compute.subgroupinclusivemin_ivec4_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupinclusivemax_ivec4
+dEQP-VK.subgroups.partitioned.compute.subgroupinclusivemax_ivec4_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupinclusiveand_ivec4
+dEQP-VK.subgroups.partitioned.compute.subgroupinclusiveand_ivec4_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupinclusiveor_ivec4
+dEQP-VK.subgroups.partitioned.compute.subgroupinclusiveor_ivec4_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupinclusivexor_ivec4
+dEQP-VK.subgroups.partitioned.compute.subgroupinclusivexor_ivec4_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupexclusiveadd_ivec4
+dEQP-VK.subgroups.partitioned.compute.subgroupexclusiveadd_ivec4_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupexclusivemul_ivec4
+dEQP-VK.subgroups.partitioned.compute.subgroupexclusivemul_ivec4_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupexclusivemin_ivec4
+dEQP-VK.subgroups.partitioned.compute.subgroupexclusivemin_ivec4_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupexclusivemax_ivec4
+dEQP-VK.subgroups.partitioned.compute.subgroupexclusivemax_ivec4_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupexclusiveand_ivec4
+dEQP-VK.subgroups.partitioned.compute.subgroupexclusiveand_ivec4_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupexclusiveor_ivec4
+dEQP-VK.subgroups.partitioned.compute.subgroupexclusiveor_ivec4_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupexclusivexor_ivec4
+dEQP-VK.subgroups.partitioned.compute.subgroupexclusivexor_ivec4_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupadd_uint
+dEQP-VK.subgroups.partitioned.compute.subgroupadd_uint_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupmul_uint
+dEQP-VK.subgroups.partitioned.compute.subgroupmul_uint_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupmin_uint
+dEQP-VK.subgroups.partitioned.compute.subgroupmin_uint_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupmax_uint
+dEQP-VK.subgroups.partitioned.compute.subgroupmax_uint_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupand_uint
+dEQP-VK.subgroups.partitioned.compute.subgroupand_uint_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupor_uint
+dEQP-VK.subgroups.partitioned.compute.subgroupor_uint_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupxor_uint
+dEQP-VK.subgroups.partitioned.compute.subgroupxor_uint_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupinclusiveadd_uint
+dEQP-VK.subgroups.partitioned.compute.subgroupinclusiveadd_uint_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupinclusivemul_uint
+dEQP-VK.subgroups.partitioned.compute.subgroupinclusivemul_uint_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupinclusivemin_uint
+dEQP-VK.subgroups.partitioned.compute.subgroupinclusivemin_uint_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupinclusivemax_uint
+dEQP-VK.subgroups.partitioned.compute.subgroupinclusivemax_uint_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupinclusiveand_uint
+dEQP-VK.subgroups.partitioned.compute.subgroupinclusiveand_uint_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupinclusiveor_uint
+dEQP-VK.subgroups.partitioned.compute.subgroupinclusiveor_uint_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupinclusivexor_uint
+dEQP-VK.subgroups.partitioned.compute.subgroupinclusivexor_uint_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupexclusiveadd_uint
+dEQP-VK.subgroups.partitioned.compute.subgroupexclusiveadd_uint_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupexclusivemul_uint
+dEQP-VK.subgroups.partitioned.compute.subgroupexclusivemul_uint_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupexclusivemin_uint
+dEQP-VK.subgroups.partitioned.compute.subgroupexclusivemin_uint_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupexclusivemax_uint
+dEQP-VK.subgroups.partitioned.compute.subgroupexclusivemax_uint_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupexclusiveand_uint
+dEQP-VK.subgroups.partitioned.compute.subgroupexclusiveand_uint_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupexclusiveor_uint
+dEQP-VK.subgroups.partitioned.compute.subgroupexclusiveor_uint_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupexclusivexor_uint
+dEQP-VK.subgroups.partitioned.compute.subgroupexclusivexor_uint_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupadd_uvec2
+dEQP-VK.subgroups.partitioned.compute.subgroupadd_uvec2_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupmul_uvec2
+dEQP-VK.subgroups.partitioned.compute.subgroupmul_uvec2_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupmin_uvec2
+dEQP-VK.subgroups.partitioned.compute.subgroupmin_uvec2_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupmax_uvec2
+dEQP-VK.subgroups.partitioned.compute.subgroupmax_uvec2_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupand_uvec2
+dEQP-VK.subgroups.partitioned.compute.subgroupand_uvec2_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupor_uvec2
+dEQP-VK.subgroups.partitioned.compute.subgroupor_uvec2_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupxor_uvec2
+dEQP-VK.subgroups.partitioned.compute.subgroupxor_uvec2_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupinclusiveadd_uvec2
+dEQP-VK.subgroups.partitioned.compute.subgroupinclusiveadd_uvec2_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupinclusivemul_uvec2
+dEQP-VK.subgroups.partitioned.compute.subgroupinclusivemul_uvec2_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupinclusivemin_uvec2
+dEQP-VK.subgroups.partitioned.compute.subgroupinclusivemin_uvec2_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupinclusivemax_uvec2
+dEQP-VK.subgroups.partitioned.compute.subgroupinclusivemax_uvec2_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupinclusiveand_uvec2
+dEQP-VK.subgroups.partitioned.compute.subgroupinclusiveand_uvec2_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupinclusiveor_uvec2
+dEQP-VK.subgroups.partitioned.compute.subgroupinclusiveor_uvec2_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupinclusivexor_uvec2
+dEQP-VK.subgroups.partitioned.compute.subgroupinclusivexor_uvec2_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupexclusiveadd_uvec2
+dEQP-VK.subgroups.partitioned.compute.subgroupexclusiveadd_uvec2_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupexclusivemul_uvec2
+dEQP-VK.subgroups.partitioned.compute.subgroupexclusivemul_uvec2_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupexclusivemin_uvec2
+dEQP-VK.subgroups.partitioned.compute.subgroupexclusivemin_uvec2_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupexclusivemax_uvec2
+dEQP-VK.subgroups.partitioned.compute.subgroupexclusivemax_uvec2_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupexclusiveand_uvec2
+dEQP-VK.subgroups.partitioned.compute.subgroupexclusiveand_uvec2_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupexclusiveor_uvec2
+dEQP-VK.subgroups.partitioned.compute.subgroupexclusiveor_uvec2_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupexclusivexor_uvec2
+dEQP-VK.subgroups.partitioned.compute.subgroupexclusivexor_uvec2_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupadd_uvec3
+dEQP-VK.subgroups.partitioned.compute.subgroupadd_uvec3_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupmul_uvec3
+dEQP-VK.subgroups.partitioned.compute.subgroupmul_uvec3_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupmin_uvec3
+dEQP-VK.subgroups.partitioned.compute.subgroupmin_uvec3_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupmax_uvec3
+dEQP-VK.subgroups.partitioned.compute.subgroupmax_uvec3_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupand_uvec3
+dEQP-VK.subgroups.partitioned.compute.subgroupand_uvec3_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupor_uvec3
+dEQP-VK.subgroups.partitioned.compute.subgroupor_uvec3_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupxor_uvec3
+dEQP-VK.subgroups.partitioned.compute.subgroupxor_uvec3_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupinclusiveadd_uvec3
+dEQP-VK.subgroups.partitioned.compute.subgroupinclusiveadd_uvec3_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupinclusivemul_uvec3
+dEQP-VK.subgroups.partitioned.compute.subgroupinclusivemul_uvec3_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupinclusivemin_uvec3
+dEQP-VK.subgroups.partitioned.compute.subgroupinclusivemin_uvec3_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupinclusivemax_uvec3
+dEQP-VK.subgroups.partitioned.compute.subgroupinclusivemax_uvec3_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupinclusiveand_uvec3
+dEQP-VK.subgroups.partitioned.compute.subgroupinclusiveand_uvec3_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupinclusiveor_uvec3
+dEQP-VK.subgroups.partitioned.compute.subgroupinclusiveor_uvec3_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupinclusivexor_uvec3
+dEQP-VK.subgroups.partitioned.compute.subgroupinclusivexor_uvec3_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupexclusiveadd_uvec3
+dEQP-VK.subgroups.partitioned.compute.subgroupexclusiveadd_uvec3_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupexclusivemul_uvec3
+dEQP-VK.subgroups.partitioned.compute.subgroupexclusivemul_uvec3_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupexclusivemin_uvec3
+dEQP-VK.subgroups.partitioned.compute.subgroupexclusivemin_uvec3_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupexclusivemax_uvec3
+dEQP-VK.subgroups.partitioned.compute.subgroupexclusivemax_uvec3_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupexclusiveand_uvec3
+dEQP-VK.subgroups.partitioned.compute.subgroupexclusiveand_uvec3_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupexclusiveor_uvec3
+dEQP-VK.subgroups.partitioned.compute.subgroupexclusiveor_uvec3_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupexclusivexor_uvec3
+dEQP-VK.subgroups.partitioned.compute.subgroupexclusivexor_uvec3_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupadd_uvec4
+dEQP-VK.subgroups.partitioned.compute.subgroupadd_uvec4_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupmul_uvec4
+dEQP-VK.subgroups.partitioned.compute.subgroupmul_uvec4_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupmin_uvec4
+dEQP-VK.subgroups.partitioned.compute.subgroupmin_uvec4_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupmax_uvec4
+dEQP-VK.subgroups.partitioned.compute.subgroupmax_uvec4_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupand_uvec4
+dEQP-VK.subgroups.partitioned.compute.subgroupand_uvec4_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupor_uvec4
+dEQP-VK.subgroups.partitioned.compute.subgroupor_uvec4_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupxor_uvec4
+dEQP-VK.subgroups.partitioned.compute.subgroupxor_uvec4_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupinclusiveadd_uvec4
+dEQP-VK.subgroups.partitioned.compute.subgroupinclusiveadd_uvec4_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupinclusivemul_uvec4
+dEQP-VK.subgroups.partitioned.compute.subgroupinclusivemul_uvec4_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupinclusivemin_uvec4
+dEQP-VK.subgroups.partitioned.compute.subgroupinclusivemin_uvec4_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupinclusivemax_uvec4
+dEQP-VK.subgroups.partitioned.compute.subgroupinclusivemax_uvec4_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupinclusiveand_uvec4
+dEQP-VK.subgroups.partitioned.compute.subgroupinclusiveand_uvec4_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupinclusiveor_uvec4
+dEQP-VK.subgroups.partitioned.compute.subgroupinclusiveor_uvec4_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupinclusivexor_uvec4
+dEQP-VK.subgroups.partitioned.compute.subgroupinclusivexor_uvec4_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupexclusiveadd_uvec4
+dEQP-VK.subgroups.partitioned.compute.subgroupexclusiveadd_uvec4_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupexclusivemul_uvec4
+dEQP-VK.subgroups.partitioned.compute.subgroupexclusivemul_uvec4_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupexclusivemin_uvec4
+dEQP-VK.subgroups.partitioned.compute.subgroupexclusivemin_uvec4_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupexclusivemax_uvec4
+dEQP-VK.subgroups.partitioned.compute.subgroupexclusivemax_uvec4_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupexclusiveand_uvec4
+dEQP-VK.subgroups.partitioned.compute.subgroupexclusiveand_uvec4_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupexclusiveor_uvec4
+dEQP-VK.subgroups.partitioned.compute.subgroupexclusiveor_uvec4_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupexclusivexor_uvec4
+dEQP-VK.subgroups.partitioned.compute.subgroupexclusivexor_uvec4_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupadd_int64_t
+dEQP-VK.subgroups.partitioned.compute.subgroupadd_int64_t_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupmul_int64_t
+dEQP-VK.subgroups.partitioned.compute.subgroupmul_int64_t_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupmin_int64_t
+dEQP-VK.subgroups.partitioned.compute.subgroupmin_int64_t_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupmax_int64_t
+dEQP-VK.subgroups.partitioned.compute.subgroupmax_int64_t_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupand_int64_t
+dEQP-VK.subgroups.partitioned.compute.subgroupand_int64_t_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupor_int64_t
+dEQP-VK.subgroups.partitioned.compute.subgroupor_int64_t_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupxor_int64_t
+dEQP-VK.subgroups.partitioned.compute.subgroupxor_int64_t_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupinclusiveadd_int64_t
+dEQP-VK.subgroups.partitioned.compute.subgroupinclusiveadd_int64_t_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupinclusivemul_int64_t
+dEQP-VK.subgroups.partitioned.compute.subgroupinclusivemul_int64_t_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupinclusivemin_int64_t
+dEQP-VK.subgroups.partitioned.compute.subgroupinclusivemin_int64_t_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupinclusivemax_int64_t
+dEQP-VK.subgroups.partitioned.compute.subgroupinclusivemax_int64_t_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupinclusiveand_int64_t
+dEQP-VK.subgroups.partitioned.compute.subgroupinclusiveand_int64_t_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupinclusiveor_int64_t
+dEQP-VK.subgroups.partitioned.compute.subgroupinclusiveor_int64_t_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupinclusivexor_int64_t
+dEQP-VK.subgroups.partitioned.compute.subgroupinclusivexor_int64_t_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupexclusiveadd_int64_t
+dEQP-VK.subgroups.partitioned.compute.subgroupexclusiveadd_int64_t_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupexclusivemul_int64_t
+dEQP-VK.subgroups.partitioned.compute.subgroupexclusivemul_int64_t_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupexclusivemin_int64_t
+dEQP-VK.subgroups.partitioned.compute.subgroupexclusivemin_int64_t_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupexclusivemax_int64_t
+dEQP-VK.subgroups.partitioned.compute.subgroupexclusivemax_int64_t_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupexclusiveand_int64_t
+dEQP-VK.subgroups.partitioned.compute.subgroupexclusiveand_int64_t_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupexclusiveor_int64_t
+dEQP-VK.subgroups.partitioned.compute.subgroupexclusiveor_int64_t_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupexclusivexor_int64_t
+dEQP-VK.subgroups.partitioned.compute.subgroupexclusivexor_int64_t_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupadd_i64vec2
+dEQP-VK.subgroups.partitioned.compute.subgroupadd_i64vec2_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupmul_i64vec2
+dEQP-VK.subgroups.partitioned.compute.subgroupmul_i64vec2_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupmin_i64vec2
+dEQP-VK.subgroups.partitioned.compute.subgroupmin_i64vec2_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupmax_i64vec2
+dEQP-VK.subgroups.partitioned.compute.subgroupmax_i64vec2_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupand_i64vec2
+dEQP-VK.subgroups.partitioned.compute.subgroupand_i64vec2_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupor_i64vec2
+dEQP-VK.subgroups.partitioned.compute.subgroupor_i64vec2_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupxor_i64vec2
+dEQP-VK.subgroups.partitioned.compute.subgroupxor_i64vec2_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupinclusiveadd_i64vec2
+dEQP-VK.subgroups.partitioned.compute.subgroupinclusiveadd_i64vec2_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupinclusivemul_i64vec2
+dEQP-VK.subgroups.partitioned.compute.subgroupinclusivemul_i64vec2_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupinclusivemin_i64vec2
+dEQP-VK.subgroups.partitioned.compute.subgroupinclusivemin_i64vec2_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupinclusivemax_i64vec2
+dEQP-VK.subgroups.partitioned.compute.subgroupinclusivemax_i64vec2_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupinclusiveand_i64vec2
+dEQP-VK.subgroups.partitioned.compute.subgroupinclusiveand_i64vec2_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupinclusiveor_i64vec2
+dEQP-VK.subgroups.partitioned.compute.subgroupinclusiveor_i64vec2_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupinclusivexor_i64vec2
+dEQP-VK.subgroups.partitioned.compute.subgroupinclusivexor_i64vec2_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupexclusiveadd_i64vec2
+dEQP-VK.subgroups.partitioned.compute.subgroupexclusiveadd_i64vec2_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupexclusivemul_i64vec2
+dEQP-VK.subgroups.partitioned.compute.subgroupexclusivemul_i64vec2_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupexclusivemin_i64vec2
+dEQP-VK.subgroups.partitioned.compute.subgroupexclusivemin_i64vec2_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupexclusivemax_i64vec2
+dEQP-VK.subgroups.partitioned.compute.subgroupexclusivemax_i64vec2_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupexclusiveand_i64vec2
+dEQP-VK.subgroups.partitioned.compute.subgroupexclusiveand_i64vec2_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupexclusiveor_i64vec2
+dEQP-VK.subgroups.partitioned.compute.subgroupexclusiveor_i64vec2_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupexclusivexor_i64vec2
+dEQP-VK.subgroups.partitioned.compute.subgroupexclusivexor_i64vec2_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupadd_i64vec3
+dEQP-VK.subgroups.partitioned.compute.subgroupadd_i64vec3_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupmul_i64vec3
+dEQP-VK.subgroups.partitioned.compute.subgroupmul_i64vec3_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupmin_i64vec3
+dEQP-VK.subgroups.partitioned.compute.subgroupmin_i64vec3_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupmax_i64vec3
+dEQP-VK.subgroups.partitioned.compute.subgroupmax_i64vec3_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupand_i64vec3
+dEQP-VK.subgroups.partitioned.compute.subgroupand_i64vec3_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupor_i64vec3
+dEQP-VK.subgroups.partitioned.compute.subgroupor_i64vec3_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupxor_i64vec3
+dEQP-VK.subgroups.partitioned.compute.subgroupxor_i64vec3_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupinclusiveadd_i64vec3
+dEQP-VK.subgroups.partitioned.compute.subgroupinclusiveadd_i64vec3_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupinclusivemul_i64vec3
+dEQP-VK.subgroups.partitioned.compute.subgroupinclusivemul_i64vec3_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupinclusivemin_i64vec3
+dEQP-VK.subgroups.partitioned.compute.subgroupinclusivemin_i64vec3_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupinclusivemax_i64vec3
+dEQP-VK.subgroups.partitioned.compute.subgroupinclusivemax_i64vec3_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupinclusiveand_i64vec3
+dEQP-VK.subgroups.partitioned.compute.subgroupinclusiveand_i64vec3_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupinclusiveor_i64vec3
+dEQP-VK.subgroups.partitioned.compute.subgroupinclusiveor_i64vec3_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupinclusivexor_i64vec3
+dEQP-VK.subgroups.partitioned.compute.subgroupinclusivexor_i64vec3_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupexclusiveadd_i64vec3
+dEQP-VK.subgroups.partitioned.compute.subgroupexclusiveadd_i64vec3_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupexclusivemul_i64vec3
+dEQP-VK.subgroups.partitioned.compute.subgroupexclusivemul_i64vec3_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupexclusivemin_i64vec3
+dEQP-VK.subgroups.partitioned.compute.subgroupexclusivemin_i64vec3_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupexclusivemax_i64vec3
+dEQP-VK.subgroups.partitioned.compute.subgroupexclusivemax_i64vec3_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupexclusiveand_i64vec3
+dEQP-VK.subgroups.partitioned.compute.subgroupexclusiveand_i64vec3_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupexclusiveor_i64vec3
+dEQP-VK.subgroups.partitioned.compute.subgroupexclusiveor_i64vec3_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupexclusivexor_i64vec3
+dEQP-VK.subgroups.partitioned.compute.subgroupexclusivexor_i64vec3_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupadd_i64vec4
+dEQP-VK.subgroups.partitioned.compute.subgroupadd_i64vec4_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupmul_i64vec4
+dEQP-VK.subgroups.partitioned.compute.subgroupmul_i64vec4_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupmin_i64vec4
+dEQP-VK.subgroups.partitioned.compute.subgroupmin_i64vec4_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupmax_i64vec4
+dEQP-VK.subgroups.partitioned.compute.subgroupmax_i64vec4_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupand_i64vec4
+dEQP-VK.subgroups.partitioned.compute.subgroupand_i64vec4_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupor_i64vec4
+dEQP-VK.subgroups.partitioned.compute.subgroupor_i64vec4_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupxor_i64vec4
+dEQP-VK.subgroups.partitioned.compute.subgroupxor_i64vec4_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupinclusiveadd_i64vec4
+dEQP-VK.subgroups.partitioned.compute.subgroupinclusiveadd_i64vec4_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupinclusivemul_i64vec4
+dEQP-VK.subgroups.partitioned.compute.subgroupinclusivemul_i64vec4_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupinclusivemin_i64vec4
+dEQP-VK.subgroups.partitioned.compute.subgroupinclusivemin_i64vec4_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupinclusivemax_i64vec4
+dEQP-VK.subgroups.partitioned.compute.subgroupinclusivemax_i64vec4_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupinclusiveand_i64vec4
+dEQP-VK.subgroups.partitioned.compute.subgroupinclusiveand_i64vec4_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupinclusiveor_i64vec4
+dEQP-VK.subgroups.partitioned.compute.subgroupinclusiveor_i64vec4_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupinclusivexor_i64vec4
+dEQP-VK.subgroups.partitioned.compute.subgroupinclusivexor_i64vec4_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupexclusiveadd_i64vec4
+dEQP-VK.subgroups.partitioned.compute.subgroupexclusiveadd_i64vec4_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupexclusivemul_i64vec4
+dEQP-VK.subgroups.partitioned.compute.subgroupexclusivemul_i64vec4_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupexclusivemin_i64vec4
+dEQP-VK.subgroups.partitioned.compute.subgroupexclusivemin_i64vec4_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupexclusivemax_i64vec4
+dEQP-VK.subgroups.partitioned.compute.subgroupexclusivemax_i64vec4_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupexclusiveand_i64vec4
+dEQP-VK.subgroups.partitioned.compute.subgroupexclusiveand_i64vec4_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupexclusiveor_i64vec4
+dEQP-VK.subgroups.partitioned.compute.subgroupexclusiveor_i64vec4_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupexclusivexor_i64vec4
+dEQP-VK.subgroups.partitioned.compute.subgroupexclusivexor_i64vec4_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupadd_uint64_t
+dEQP-VK.subgroups.partitioned.compute.subgroupadd_uint64_t_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupmul_uint64_t
+dEQP-VK.subgroups.partitioned.compute.subgroupmul_uint64_t_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupmin_uint64_t
+dEQP-VK.subgroups.partitioned.compute.subgroupmin_uint64_t_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupmax_uint64_t
+dEQP-VK.subgroups.partitioned.compute.subgroupmax_uint64_t_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupand_uint64_t
+dEQP-VK.subgroups.partitioned.compute.subgroupand_uint64_t_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupor_uint64_t
+dEQP-VK.subgroups.partitioned.compute.subgroupor_uint64_t_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupxor_uint64_t
+dEQP-VK.subgroups.partitioned.compute.subgroupxor_uint64_t_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupinclusiveadd_uint64_t
+dEQP-VK.subgroups.partitioned.compute.subgroupinclusiveadd_uint64_t_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupinclusivemul_uint64_t
+dEQP-VK.subgroups.partitioned.compute.subgroupinclusivemul_uint64_t_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupinclusivemin_uint64_t
+dEQP-VK.subgroups.partitioned.compute.subgroupinclusivemin_uint64_t_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupinclusivemax_uint64_t
+dEQP-VK.subgroups.partitioned.compute.subgroupinclusivemax_uint64_t_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupinclusiveand_uint64_t
+dEQP-VK.subgroups.partitioned.compute.subgroupinclusiveand_uint64_t_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupinclusiveor_uint64_t
+dEQP-VK.subgroups.partitioned.compute.subgroupinclusiveor_uint64_t_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupinclusivexor_uint64_t
+dEQP-VK.subgroups.partitioned.compute.subgroupinclusivexor_uint64_t_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupexclusiveadd_uint64_t
+dEQP-VK.subgroups.partitioned.compute.subgroupexclusiveadd_uint64_t_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupexclusivemul_uint64_t
+dEQP-VK.subgroups.partitioned.compute.subgroupexclusivemul_uint64_t_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupexclusivemin_uint64_t
+dEQP-VK.subgroups.partitioned.compute.subgroupexclusivemin_uint64_t_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupexclusivemax_uint64_t
+dEQP-VK.subgroups.partitioned.compute.subgroupexclusivemax_uint64_t_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupexclusiveand_uint64_t
+dEQP-VK.subgroups.partitioned.compute.subgroupexclusiveand_uint64_t_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupexclusiveor_uint64_t
+dEQP-VK.subgroups.partitioned.compute.subgroupexclusiveor_uint64_t_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupexclusivexor_uint64_t
+dEQP-VK.subgroups.partitioned.compute.subgroupexclusivexor_uint64_t_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupadd_u64vec2
+dEQP-VK.subgroups.partitioned.compute.subgroupadd_u64vec2_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupmul_u64vec2
+dEQP-VK.subgroups.partitioned.compute.subgroupmul_u64vec2_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupmin_u64vec2
+dEQP-VK.subgroups.partitioned.compute.subgroupmin_u64vec2_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupmax_u64vec2
+dEQP-VK.subgroups.partitioned.compute.subgroupmax_u64vec2_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupand_u64vec2
+dEQP-VK.subgroups.partitioned.compute.subgroupand_u64vec2_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupor_u64vec2
+dEQP-VK.subgroups.partitioned.compute.subgroupor_u64vec2_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupxor_u64vec2
+dEQP-VK.subgroups.partitioned.compute.subgroupxor_u64vec2_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupinclusiveadd_u64vec2
+dEQP-VK.subgroups.partitioned.compute.subgroupinclusiveadd_u64vec2_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupinclusivemul_u64vec2
+dEQP-VK.subgroups.partitioned.compute.subgroupinclusivemul_u64vec2_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupinclusivemin_u64vec2
+dEQP-VK.subgroups.partitioned.compute.subgroupinclusivemin_u64vec2_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupinclusivemax_u64vec2
+dEQP-VK.subgroups.partitioned.compute.subgroupinclusivemax_u64vec2_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupinclusiveand_u64vec2
+dEQP-VK.subgroups.partitioned.compute.subgroupinclusiveand_u64vec2_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupinclusiveor_u64vec2
+dEQP-VK.subgroups.partitioned.compute.subgroupinclusiveor_u64vec2_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupinclusivexor_u64vec2
+dEQP-VK.subgroups.partitioned.compute.subgroupinclusivexor_u64vec2_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupexclusiveadd_u64vec2
+dEQP-VK.subgroups.partitioned.compute.subgroupexclusiveadd_u64vec2_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupexclusivemul_u64vec2
+dEQP-VK.subgroups.partitioned.compute.subgroupexclusivemul_u64vec2_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupexclusivemin_u64vec2
+dEQP-VK.subgroups.partitioned.compute.subgroupexclusivemin_u64vec2_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupexclusivemax_u64vec2
+dEQP-VK.subgroups.partitioned.compute.subgroupexclusivemax_u64vec2_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupexclusiveand_u64vec2
+dEQP-VK.subgroups.partitioned.compute.subgroupexclusiveand_u64vec2_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupexclusiveor_u64vec2
+dEQP-VK.subgroups.partitioned.compute.subgroupexclusiveor_u64vec2_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupexclusivexor_u64vec2
+dEQP-VK.subgroups.partitioned.compute.subgroupexclusivexor_u64vec2_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupadd_u64vec3
+dEQP-VK.subgroups.partitioned.compute.subgroupadd_u64vec3_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupmul_u64vec3
+dEQP-VK.subgroups.partitioned.compute.subgroupmul_u64vec3_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupmin_u64vec3
+dEQP-VK.subgroups.partitioned.compute.subgroupmin_u64vec3_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupmax_u64vec3
+dEQP-VK.subgroups.partitioned.compute.subgroupmax_u64vec3_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupand_u64vec3
+dEQP-VK.subgroups.partitioned.compute.subgroupand_u64vec3_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupor_u64vec3
+dEQP-VK.subgroups.partitioned.compute.subgroupor_u64vec3_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupxor_u64vec3
+dEQP-VK.subgroups.partitioned.compute.subgroupxor_u64vec3_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupinclusiveadd_u64vec3
+dEQP-VK.subgroups.partitioned.compute.subgroupinclusiveadd_u64vec3_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupinclusivemul_u64vec3
+dEQP-VK.subgroups.partitioned.compute.subgroupinclusivemul_u64vec3_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupinclusivemin_u64vec3
+dEQP-VK.subgroups.partitioned.compute.subgroupinclusivemin_u64vec3_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupinclusivemax_u64vec3
+dEQP-VK.subgroups.partitioned.compute.subgroupinclusivemax_u64vec3_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupinclusiveand_u64vec3
+dEQP-VK.subgroups.partitioned.compute.subgroupinclusiveand_u64vec3_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupinclusiveor_u64vec3
+dEQP-VK.subgroups.partitioned.compute.subgroupinclusiveor_u64vec3_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupinclusivexor_u64vec3
+dEQP-VK.subgroups.partitioned.compute.subgroupinclusivexor_u64vec3_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupexclusiveadd_u64vec3
+dEQP-VK.subgroups.partitioned.compute.subgroupexclusiveadd_u64vec3_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupexclusivemul_u64vec3
+dEQP-VK.subgroups.partitioned.compute.subgroupexclusivemul_u64vec3_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupexclusivemin_u64vec3
+dEQP-VK.subgroups.partitioned.compute.subgroupexclusivemin_u64vec3_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupexclusivemax_u64vec3
+dEQP-VK.subgroups.partitioned.compute.subgroupexclusivemax_u64vec3_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupexclusiveand_u64vec3
+dEQP-VK.subgroups.partitioned.compute.subgroupexclusiveand_u64vec3_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupexclusiveor_u64vec3
+dEQP-VK.subgroups.partitioned.compute.subgroupexclusiveor_u64vec3_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupexclusivexor_u64vec3
+dEQP-VK.subgroups.partitioned.compute.subgroupexclusivexor_u64vec3_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupadd_u64vec4
+dEQP-VK.subgroups.partitioned.compute.subgroupadd_u64vec4_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupmul_u64vec4
+dEQP-VK.subgroups.partitioned.compute.subgroupmul_u64vec4_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupmin_u64vec4
+dEQP-VK.subgroups.partitioned.compute.subgroupmin_u64vec4_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupmax_u64vec4
+dEQP-VK.subgroups.partitioned.compute.subgroupmax_u64vec4_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupand_u64vec4
+dEQP-VK.subgroups.partitioned.compute.subgroupand_u64vec4_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupor_u64vec4
+dEQP-VK.subgroups.partitioned.compute.subgroupor_u64vec4_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupxor_u64vec4
+dEQP-VK.subgroups.partitioned.compute.subgroupxor_u64vec4_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupinclusiveadd_u64vec4
+dEQP-VK.subgroups.partitioned.compute.subgroupinclusiveadd_u64vec4_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupinclusivemul_u64vec4
+dEQP-VK.subgroups.partitioned.compute.subgroupinclusivemul_u64vec4_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupinclusivemin_u64vec4
+dEQP-VK.subgroups.partitioned.compute.subgroupinclusivemin_u64vec4_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupinclusivemax_u64vec4
+dEQP-VK.subgroups.partitioned.compute.subgroupinclusivemax_u64vec4_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupinclusiveand_u64vec4
+dEQP-VK.subgroups.partitioned.compute.subgroupinclusiveand_u64vec4_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupinclusiveor_u64vec4
+dEQP-VK.subgroups.partitioned.compute.subgroupinclusiveor_u64vec4_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupinclusivexor_u64vec4
+dEQP-VK.subgroups.partitioned.compute.subgroupinclusivexor_u64vec4_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupexclusiveadd_u64vec4
+dEQP-VK.subgroups.partitioned.compute.subgroupexclusiveadd_u64vec4_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupexclusivemul_u64vec4
+dEQP-VK.subgroups.partitioned.compute.subgroupexclusivemul_u64vec4_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupexclusivemin_u64vec4
+dEQP-VK.subgroups.partitioned.compute.subgroupexclusivemin_u64vec4_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupexclusivemax_u64vec4
+dEQP-VK.subgroups.partitioned.compute.subgroupexclusivemax_u64vec4_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupexclusiveand_u64vec4
+dEQP-VK.subgroups.partitioned.compute.subgroupexclusiveand_u64vec4_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupexclusiveor_u64vec4
+dEQP-VK.subgroups.partitioned.compute.subgroupexclusiveor_u64vec4_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupexclusivexor_u64vec4
+dEQP-VK.subgroups.partitioned.compute.subgroupexclusivexor_u64vec4_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupadd_float16_t
+dEQP-VK.subgroups.partitioned.compute.subgroupadd_float16_t_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupmul_float16_t
+dEQP-VK.subgroups.partitioned.compute.subgroupmul_float16_t_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupmin_float16_t
+dEQP-VK.subgroups.partitioned.compute.subgroupmin_float16_t_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupmax_float16_t
+dEQP-VK.subgroups.partitioned.compute.subgroupmax_float16_t_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupinclusiveadd_float16_t
+dEQP-VK.subgroups.partitioned.compute.subgroupinclusiveadd_float16_t_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupinclusivemul_float16_t
+dEQP-VK.subgroups.partitioned.compute.subgroupinclusivemul_float16_t_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupinclusivemin_float16_t
+dEQP-VK.subgroups.partitioned.compute.subgroupinclusivemin_float16_t_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupinclusivemax_float16_t
+dEQP-VK.subgroups.partitioned.compute.subgroupinclusivemax_float16_t_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupexclusiveadd_float16_t
+dEQP-VK.subgroups.partitioned.compute.subgroupexclusiveadd_float16_t_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupexclusivemul_float16_t
+dEQP-VK.subgroups.partitioned.compute.subgroupexclusivemul_float16_t_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupexclusivemin_float16_t
+dEQP-VK.subgroups.partitioned.compute.subgroupexclusivemin_float16_t_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupexclusivemax_float16_t
+dEQP-VK.subgroups.partitioned.compute.subgroupexclusivemax_float16_t_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupadd_f16vec2
+dEQP-VK.subgroups.partitioned.compute.subgroupadd_f16vec2_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupmul_f16vec2
+dEQP-VK.subgroups.partitioned.compute.subgroupmul_f16vec2_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupmin_f16vec2
+dEQP-VK.subgroups.partitioned.compute.subgroupmin_f16vec2_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupmax_f16vec2
+dEQP-VK.subgroups.partitioned.compute.subgroupmax_f16vec2_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupinclusiveadd_f16vec2
+dEQP-VK.subgroups.partitioned.compute.subgroupinclusiveadd_f16vec2_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupinclusivemul_f16vec2
+dEQP-VK.subgroups.partitioned.compute.subgroupinclusivemul_f16vec2_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupinclusivemin_f16vec2
+dEQP-VK.subgroups.partitioned.compute.subgroupinclusivemin_f16vec2_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupinclusivemax_f16vec2
+dEQP-VK.subgroups.partitioned.compute.subgroupinclusivemax_f16vec2_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupexclusiveadd_f16vec2
+dEQP-VK.subgroups.partitioned.compute.subgroupexclusiveadd_f16vec2_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupexclusivemul_f16vec2
+dEQP-VK.subgroups.partitioned.compute.subgroupexclusivemul_f16vec2_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupexclusivemin_f16vec2
+dEQP-VK.subgroups.partitioned.compute.subgroupexclusivemin_f16vec2_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupexclusivemax_f16vec2
+dEQP-VK.subgroups.partitioned.compute.subgroupexclusivemax_f16vec2_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupadd_f16vec3
+dEQP-VK.subgroups.partitioned.compute.subgroupadd_f16vec3_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupmul_f16vec3
+dEQP-VK.subgroups.partitioned.compute.subgroupmul_f16vec3_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupmin_f16vec3
+dEQP-VK.subgroups.partitioned.compute.subgroupmin_f16vec3_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupmax_f16vec3
+dEQP-VK.subgroups.partitioned.compute.subgroupmax_f16vec3_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupinclusiveadd_f16vec3
+dEQP-VK.subgroups.partitioned.compute.subgroupinclusiveadd_f16vec3_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupinclusivemul_f16vec3
+dEQP-VK.subgroups.partitioned.compute.subgroupinclusivemul_f16vec3_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupinclusivemin_f16vec3
+dEQP-VK.subgroups.partitioned.compute.subgroupinclusivemin_f16vec3_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupinclusivemax_f16vec3
+dEQP-VK.subgroups.partitioned.compute.subgroupinclusivemax_f16vec3_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupexclusiveadd_f16vec3
+dEQP-VK.subgroups.partitioned.compute.subgroupexclusiveadd_f16vec3_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupexclusivemul_f16vec3
+dEQP-VK.subgroups.partitioned.compute.subgroupexclusivemul_f16vec3_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupexclusivemin_f16vec3
+dEQP-VK.subgroups.partitioned.compute.subgroupexclusivemin_f16vec3_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupexclusivemax_f16vec3
+dEQP-VK.subgroups.partitioned.compute.subgroupexclusivemax_f16vec3_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupadd_f16vec4
+dEQP-VK.subgroups.partitioned.compute.subgroupadd_f16vec4_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupmul_f16vec4
+dEQP-VK.subgroups.partitioned.compute.subgroupmul_f16vec4_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupmin_f16vec4
+dEQP-VK.subgroups.partitioned.compute.subgroupmin_f16vec4_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupmax_f16vec4
+dEQP-VK.subgroups.partitioned.compute.subgroupmax_f16vec4_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupinclusiveadd_f16vec4
+dEQP-VK.subgroups.partitioned.compute.subgroupinclusiveadd_f16vec4_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupinclusivemul_f16vec4
+dEQP-VK.subgroups.partitioned.compute.subgroupinclusivemul_f16vec4_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupinclusivemin_f16vec4
+dEQP-VK.subgroups.partitioned.compute.subgroupinclusivemin_f16vec4_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupinclusivemax_f16vec4
+dEQP-VK.subgroups.partitioned.compute.subgroupinclusivemax_f16vec4_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupexclusiveadd_f16vec4
+dEQP-VK.subgroups.partitioned.compute.subgroupexclusiveadd_f16vec4_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupexclusivemul_f16vec4
+dEQP-VK.subgroups.partitioned.compute.subgroupexclusivemul_f16vec4_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupexclusivemin_f16vec4
+dEQP-VK.subgroups.partitioned.compute.subgroupexclusivemin_f16vec4_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupexclusivemax_f16vec4
+dEQP-VK.subgroups.partitioned.compute.subgroupexclusivemax_f16vec4_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupadd_float
+dEQP-VK.subgroups.partitioned.compute.subgroupadd_float_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupmul_float
+dEQP-VK.subgroups.partitioned.compute.subgroupmul_float_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupmin_float
+dEQP-VK.subgroups.partitioned.compute.subgroupmin_float_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupmax_float
+dEQP-VK.subgroups.partitioned.compute.subgroupmax_float_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupinclusiveadd_float
+dEQP-VK.subgroups.partitioned.compute.subgroupinclusiveadd_float_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupinclusivemul_float
+dEQP-VK.subgroups.partitioned.compute.subgroupinclusivemul_float_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupinclusivemin_float
+dEQP-VK.subgroups.partitioned.compute.subgroupinclusivemin_float_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupinclusivemax_float
+dEQP-VK.subgroups.partitioned.compute.subgroupinclusivemax_float_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupexclusiveadd_float
+dEQP-VK.subgroups.partitioned.compute.subgroupexclusiveadd_float_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupexclusivemul_float
+dEQP-VK.subgroups.partitioned.compute.subgroupexclusivemul_float_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupexclusivemin_float
+dEQP-VK.subgroups.partitioned.compute.subgroupexclusivemin_float_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupexclusivemax_float
+dEQP-VK.subgroups.partitioned.compute.subgroupexclusivemax_float_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupadd_vec2
+dEQP-VK.subgroups.partitioned.compute.subgroupadd_vec2_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupmul_vec2
+dEQP-VK.subgroups.partitioned.compute.subgroupmul_vec2_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupmin_vec2
+dEQP-VK.subgroups.partitioned.compute.subgroupmin_vec2_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupmax_vec2
+dEQP-VK.subgroups.partitioned.compute.subgroupmax_vec2_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupinclusiveadd_vec2
+dEQP-VK.subgroups.partitioned.compute.subgroupinclusiveadd_vec2_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupinclusivemul_vec2
+dEQP-VK.subgroups.partitioned.compute.subgroupinclusivemul_vec2_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupinclusivemin_vec2
+dEQP-VK.subgroups.partitioned.compute.subgroupinclusivemin_vec2_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupinclusivemax_vec2
+dEQP-VK.subgroups.partitioned.compute.subgroupinclusivemax_vec2_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupexclusiveadd_vec2
+dEQP-VK.subgroups.partitioned.compute.subgroupexclusiveadd_vec2_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupexclusivemul_vec2
+dEQP-VK.subgroups.partitioned.compute.subgroupexclusivemul_vec2_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupexclusivemin_vec2
+dEQP-VK.subgroups.partitioned.compute.subgroupexclusivemin_vec2_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupexclusivemax_vec2
+dEQP-VK.subgroups.partitioned.compute.subgroupexclusivemax_vec2_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupadd_vec3
+dEQP-VK.subgroups.partitioned.compute.subgroupadd_vec3_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupmul_vec3
+dEQP-VK.subgroups.partitioned.compute.subgroupmul_vec3_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupmin_vec3
+dEQP-VK.subgroups.partitioned.compute.subgroupmin_vec3_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupmax_vec3
+dEQP-VK.subgroups.partitioned.compute.subgroupmax_vec3_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupinclusiveadd_vec3
+dEQP-VK.subgroups.partitioned.compute.subgroupinclusiveadd_vec3_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupinclusivemul_vec3
+dEQP-VK.subgroups.partitioned.compute.subgroupinclusivemul_vec3_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupinclusivemin_vec3
+dEQP-VK.subgroups.partitioned.compute.subgroupinclusivemin_vec3_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupinclusivemax_vec3
+dEQP-VK.subgroups.partitioned.compute.subgroupinclusivemax_vec3_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupexclusiveadd_vec3
+dEQP-VK.subgroups.partitioned.compute.subgroupexclusiveadd_vec3_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupexclusivemul_vec3
+dEQP-VK.subgroups.partitioned.compute.subgroupexclusivemul_vec3_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupexclusivemin_vec3
+dEQP-VK.subgroups.partitioned.compute.subgroupexclusivemin_vec3_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupexclusivemax_vec3
+dEQP-VK.subgroups.partitioned.compute.subgroupexclusivemax_vec3_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupadd_vec4
+dEQP-VK.subgroups.partitioned.compute.subgroupadd_vec4_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupmul_vec4
+dEQP-VK.subgroups.partitioned.compute.subgroupmul_vec4_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupmin_vec4
+dEQP-VK.subgroups.partitioned.compute.subgroupmin_vec4_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupmax_vec4
+dEQP-VK.subgroups.partitioned.compute.subgroupmax_vec4_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupinclusiveadd_vec4
+dEQP-VK.subgroups.partitioned.compute.subgroupinclusiveadd_vec4_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupinclusivemul_vec4
+dEQP-VK.subgroups.partitioned.compute.subgroupinclusivemul_vec4_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupinclusivemin_vec4
+dEQP-VK.subgroups.partitioned.compute.subgroupinclusivemin_vec4_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupinclusivemax_vec4
+dEQP-VK.subgroups.partitioned.compute.subgroupinclusivemax_vec4_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupexclusiveadd_vec4
+dEQP-VK.subgroups.partitioned.compute.subgroupexclusiveadd_vec4_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupexclusivemul_vec4
+dEQP-VK.subgroups.partitioned.compute.subgroupexclusivemul_vec4_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupexclusivemin_vec4
+dEQP-VK.subgroups.partitioned.compute.subgroupexclusivemin_vec4_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupexclusivemax_vec4
+dEQP-VK.subgroups.partitioned.compute.subgroupexclusivemax_vec4_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupadd_double
+dEQP-VK.subgroups.partitioned.compute.subgroupadd_double_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupmul_double
+dEQP-VK.subgroups.partitioned.compute.subgroupmul_double_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupmin_double
+dEQP-VK.subgroups.partitioned.compute.subgroupmin_double_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupmax_double
+dEQP-VK.subgroups.partitioned.compute.subgroupmax_double_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupinclusiveadd_double
+dEQP-VK.subgroups.partitioned.compute.subgroupinclusiveadd_double_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupinclusivemul_double
+dEQP-VK.subgroups.partitioned.compute.subgroupinclusivemul_double_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupinclusivemin_double
+dEQP-VK.subgroups.partitioned.compute.subgroupinclusivemin_double_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupinclusivemax_double
+dEQP-VK.subgroups.partitioned.compute.subgroupinclusivemax_double_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupexclusiveadd_double
+dEQP-VK.subgroups.partitioned.compute.subgroupexclusiveadd_double_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupexclusivemul_double
+dEQP-VK.subgroups.partitioned.compute.subgroupexclusivemul_double_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupexclusivemin_double
+dEQP-VK.subgroups.partitioned.compute.subgroupexclusivemin_double_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupexclusivemax_double
+dEQP-VK.subgroups.partitioned.compute.subgroupexclusivemax_double_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupadd_dvec2
+dEQP-VK.subgroups.partitioned.compute.subgroupadd_dvec2_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupmul_dvec2
+dEQP-VK.subgroups.partitioned.compute.subgroupmul_dvec2_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupmin_dvec2
+dEQP-VK.subgroups.partitioned.compute.subgroupmin_dvec2_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupmax_dvec2
+dEQP-VK.subgroups.partitioned.compute.subgroupmax_dvec2_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupinclusiveadd_dvec2
+dEQP-VK.subgroups.partitioned.compute.subgroupinclusiveadd_dvec2_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupinclusivemul_dvec2
+dEQP-VK.subgroups.partitioned.compute.subgroupinclusivemul_dvec2_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupinclusivemin_dvec2
+dEQP-VK.subgroups.partitioned.compute.subgroupinclusivemin_dvec2_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupinclusivemax_dvec2
+dEQP-VK.subgroups.partitioned.compute.subgroupinclusivemax_dvec2_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupexclusiveadd_dvec2
+dEQP-VK.subgroups.partitioned.compute.subgroupexclusiveadd_dvec2_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupexclusivemul_dvec2
+dEQP-VK.subgroups.partitioned.compute.subgroupexclusivemul_dvec2_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupexclusivemin_dvec2
+dEQP-VK.subgroups.partitioned.compute.subgroupexclusivemin_dvec2_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupexclusivemax_dvec2
+dEQP-VK.subgroups.partitioned.compute.subgroupexclusivemax_dvec2_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupadd_dvec3
+dEQP-VK.subgroups.partitioned.compute.subgroupadd_dvec3_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupmul_dvec3
+dEQP-VK.subgroups.partitioned.compute.subgroupmul_dvec3_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupmin_dvec3
+dEQP-VK.subgroups.partitioned.compute.subgroupmin_dvec3_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupmax_dvec3
+dEQP-VK.subgroups.partitioned.compute.subgroupmax_dvec3_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupinclusiveadd_dvec3
+dEQP-VK.subgroups.partitioned.compute.subgroupinclusiveadd_dvec3_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupinclusivemul_dvec3
+dEQP-VK.subgroups.partitioned.compute.subgroupinclusivemul_dvec3_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupinclusivemin_dvec3
+dEQP-VK.subgroups.partitioned.compute.subgroupinclusivemin_dvec3_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupinclusivemax_dvec3
+dEQP-VK.subgroups.partitioned.compute.subgroupinclusivemax_dvec3_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupexclusiveadd_dvec3
+dEQP-VK.subgroups.partitioned.compute.subgroupexclusiveadd_dvec3_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupexclusivemul_dvec3
+dEQP-VK.subgroups.partitioned.compute.subgroupexclusivemul_dvec3_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupexclusivemin_dvec3
+dEQP-VK.subgroups.partitioned.compute.subgroupexclusivemin_dvec3_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupexclusivemax_dvec3
+dEQP-VK.subgroups.partitioned.compute.subgroupexclusivemax_dvec3_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupadd_dvec4
+dEQP-VK.subgroups.partitioned.compute.subgroupadd_dvec4_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupmul_dvec4
+dEQP-VK.subgroups.partitioned.compute.subgroupmul_dvec4_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupmin_dvec4
+dEQP-VK.subgroups.partitioned.compute.subgroupmin_dvec4_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupmax_dvec4
+dEQP-VK.subgroups.partitioned.compute.subgroupmax_dvec4_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupinclusiveadd_dvec4
+dEQP-VK.subgroups.partitioned.compute.subgroupinclusiveadd_dvec4_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupinclusivemul_dvec4
+dEQP-VK.subgroups.partitioned.compute.subgroupinclusivemul_dvec4_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupinclusivemin_dvec4
+dEQP-VK.subgroups.partitioned.compute.subgroupinclusivemin_dvec4_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupinclusivemax_dvec4
+dEQP-VK.subgroups.partitioned.compute.subgroupinclusivemax_dvec4_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupexclusiveadd_dvec4
+dEQP-VK.subgroups.partitioned.compute.subgroupexclusiveadd_dvec4_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupexclusivemul_dvec4
+dEQP-VK.subgroups.partitioned.compute.subgroupexclusivemul_dvec4_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupexclusivemin_dvec4
+dEQP-VK.subgroups.partitioned.compute.subgroupexclusivemin_dvec4_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupexclusivemax_dvec4
+dEQP-VK.subgroups.partitioned.compute.subgroupexclusivemax_dvec4_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupand_bool
+dEQP-VK.subgroups.partitioned.compute.subgroupand_bool_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupor_bool
+dEQP-VK.subgroups.partitioned.compute.subgroupor_bool_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupxor_bool
+dEQP-VK.subgroups.partitioned.compute.subgroupxor_bool_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupinclusiveand_bool
+dEQP-VK.subgroups.partitioned.compute.subgroupinclusiveand_bool_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupinclusiveor_bool
+dEQP-VK.subgroups.partitioned.compute.subgroupinclusiveor_bool_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupinclusivexor_bool
+dEQP-VK.subgroups.partitioned.compute.subgroupinclusivexor_bool_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupexclusiveand_bool
+dEQP-VK.subgroups.partitioned.compute.subgroupexclusiveand_bool_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupexclusiveor_bool
+dEQP-VK.subgroups.partitioned.compute.subgroupexclusiveor_bool_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupexclusivexor_bool
+dEQP-VK.subgroups.partitioned.compute.subgroupexclusivexor_bool_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupand_bvec2
+dEQP-VK.subgroups.partitioned.compute.subgroupand_bvec2_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupor_bvec2
+dEQP-VK.subgroups.partitioned.compute.subgroupor_bvec2_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupxor_bvec2
+dEQP-VK.subgroups.partitioned.compute.subgroupxor_bvec2_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupinclusiveand_bvec2
+dEQP-VK.subgroups.partitioned.compute.subgroupinclusiveand_bvec2_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupinclusiveor_bvec2
+dEQP-VK.subgroups.partitioned.compute.subgroupinclusiveor_bvec2_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupinclusivexor_bvec2
+dEQP-VK.subgroups.partitioned.compute.subgroupinclusivexor_bvec2_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupexclusiveand_bvec2
+dEQP-VK.subgroups.partitioned.compute.subgroupexclusiveand_bvec2_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupexclusiveor_bvec2
+dEQP-VK.subgroups.partitioned.compute.subgroupexclusiveor_bvec2_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupexclusivexor_bvec2
+dEQP-VK.subgroups.partitioned.compute.subgroupexclusivexor_bvec2_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupand_bvec3
+dEQP-VK.subgroups.partitioned.compute.subgroupand_bvec3_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupor_bvec3
+dEQP-VK.subgroups.partitioned.compute.subgroupor_bvec3_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupxor_bvec3
+dEQP-VK.subgroups.partitioned.compute.subgroupxor_bvec3_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupinclusiveand_bvec3
+dEQP-VK.subgroups.partitioned.compute.subgroupinclusiveand_bvec3_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupinclusiveor_bvec3
+dEQP-VK.subgroups.partitioned.compute.subgroupinclusiveor_bvec3_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupinclusivexor_bvec3
+dEQP-VK.subgroups.partitioned.compute.subgroupinclusivexor_bvec3_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupexclusiveand_bvec3
+dEQP-VK.subgroups.partitioned.compute.subgroupexclusiveand_bvec3_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupexclusiveor_bvec3
+dEQP-VK.subgroups.partitioned.compute.subgroupexclusiveor_bvec3_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupexclusivexor_bvec3
+dEQP-VK.subgroups.partitioned.compute.subgroupexclusivexor_bvec3_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupand_bvec4
+dEQP-VK.subgroups.partitioned.compute.subgroupand_bvec4_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupor_bvec4
+dEQP-VK.subgroups.partitioned.compute.subgroupor_bvec4_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupxor_bvec4
+dEQP-VK.subgroups.partitioned.compute.subgroupxor_bvec4_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupinclusiveand_bvec4
+dEQP-VK.subgroups.partitioned.compute.subgroupinclusiveand_bvec4_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupinclusiveor_bvec4
+dEQP-VK.subgroups.partitioned.compute.subgroupinclusiveor_bvec4_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupinclusivexor_bvec4
+dEQP-VK.subgroups.partitioned.compute.subgroupinclusivexor_bvec4_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupexclusiveand_bvec4
+dEQP-VK.subgroups.partitioned.compute.subgroupexclusiveand_bvec4_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupexclusiveor_bvec4
+dEQP-VK.subgroups.partitioned.compute.subgroupexclusiveor_bvec4_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupexclusivexor_bvec4
+dEQP-VK.subgroups.partitioned.compute.subgroupexclusivexor_bvec4_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.framebuffer.subgroupadd_int8_t_vertex
 dEQP-VK.subgroups.partitioned.framebuffer.subgroupadd_int8_t_tess_eval
 dEQP-VK.subgroups.partitioned.framebuffer.subgroupadd_int8_t_tess_control
@@ -519569,197 +521787,389 @@ dEQP-VK.subgroups.shuffle.graphics.subgroupshufflexor_bvec4
 dEQP-VK.subgroups.shuffle.graphics.subgroupshuffleup_bvec4
 dEQP-VK.subgroups.shuffle.graphics.subgroupshuffledown_bvec4
 dEQP-VK.subgroups.shuffle.compute.subgroupshuffle_int8_t
+dEQP-VK.subgroups.shuffle.compute.subgroupshuffle_int8_t_requiredsubgroupsize
 dEQP-VK.subgroups.shuffle.compute.subgroupshufflexor_int8_t
+dEQP-VK.subgroups.shuffle.compute.subgroupshufflexor_int8_t_requiredsubgroupsize
 dEQP-VK.subgroups.shuffle.compute.subgroupshuffleup_int8_t
+dEQP-VK.subgroups.shuffle.compute.subgroupshuffleup_int8_t_requiredsubgroupsize
 dEQP-VK.subgroups.shuffle.compute.subgroupshuffledown_int8_t
+dEQP-VK.subgroups.shuffle.compute.subgroupshuffledown_int8_t_requiredsubgroupsize
 dEQP-VK.subgroups.shuffle.compute.subgroupshuffle_i8vec2
+dEQP-VK.subgroups.shuffle.compute.subgroupshuffle_i8vec2_requiredsubgroupsize
 dEQP-VK.subgroups.shuffle.compute.subgroupshufflexor_i8vec2
+dEQP-VK.subgroups.shuffle.compute.subgroupshufflexor_i8vec2_requiredsubgroupsize
 dEQP-VK.subgroups.shuffle.compute.subgroupshuffleup_i8vec2
+dEQP-VK.subgroups.shuffle.compute.subgroupshuffleup_i8vec2_requiredsubgroupsize
 dEQP-VK.subgroups.shuffle.compute.subgroupshuffledown_i8vec2
+dEQP-VK.subgroups.shuffle.compute.subgroupshuffledown_i8vec2_requiredsubgroupsize
 dEQP-VK.subgroups.shuffle.compute.subgroupshuffle_i8vec3
+dEQP-VK.subgroups.shuffle.compute.subgroupshuffle_i8vec3_requiredsubgroupsize
 dEQP-VK.subgroups.shuffle.compute.subgroupshufflexor_i8vec3
+dEQP-VK.subgroups.shuffle.compute.subgroupshufflexor_i8vec3_requiredsubgroupsize
 dEQP-VK.subgroups.shuffle.compute.subgroupshuffleup_i8vec3
+dEQP-VK.subgroups.shuffle.compute.subgroupshuffleup_i8vec3_requiredsubgroupsize
 dEQP-VK.subgroups.shuffle.compute.subgroupshuffledown_i8vec3
+dEQP-VK.subgroups.shuffle.compute.subgroupshuffledown_i8vec3_requiredsubgroupsize
 dEQP-VK.subgroups.shuffle.compute.subgroupshuffle_i8vec4
+dEQP-VK.subgroups.shuffle.compute.subgroupshuffle_i8vec4_requiredsubgroupsize
 dEQP-VK.subgroups.shuffle.compute.subgroupshufflexor_i8vec4
+dEQP-VK.subgroups.shuffle.compute.subgroupshufflexor_i8vec4_requiredsubgroupsize
 dEQP-VK.subgroups.shuffle.compute.subgroupshuffleup_i8vec4
+dEQP-VK.subgroups.shuffle.compute.subgroupshuffleup_i8vec4_requiredsubgroupsize
 dEQP-VK.subgroups.shuffle.compute.subgroupshuffledown_i8vec4
+dEQP-VK.subgroups.shuffle.compute.subgroupshuffledown_i8vec4_requiredsubgroupsize
 dEQP-VK.subgroups.shuffle.compute.subgroupshuffle_uint8_t
+dEQP-VK.subgroups.shuffle.compute.subgroupshuffle_uint8_t_requiredsubgroupsize
 dEQP-VK.subgroups.shuffle.compute.subgroupshufflexor_uint8_t
+dEQP-VK.subgroups.shuffle.compute.subgroupshufflexor_uint8_t_requiredsubgroupsize
 dEQP-VK.subgroups.shuffle.compute.subgroupshuffleup_uint8_t
+dEQP-VK.subgroups.shuffle.compute.subgroupshuffleup_uint8_t_requiredsubgroupsize
 dEQP-VK.subgroups.shuffle.compute.subgroupshuffledown_uint8_t
+dEQP-VK.subgroups.shuffle.compute.subgroupshuffledown_uint8_t_requiredsubgroupsize
 dEQP-VK.subgroups.shuffle.compute.subgroupshuffle_u8vec2
+dEQP-VK.subgroups.shuffle.compute.subgroupshuffle_u8vec2_requiredsubgroupsize
 dEQP-VK.subgroups.shuffle.compute.subgroupshufflexor_u8vec2
+dEQP-VK.subgroups.shuffle.compute.subgroupshufflexor_u8vec2_requiredsubgroupsize
 dEQP-VK.subgroups.shuffle.compute.subgroupshuffleup_u8vec2
+dEQP-VK.subgroups.shuffle.compute.subgroupshuffleup_u8vec2_requiredsubgroupsize
 dEQP-VK.subgroups.shuffle.compute.subgroupshuffledown_u8vec2
+dEQP-VK.subgroups.shuffle.compute.subgroupshuffledown_u8vec2_requiredsubgroupsize
 dEQP-VK.subgroups.shuffle.compute.subgroupshuffle_u8vec3
+dEQP-VK.subgroups.shuffle.compute.subgroupshuffle_u8vec3_requiredsubgroupsize
 dEQP-VK.subgroups.shuffle.compute.subgroupshufflexor_u8vec3
+dEQP-VK.subgroups.shuffle.compute.subgroupshufflexor_u8vec3_requiredsubgroupsize
 dEQP-VK.subgroups.shuffle.compute.subgroupshuffleup_u8vec3
+dEQP-VK.subgroups.shuffle.compute.subgroupshuffleup_u8vec3_requiredsubgroupsize
 dEQP-VK.subgroups.shuffle.compute.subgroupshuffledown_u8vec3
+dEQP-VK.subgroups.shuffle.compute.subgroupshuffledown_u8vec3_requiredsubgroupsize
 dEQP-VK.subgroups.shuffle.compute.subgroupshuffle_u8vec4
+dEQP-VK.subgroups.shuffle.compute.subgroupshuffle_u8vec4_requiredsubgroupsize
 dEQP-VK.subgroups.shuffle.compute.subgroupshufflexor_u8vec4
+dEQP-VK.subgroups.shuffle.compute.subgroupshufflexor_u8vec4_requiredsubgroupsize
 dEQP-VK.subgroups.shuffle.compute.subgroupshuffleup_u8vec4
+dEQP-VK.subgroups.shuffle.compute.subgroupshuffleup_u8vec4_requiredsubgroupsize
 dEQP-VK.subgroups.shuffle.compute.subgroupshuffledown_u8vec4
+dEQP-VK.subgroups.shuffle.compute.subgroupshuffledown_u8vec4_requiredsubgroupsize
 dEQP-VK.subgroups.shuffle.compute.subgroupshuffle_int16_t
+dEQP-VK.subgroups.shuffle.compute.subgroupshuffle_int16_t_requiredsubgroupsize
 dEQP-VK.subgroups.shuffle.compute.subgroupshufflexor_int16_t
+dEQP-VK.subgroups.shuffle.compute.subgroupshufflexor_int16_t_requiredsubgroupsize
 dEQP-VK.subgroups.shuffle.compute.subgroupshuffleup_int16_t
+dEQP-VK.subgroups.shuffle.compute.subgroupshuffleup_int16_t_requiredsubgroupsize
 dEQP-VK.subgroups.shuffle.compute.subgroupshuffledown_int16_t
+dEQP-VK.subgroups.shuffle.compute.subgroupshuffledown_int16_t_requiredsubgroupsize
 dEQP-VK.subgroups.shuffle.compute.subgroupshuffle_i16vec2
+dEQP-VK.subgroups.shuffle.compute.subgroupshuffle_i16vec2_requiredsubgroupsize
 dEQP-VK.subgroups.shuffle.compute.subgroupshufflexor_i16vec2
+dEQP-VK.subgroups.shuffle.compute.subgroupshufflexor_i16vec2_requiredsubgroupsize
 dEQP-VK.subgroups.shuffle.compute.subgroupshuffleup_i16vec2
+dEQP-VK.subgroups.shuffle.compute.subgroupshuffleup_i16vec2_requiredsubgroupsize
 dEQP-VK.subgroups.shuffle.compute.subgroupshuffledown_i16vec2
+dEQP-VK.subgroups.shuffle.compute.subgroupshuffledown_i16vec2_requiredsubgroupsize
 dEQP-VK.subgroups.shuffle.compute.subgroupshuffle_i16vec3
+dEQP-VK.subgroups.shuffle.compute.subgroupshuffle_i16vec3_requiredsubgroupsize
 dEQP-VK.subgroups.shuffle.compute.subgroupshufflexor_i16vec3
+dEQP-VK.subgroups.shuffle.compute.subgroupshufflexor_i16vec3_requiredsubgroupsize
 dEQP-VK.subgroups.shuffle.compute.subgroupshuffleup_i16vec3
+dEQP-VK.subgroups.shuffle.compute.subgroupshuffleup_i16vec3_requiredsubgroupsize
 dEQP-VK.subgroups.shuffle.compute.subgroupshuffledown_i16vec3
+dEQP-VK.subgroups.shuffle.compute.subgroupshuffledown_i16vec3_requiredsubgroupsize
 dEQP-VK.subgroups.shuffle.compute.subgroupshuffle_i16vec4
+dEQP-VK.subgroups.shuffle.compute.subgroupshuffle_i16vec4_requiredsubgroupsize
 dEQP-VK.subgroups.shuffle.compute.subgroupshufflexor_i16vec4
+dEQP-VK.subgroups.shuffle.compute.subgroupshufflexor_i16vec4_requiredsubgroupsize
 dEQP-VK.subgroups.shuffle.compute.subgroupshuffleup_i16vec4
+dEQP-VK.subgroups.shuffle.compute.subgroupshuffleup_i16vec4_requiredsubgroupsize
 dEQP-VK.subgroups.shuffle.compute.subgroupshuffledown_i16vec4
+dEQP-VK.subgroups.shuffle.compute.subgroupshuffledown_i16vec4_requiredsubgroupsize
 dEQP-VK.subgroups.shuffle.compute.subgroupshuffle_uint16_t
+dEQP-VK.subgroups.shuffle.compute.subgroupshuffle_uint16_t_requiredsubgroupsize
 dEQP-VK.subgroups.shuffle.compute.subgroupshufflexor_uint16_t
+dEQP-VK.subgroups.shuffle.compute.subgroupshufflexor_uint16_t_requiredsubgroupsize
 dEQP-VK.subgroups.shuffle.compute.subgroupshuffleup_uint16_t
+dEQP-VK.subgroups.shuffle.compute.subgroupshuffleup_uint16_t_requiredsubgroupsize
 dEQP-VK.subgroups.shuffle.compute.subgroupshuffledown_uint16_t
+dEQP-VK.subgroups.shuffle.compute.subgroupshuffledown_uint16_t_requiredsubgroupsize
 dEQP-VK.subgroups.shuffle.compute.subgroupshuffle_u16vec2
+dEQP-VK.subgroups.shuffle.compute.subgroupshuffle_u16vec2_requiredsubgroupsize
 dEQP-VK.subgroups.shuffle.compute.subgroupshufflexor_u16vec2
+dEQP-VK.subgroups.shuffle.compute.subgroupshufflexor_u16vec2_requiredsubgroupsize
 dEQP-VK.subgroups.shuffle.compute.subgroupshuffleup_u16vec2
+dEQP-VK.subgroups.shuffle.compute.subgroupshuffleup_u16vec2_requiredsubgroupsize
 dEQP-VK.subgroups.shuffle.compute.subgroupshuffledown_u16vec2
+dEQP-VK.subgroups.shuffle.compute.subgroupshuffledown_u16vec2_requiredsubgroupsize
 dEQP-VK.subgroups.shuffle.compute.subgroupshuffle_u16vec3
+dEQP-VK.subgroups.shuffle.compute.subgroupshuffle_u16vec3_requiredsubgroupsize
 dEQP-VK.subgroups.shuffle.compute.subgroupshufflexor_u16vec3
+dEQP-VK.subgroups.shuffle.compute.subgroupshufflexor_u16vec3_requiredsubgroupsize
 dEQP-VK.subgroups.shuffle.compute.subgroupshuffleup_u16vec3
+dEQP-VK.subgroups.shuffle.compute.subgroupshuffleup_u16vec3_requiredsubgroupsize
 dEQP-VK.subgroups.shuffle.compute.subgroupshuffledown_u16vec3
+dEQP-VK.subgroups.shuffle.compute.subgroupshuffledown_u16vec3_requiredsubgroupsize
 dEQP-VK.subgroups.shuffle.compute.subgroupshuffle_u16vec4
+dEQP-VK.subgroups.shuffle.compute.subgroupshuffle_u16vec4_requiredsubgroupsize
 dEQP-VK.subgroups.shuffle.compute.subgroupshufflexor_u16vec4
+dEQP-VK.subgroups.shuffle.compute.subgroupshufflexor_u16vec4_requiredsubgroupsize
 dEQP-VK.subgroups.shuffle.compute.subgroupshuffleup_u16vec4
+dEQP-VK.subgroups.shuffle.compute.subgroupshuffleup_u16vec4_requiredsubgroupsize
 dEQP-VK.subgroups.shuffle.compute.subgroupshuffledown_u16vec4
+dEQP-VK.subgroups.shuffle.compute.subgroupshuffledown_u16vec4_requiredsubgroupsize
 dEQP-VK.subgroups.shuffle.compute.subgroupshuffle_int
+dEQP-VK.subgroups.shuffle.compute.subgroupshuffle_int_requiredsubgroupsize
 dEQP-VK.subgroups.shuffle.compute.subgroupshufflexor_int
+dEQP-VK.subgroups.shuffle.compute.subgroupshufflexor_int_requiredsubgroupsize
 dEQP-VK.subgroups.shuffle.compute.subgroupshuffleup_int
+dEQP-VK.subgroups.shuffle.compute.subgroupshuffleup_int_requiredsubgroupsize
 dEQP-VK.subgroups.shuffle.compute.subgroupshuffledown_int
+dEQP-VK.subgroups.shuffle.compute.subgroupshuffledown_int_requiredsubgroupsize
 dEQP-VK.subgroups.shuffle.compute.subgroupshuffle_ivec2
+dEQP-VK.subgroups.shuffle.compute.subgroupshuffle_ivec2_requiredsubgroupsize
 dEQP-VK.subgroups.shuffle.compute.subgroupshufflexor_ivec2
+dEQP-VK.subgroups.shuffle.compute.subgroupshufflexor_ivec2_requiredsubgroupsize
 dEQP-VK.subgroups.shuffle.compute.subgroupshuffleup_ivec2
+dEQP-VK.subgroups.shuffle.compute.subgroupshuffleup_ivec2_requiredsubgroupsize
 dEQP-VK.subgroups.shuffle.compute.subgroupshuffledown_ivec2
+dEQP-VK.subgroups.shuffle.compute.subgroupshuffledown_ivec2_requiredsubgroupsize
 dEQP-VK.subgroups.shuffle.compute.subgroupshuffle_ivec3
+dEQP-VK.subgroups.shuffle.compute.subgroupshuffle_ivec3_requiredsubgroupsize
 dEQP-VK.subgroups.shuffle.compute.subgroupshufflexor_ivec3
+dEQP-VK.subgroups.shuffle.compute.subgroupshufflexor_ivec3_requiredsubgroupsize
 dEQP-VK.subgroups.shuffle.compute.subgroupshuffleup_ivec3
+dEQP-VK.subgroups.shuffle.compute.subgroupshuffleup_ivec3_requiredsubgroupsize
 dEQP-VK.subgroups.shuffle.compute.subgroupshuffledown_ivec3
+dEQP-VK.subgroups.shuffle.compute.subgroupshuffledown_ivec3_requiredsubgroupsize
 dEQP-VK.subgroups.shuffle.compute.subgroupshuffle_ivec4
+dEQP-VK.subgroups.shuffle.compute.subgroupshuffle_ivec4_requiredsubgroupsize
 dEQP-VK.subgroups.shuffle.compute.subgroupshufflexor_ivec4
+dEQP-VK.subgroups.shuffle.compute.subgroupshufflexor_ivec4_requiredsubgroupsize
 dEQP-VK.subgroups.shuffle.compute.subgroupshuffleup_ivec4
+dEQP-VK.subgroups.shuffle.compute.subgroupshuffleup_ivec4_requiredsubgroupsize
 dEQP-VK.subgroups.shuffle.compute.subgroupshuffledown_ivec4
+dEQP-VK.subgroups.shuffle.compute.subgroupshuffledown_ivec4_requiredsubgroupsize
 dEQP-VK.subgroups.shuffle.compute.subgroupshuffle_uint
+dEQP-VK.subgroups.shuffle.compute.subgroupshuffle_uint_requiredsubgroupsize
 dEQP-VK.subgroups.shuffle.compute.subgroupshufflexor_uint
+dEQP-VK.subgroups.shuffle.compute.subgroupshufflexor_uint_requiredsubgroupsize
 dEQP-VK.subgroups.shuffle.compute.subgroupshuffleup_uint
+dEQP-VK.subgroups.shuffle.compute.subgroupshuffleup_uint_requiredsubgroupsize
 dEQP-VK.subgroups.shuffle.compute.subgroupshuffledown_uint
+dEQP-VK.subgroups.shuffle.compute.subgroupshuffledown_uint_requiredsubgroupsize
 dEQP-VK.subgroups.shuffle.compute.subgroupshuffle_uvec2
+dEQP-VK.subgroups.shuffle.compute.subgroupshuffle_uvec2_requiredsubgroupsize
 dEQP-VK.subgroups.shuffle.compute.subgroupshufflexor_uvec2
+dEQP-VK.subgroups.shuffle.compute.subgroupshufflexor_uvec2_requiredsubgroupsize
 dEQP-VK.subgroups.shuffle.compute.subgroupshuffleup_uvec2
+dEQP-VK.subgroups.shuffle.compute.subgroupshuffleup_uvec2_requiredsubgroupsize
 dEQP-VK.subgroups.shuffle.compute.subgroupshuffledown_uvec2
+dEQP-VK.subgroups.shuffle.compute.subgroupshuffledown_uvec2_requiredsubgroupsize
 dEQP-VK.subgroups.shuffle.compute.subgroupshuffle_uvec3
+dEQP-VK.subgroups.shuffle.compute.subgroupshuffle_uvec3_requiredsubgroupsize
 dEQP-VK.subgroups.shuffle.compute.subgroupshufflexor_uvec3
+dEQP-VK.subgroups.shuffle.compute.subgroupshufflexor_uvec3_requiredsubgroupsize
 dEQP-VK.subgroups.shuffle.compute.subgroupshuffleup_uvec3
+dEQP-VK.subgroups.shuffle.compute.subgroupshuffleup_uvec3_requiredsubgroupsize
 dEQP-VK.subgroups.shuffle.compute.subgroupshuffledown_uvec3
+dEQP-VK.subgroups.shuffle.compute.subgroupshuffledown_uvec3_requiredsubgroupsize
 dEQP-VK.subgroups.shuffle.compute.subgroupshuffle_uvec4
+dEQP-VK.subgroups.shuffle.compute.subgroupshuffle_uvec4_requiredsubgroupsize
 dEQP-VK.subgroups.shuffle.compute.subgroupshufflexor_uvec4
+dEQP-VK.subgroups.shuffle.compute.subgroupshufflexor_uvec4_requiredsubgroupsize
 dEQP-VK.subgroups.shuffle.compute.subgroupshuffleup_uvec4
+dEQP-VK.subgroups.shuffle.compute.subgroupshuffleup_uvec4_requiredsubgroupsize
 dEQP-VK.subgroups.shuffle.compute.subgroupshuffledown_uvec4
+dEQP-VK.subgroups.shuffle.compute.subgroupshuffledown_uvec4_requiredsubgroupsize
 dEQP-VK.subgroups.shuffle.compute.subgroupshuffle_int64_t
+dEQP-VK.subgroups.shuffle.compute.subgroupshuffle_int64_t_requiredsubgroupsize
 dEQP-VK.subgroups.shuffle.compute.subgroupshufflexor_int64_t
+dEQP-VK.subgroups.shuffle.compute.subgroupshufflexor_int64_t_requiredsubgroupsize
 dEQP-VK.subgroups.shuffle.compute.subgroupshuffleup_int64_t
+dEQP-VK.subgroups.shuffle.compute.subgroupshuffleup_int64_t_requiredsubgroupsize
 dEQP-VK.subgroups.shuffle.compute.subgroupshuffledown_int64_t
+dEQP-VK.subgroups.shuffle.compute.subgroupshuffledown_int64_t_requiredsubgroupsize
 dEQP-VK.subgroups.shuffle.compute.subgroupshuffle_i64vec2
+dEQP-VK.subgroups.shuffle.compute.subgroupshuffle_i64vec2_requiredsubgroupsize
 dEQP-VK.subgroups.shuffle.compute.subgroupshufflexor_i64vec2
+dEQP-VK.subgroups.shuffle.compute.subgroupshufflexor_i64vec2_requiredsubgroupsize
 dEQP-VK.subgroups.shuffle.compute.subgroupshuffleup_i64vec2
+dEQP-VK.subgroups.shuffle.compute.subgroupshuffleup_i64vec2_requiredsubgroupsize
 dEQP-VK.subgroups.shuffle.compute.subgroupshuffledown_i64vec2
+dEQP-VK.subgroups.shuffle.compute.subgroupshuffledown_i64vec2_requiredsubgroupsize
 dEQP-VK.subgroups.shuffle.compute.subgroupshuffle_i64vec3
+dEQP-VK.subgroups.shuffle.compute.subgroupshuffle_i64vec3_requiredsubgroupsize
 dEQP-VK.subgroups.shuffle.compute.subgroupshufflexor_i64vec3
+dEQP-VK.subgroups.shuffle.compute.subgroupshufflexor_i64vec3_requiredsubgroupsize
 dEQP-VK.subgroups.shuffle.compute.subgroupshuffleup_i64vec3
+dEQP-VK.subgroups.shuffle.compute.subgroupshuffleup_i64vec3_requiredsubgroupsize
 dEQP-VK.subgroups.shuffle.compute.subgroupshuffledown_i64vec3
+dEQP-VK.subgroups.shuffle.compute.subgroupshuffledown_i64vec3_requiredsubgroupsize
 dEQP-VK.subgroups.shuffle.compute.subgroupshuffle_i64vec4
+dEQP-VK.subgroups.shuffle.compute.subgroupshuffle_i64vec4_requiredsubgroupsize
 dEQP-VK.subgroups.shuffle.compute.subgroupshufflexor_i64vec4
+dEQP-VK.subgroups.shuffle.compute.subgroupshufflexor_i64vec4_requiredsubgroupsize
 dEQP-VK.subgroups.shuffle.compute.subgroupshuffleup_i64vec4
+dEQP-VK.subgroups.shuffle.compute.subgroupshuffleup_i64vec4_requiredsubgroupsize
 dEQP-VK.subgroups.shuffle.compute.subgroupshuffledown_i64vec4
+dEQP-VK.subgroups.shuffle.compute.subgroupshuffledown_i64vec4_requiredsubgroupsize
 dEQP-VK.subgroups.shuffle.compute.subgroupshuffle_uint64_t
+dEQP-VK.subgroups.shuffle.compute.subgroupshuffle_uint64_t_requiredsubgroupsize
 dEQP-VK.subgroups.shuffle.compute.subgroupshufflexor_uint64_t
+dEQP-VK.subgroups.shuffle.compute.subgroupshufflexor_uint64_t_requiredsubgroupsize
 dEQP-VK.subgroups.shuffle.compute.subgroupshuffleup_uint64_t
+dEQP-VK.subgroups.shuffle.compute.subgroupshuffleup_uint64_t_requiredsubgroupsize
 dEQP-VK.subgroups.shuffle.compute.subgroupshuffledown_uint64_t
+dEQP-VK.subgroups.shuffle.compute.subgroupshuffledown_uint64_t_requiredsubgroupsize
 dEQP-VK.subgroups.shuffle.compute.subgroupshuffle_u64vec2
+dEQP-VK.subgroups.shuffle.compute.subgroupshuffle_u64vec2_requiredsubgroupsize
 dEQP-VK.subgroups.shuffle.compute.subgroupshufflexor_u64vec2
+dEQP-VK.subgroups.shuffle.compute.subgroupshufflexor_u64vec2_requiredsubgroupsize
 dEQP-VK.subgroups.shuffle.compute.subgroupshuffleup_u64vec2
+dEQP-VK.subgroups.shuffle.compute.subgroupshuffleup_u64vec2_requiredsubgroupsize
 dEQP-VK.subgroups.shuffle.compute.subgroupshuffledown_u64vec2
+dEQP-VK.subgroups.shuffle.compute.subgroupshuffledown_u64vec2_requiredsubgroupsize
 dEQP-VK.subgroups.shuffle.compute.subgroupshuffle_u64vec3
+dEQP-VK.subgroups.shuffle.compute.subgroupshuffle_u64vec3_requiredsubgroupsize
 dEQP-VK.subgroups.shuffle.compute.subgroupshufflexor_u64vec3
+dEQP-VK.subgroups.shuffle.compute.subgroupshufflexor_u64vec3_requiredsubgroupsize
 dEQP-VK.subgroups.shuffle.compute.subgroupshuffleup_u64vec3
+dEQP-VK.subgroups.shuffle.compute.subgroupshuffleup_u64vec3_requiredsubgroupsize
 dEQP-VK.subgroups.shuffle.compute.subgroupshuffledown_u64vec3
+dEQP-VK.subgroups.shuffle.compute.subgroupshuffledown_u64vec3_requiredsubgroupsize
 dEQP-VK.subgroups.shuffle.compute.subgroupshuffle_u64vec4
+dEQP-VK.subgroups.shuffle.compute.subgroupshuffle_u64vec4_requiredsubgroupsize
 dEQP-VK.subgroups.shuffle.compute.subgroupshufflexor_u64vec4
+dEQP-VK.subgroups.shuffle.compute.subgroupshufflexor_u64vec4_requiredsubgroupsize
 dEQP-VK.subgroups.shuffle.compute.subgroupshuffleup_u64vec4
+dEQP-VK.subgroups.shuffle.compute.subgroupshuffleup_u64vec4_requiredsubgroupsize
 dEQP-VK.subgroups.shuffle.compute.subgroupshuffledown_u64vec4
+dEQP-VK.subgroups.shuffle.compute.subgroupshuffledown_u64vec4_requiredsubgroupsize
 dEQP-VK.subgroups.shuffle.compute.subgroupshuffle_float16_t
+dEQP-VK.subgroups.shuffle.compute.subgroupshuffle_float16_t_requiredsubgroupsize
 dEQP-VK.subgroups.shuffle.compute.subgroupshufflexor_float16_t
+dEQP-VK.subgroups.shuffle.compute.subgroupshufflexor_float16_t_requiredsubgroupsize
 dEQP-VK.subgroups.shuffle.compute.subgroupshuffleup_float16_t
+dEQP-VK.subgroups.shuffle.compute.subgroupshuffleup_float16_t_requiredsubgroupsize
 dEQP-VK.subgroups.shuffle.compute.subgroupshuffledown_float16_t
+dEQP-VK.subgroups.shuffle.compute.subgroupshuffledown_float16_t_requiredsubgroupsize
 dEQP-VK.subgroups.shuffle.compute.subgroupshuffle_f16vec2
+dEQP-VK.subgroups.shuffle.compute.subgroupshuffle_f16vec2_requiredsubgroupsize
 dEQP-VK.subgroups.shuffle.compute.subgroupshufflexor_f16vec2
+dEQP-VK.subgroups.shuffle.compute.subgroupshufflexor_f16vec2_requiredsubgroupsize
 dEQP-VK.subgroups.shuffle.compute.subgroupshuffleup_f16vec2
+dEQP-VK.subgroups.shuffle.compute.subgroupshuffleup_f16vec2_requiredsubgroupsize
 dEQP-VK.subgroups.shuffle.compute.subgroupshuffledown_f16vec2
+dEQP-VK.subgroups.shuffle.compute.subgroupshuffledown_f16vec2_requiredsubgroupsize
 dEQP-VK.subgroups.shuffle.compute.subgroupshuffle_f16vec3
+dEQP-VK.subgroups.shuffle.compute.subgroupshuffle_f16vec3_requiredsubgroupsize
 dEQP-VK.subgroups.shuffle.compute.subgroupshufflexor_f16vec3
+dEQP-VK.subgroups.shuffle.compute.subgroupshufflexor_f16vec3_requiredsubgroupsize
 dEQP-VK.subgroups.shuffle.compute.subgroupshuffleup_f16vec3
+dEQP-VK.subgroups.shuffle.compute.subgroupshuffleup_f16vec3_requiredsubgroupsize
 dEQP-VK.subgroups.shuffle.compute.subgroupshuffledown_f16vec3
+dEQP-VK.subgroups.shuffle.compute.subgroupshuffledown_f16vec3_requiredsubgroupsize
 dEQP-VK.subgroups.shuffle.compute.subgroupshuffle_f16vec4
+dEQP-VK.subgroups.shuffle.compute.subgroupshuffle_f16vec4_requiredsubgroupsize
 dEQP-VK.subgroups.shuffle.compute.subgroupshufflexor_f16vec4
+dEQP-VK.subgroups.shuffle.compute.subgroupshufflexor_f16vec4_requiredsubgroupsize
 dEQP-VK.subgroups.shuffle.compute.subgroupshuffleup_f16vec4
+dEQP-VK.subgroups.shuffle.compute.subgroupshuffleup_f16vec4_requiredsubgroupsize
 dEQP-VK.subgroups.shuffle.compute.subgroupshuffledown_f16vec4
+dEQP-VK.subgroups.shuffle.compute.subgroupshuffledown_f16vec4_requiredsubgroupsize
 dEQP-VK.subgroups.shuffle.compute.subgroupshuffle_float
+dEQP-VK.subgroups.shuffle.compute.subgroupshuffle_float_requiredsubgroupsize
 dEQP-VK.subgroups.shuffle.compute.subgroupshufflexor_float
+dEQP-VK.subgroups.shuffle.compute.subgroupshufflexor_float_requiredsubgroupsize
 dEQP-VK.subgroups.shuffle.compute.subgroupshuffleup_float
+dEQP-VK.subgroups.shuffle.compute.subgroupshuffleup_float_requiredsubgroupsize
 dEQP-VK.subgroups.shuffle.compute.subgroupshuffledown_float
+dEQP-VK.subgroups.shuffle.compute.subgroupshuffledown_float_requiredsubgroupsize
 dEQP-VK.subgroups.shuffle.compute.subgroupshuffle_vec2
+dEQP-VK.subgroups.shuffle.compute.subgroupshuffle_vec2_requiredsubgroupsize
 dEQP-VK.subgroups.shuffle.compute.subgroupshufflexor_vec2
+dEQP-VK.subgroups.shuffle.compute.subgroupshufflexor_vec2_requiredsubgroupsize
 dEQP-VK.subgroups.shuffle.compute.subgroupshuffleup_vec2
+dEQP-VK.subgroups.shuffle.compute.subgroupshuffleup_vec2_requiredsubgroupsize
 dEQP-VK.subgroups.shuffle.compute.subgroupshuffledown_vec2
+dEQP-VK.subgroups.shuffle.compute.subgroupshuffledown_vec2_requiredsubgroupsize
 dEQP-VK.subgroups.shuffle.compute.subgroupshuffle_vec3
+dEQP-VK.subgroups.shuffle.compute.subgroupshuffle_vec3_requiredsubgroupsize
 dEQP-VK.subgroups.shuffle.compute.subgroupshufflexor_vec3
+dEQP-VK.subgroups.shuffle.compute.subgroupshufflexor_vec3_requiredsubgroupsize
 dEQP-VK.subgroups.shuffle.compute.subgroupshuffleup_vec3
+dEQP-VK.subgroups.shuffle.compute.subgroupshuffleup_vec3_requiredsubgroupsize
 dEQP-VK.subgroups.shuffle.compute.subgroupshuffledown_vec3
+dEQP-VK.subgroups.shuffle.compute.subgroupshuffledown_vec3_requiredsubgroupsize
 dEQP-VK.subgroups.shuffle.compute.subgroupshuffle_vec4
+dEQP-VK.subgroups.shuffle.compute.subgroupshuffle_vec4_requiredsubgroupsize
 dEQP-VK.subgroups.shuffle.compute.subgroupshufflexor_vec4
+dEQP-VK.subgroups.shuffle.compute.subgroupshufflexor_vec4_requiredsubgroupsize
 dEQP-VK.subgroups.shuffle.compute.subgroupshuffleup_vec4
+dEQP-VK.subgroups.shuffle.compute.subgroupshuffleup_vec4_requiredsubgroupsize
 dEQP-VK.subgroups.shuffle.compute.subgroupshuffledown_vec4
+dEQP-VK.subgroups.shuffle.compute.subgroupshuffledown_vec4_requiredsubgroupsize
 dEQP-VK.subgroups.shuffle.compute.subgroupshuffle_double
+dEQP-VK.subgroups.shuffle.compute.subgroupshuffle_double_requiredsubgroupsize
 dEQP-VK.subgroups.shuffle.compute.subgroupshufflexor_double
+dEQP-VK.subgroups.shuffle.compute.subgroupshufflexor_double_requiredsubgroupsize
 dEQP-VK.subgroups.shuffle.compute.subgroupshuffleup_double
+dEQP-VK.subgroups.shuffle.compute.subgroupshuffleup_double_requiredsubgroupsize
 dEQP-VK.subgroups.shuffle.compute.subgroupshuffledown_double
+dEQP-VK.subgroups.shuffle.compute.subgroupshuffledown_double_requiredsubgroupsize
 dEQP-VK.subgroups.shuffle.compute.subgroupshuffle_dvec2
+dEQP-VK.subgroups.shuffle.compute.subgroupshuffle_dvec2_requiredsubgroupsize
 dEQP-VK.subgroups.shuffle.compute.subgroupshufflexor_dvec2
+dEQP-VK.subgroups.shuffle.compute.subgroupshufflexor_dvec2_requiredsubgroupsize
 dEQP-VK.subgroups.shuffle.compute.subgroupshuffleup_dvec2
+dEQP-VK.subgroups.shuffle.compute.subgroupshuffleup_dvec2_requiredsubgroupsize
 dEQP-VK.subgroups.shuffle.compute.subgroupshuffledown_dvec2
+dEQP-VK.subgroups.shuffle.compute.subgroupshuffledown_dvec2_requiredsubgroupsize
 dEQP-VK.subgroups.shuffle.compute.subgroupshuffle_dvec3
+dEQP-VK.subgroups.shuffle.compute.subgroupshuffle_dvec3_requiredsubgroupsize
 dEQP-VK.subgroups.shuffle.compute.subgroupshufflexor_dvec3
+dEQP-VK.subgroups.shuffle.compute.subgroupshufflexor_dvec3_requiredsubgroupsize
 dEQP-VK.subgroups.shuffle.compute.subgroupshuffleup_dvec3
+dEQP-VK.subgroups.shuffle.compute.subgroupshuffleup_dvec3_requiredsubgroupsize
 dEQP-VK.subgroups.shuffle.compute.subgroupshuffledown_dvec3
+dEQP-VK.subgroups.shuffle.compute.subgroupshuffledown_dvec3_requiredsubgroupsize
 dEQP-VK.subgroups.shuffle.compute.subgroupshuffle_dvec4
+dEQP-VK.subgroups.shuffle.compute.subgroupshuffle_dvec4_requiredsubgroupsize
 dEQP-VK.subgroups.shuffle.compute.subgroupshufflexor_dvec4
+dEQP-VK.subgroups.shuffle.compute.subgroupshufflexor_dvec4_requiredsubgroupsize
 dEQP-VK.subgroups.shuffle.compute.subgroupshuffleup_dvec4
+dEQP-VK.subgroups.shuffle.compute.subgroupshuffleup_dvec4_requiredsubgroupsize
 dEQP-VK.subgroups.shuffle.compute.subgroupshuffledown_dvec4
+dEQP-VK.subgroups.shuffle.compute.subgroupshuffledown_dvec4_requiredsubgroupsize
 dEQP-VK.subgroups.shuffle.compute.subgroupshuffle_bool
+dEQP-VK.subgroups.shuffle.compute.subgroupshuffle_bool_requiredsubgroupsize
 dEQP-VK.subgroups.shuffle.compute.subgroupshufflexor_bool
+dEQP-VK.subgroups.shuffle.compute.subgroupshufflexor_bool_requiredsubgroupsize
 dEQP-VK.subgroups.shuffle.compute.subgroupshuffleup_bool
+dEQP-VK.subgroups.shuffle.compute.subgroupshuffleup_bool_requiredsubgroupsize
 dEQP-VK.subgroups.shuffle.compute.subgroupshuffledown_bool
+dEQP-VK.subgroups.shuffle.compute.subgroupshuffledown_bool_requiredsubgroupsize
 dEQP-VK.subgroups.shuffle.compute.subgroupshuffle_bvec2
+dEQP-VK.subgroups.shuffle.compute.subgroupshuffle_bvec2_requiredsubgroupsize
 dEQP-VK.subgroups.shuffle.compute.subgroupshufflexor_bvec2
+dEQP-VK.subgroups.shuffle.compute.subgroupshufflexor_bvec2_requiredsubgroupsize
 dEQP-VK.subgroups.shuffle.compute.subgroupshuffleup_bvec2
+dEQP-VK.subgroups.shuffle.compute.subgroupshuffleup_bvec2_requiredsubgroupsize
 dEQP-VK.subgroups.shuffle.compute.subgroupshuffledown_bvec2
+dEQP-VK.subgroups.shuffle.compute.subgroupshuffledown_bvec2_requiredsubgroupsize
 dEQP-VK.subgroups.shuffle.compute.subgroupshuffle_bvec3
+dEQP-VK.subgroups.shuffle.compute.subgroupshuffle_bvec3_requiredsubgroupsize
 dEQP-VK.subgroups.shuffle.compute.subgroupshufflexor_bvec3
+dEQP-VK.subgroups.shuffle.compute.subgroupshufflexor_bvec3_requiredsubgroupsize
 dEQP-VK.subgroups.shuffle.compute.subgroupshuffleup_bvec3
+dEQP-VK.subgroups.shuffle.compute.subgroupshuffleup_bvec3_requiredsubgroupsize
 dEQP-VK.subgroups.shuffle.compute.subgroupshuffledown_bvec3
+dEQP-VK.subgroups.shuffle.compute.subgroupshuffledown_bvec3_requiredsubgroupsize
 dEQP-VK.subgroups.shuffle.compute.subgroupshuffle_bvec4
+dEQP-VK.subgroups.shuffle.compute.subgroupshuffle_bvec4_requiredsubgroupsize
 dEQP-VK.subgroups.shuffle.compute.subgroupshufflexor_bvec4
+dEQP-VK.subgroups.shuffle.compute.subgroupshufflexor_bvec4_requiredsubgroupsize
 dEQP-VK.subgroups.shuffle.compute.subgroupshuffleup_bvec4
+dEQP-VK.subgroups.shuffle.compute.subgroupshuffleup_bvec4_requiredsubgroupsize
 dEQP-VK.subgroups.shuffle.compute.subgroupshuffledown_bvec4
+dEQP-VK.subgroups.shuffle.compute.subgroupshuffledown_bvec4_requiredsubgroupsize
 dEQP-VK.subgroups.shuffle.framebuffer.subgroupshuffle_int8_t_vertex
 dEQP-VK.subgroups.shuffle.framebuffer.subgroupshuffle_int8_t_tess_eval
 dEQP-VK.subgroups.shuffle.framebuffer.subgroupshuffle_int8_t_tess_control
@@ -520769,245 +523179,485 @@ dEQP-VK.subgroups.quad.graphics.subgroupquadswaphorizontal_bvec4
 dEQP-VK.subgroups.quad.graphics.subgroupquadswapvertical_bvec4
 dEQP-VK.subgroups.quad.graphics.subgroupquadswapdiagonal_bvec4
 dEQP-VK.subgroups.quad.compute.subgroupquadbroadcast_int8_t
+dEQP-VK.subgroups.quad.compute.subgroupquadbroadcast_int8_t_requiredsubgroupsize
 dEQP-VK.subgroups.quad.compute.subgroupquadbroadcast_nonconst_int8_t
+dEQP-VK.subgroups.quad.compute.subgroupquadbroadcast_nonconst_int8_t_requiredsubgroupsize
 dEQP-VK.subgroups.quad.compute.subgroupquadswaphorizontal_int8_t
+dEQP-VK.subgroups.quad.compute.subgroupquadswaphorizontal_int8_t_requiredsubgroupsize
 dEQP-VK.subgroups.quad.compute.subgroupquadswapvertical_int8_t
+dEQP-VK.subgroups.quad.compute.subgroupquadswapvertical_int8_t_requiredsubgroupsize
 dEQP-VK.subgroups.quad.compute.subgroupquadswapdiagonal_int8_t
+dEQP-VK.subgroups.quad.compute.subgroupquadswapdiagonal_int8_t_requiredsubgroupsize
 dEQP-VK.subgroups.quad.compute.subgroupquadbroadcast_i8vec2
+dEQP-VK.subgroups.quad.compute.subgroupquadbroadcast_i8vec2_requiredsubgroupsize
 dEQP-VK.subgroups.quad.compute.subgroupquadbroadcast_nonconst_i8vec2
+dEQP-VK.subgroups.quad.compute.subgroupquadbroadcast_nonconst_i8vec2_requiredsubgroupsize
 dEQP-VK.subgroups.quad.compute.subgroupquadswaphorizontal_i8vec2
+dEQP-VK.subgroups.quad.compute.subgroupquadswaphorizontal_i8vec2_requiredsubgroupsize
 dEQP-VK.subgroups.quad.compute.subgroupquadswapvertical_i8vec2
+dEQP-VK.subgroups.quad.compute.subgroupquadswapvertical_i8vec2_requiredsubgroupsize
 dEQP-VK.subgroups.quad.compute.subgroupquadswapdiagonal_i8vec2
+dEQP-VK.subgroups.quad.compute.subgroupquadswapdiagonal_i8vec2_requiredsubgroupsize
 dEQP-VK.subgroups.quad.compute.subgroupquadbroadcast_i8vec3
+dEQP-VK.subgroups.quad.compute.subgroupquadbroadcast_i8vec3_requiredsubgroupsize
 dEQP-VK.subgroups.quad.compute.subgroupquadbroadcast_nonconst_i8vec3
+dEQP-VK.subgroups.quad.compute.subgroupquadbroadcast_nonconst_i8vec3_requiredsubgroupsize
 dEQP-VK.subgroups.quad.compute.subgroupquadswaphorizontal_i8vec3
+dEQP-VK.subgroups.quad.compute.subgroupquadswaphorizontal_i8vec3_requiredsubgroupsize
 dEQP-VK.subgroups.quad.compute.subgroupquadswapvertical_i8vec3
+dEQP-VK.subgroups.quad.compute.subgroupquadswapvertical_i8vec3_requiredsubgroupsize
 dEQP-VK.subgroups.quad.compute.subgroupquadswapdiagonal_i8vec3
+dEQP-VK.subgroups.quad.compute.subgroupquadswapdiagonal_i8vec3_requiredsubgroupsize
 dEQP-VK.subgroups.quad.compute.subgroupquadbroadcast_i8vec4
+dEQP-VK.subgroups.quad.compute.subgroupquadbroadcast_i8vec4_requiredsubgroupsize
 dEQP-VK.subgroups.quad.compute.subgroupquadbroadcast_nonconst_i8vec4
+dEQP-VK.subgroups.quad.compute.subgroupquadbroadcast_nonconst_i8vec4_requiredsubgroupsize
 dEQP-VK.subgroups.quad.compute.subgroupquadswaphorizontal_i8vec4
+dEQP-VK.subgroups.quad.compute.subgroupquadswaphorizontal_i8vec4_requiredsubgroupsize
 dEQP-VK.subgroups.quad.compute.subgroupquadswapvertical_i8vec4
+dEQP-VK.subgroups.quad.compute.subgroupquadswapvertical_i8vec4_requiredsubgroupsize
 dEQP-VK.subgroups.quad.compute.subgroupquadswapdiagonal_i8vec4
+dEQP-VK.subgroups.quad.compute.subgroupquadswapdiagonal_i8vec4_requiredsubgroupsize
 dEQP-VK.subgroups.quad.compute.subgroupquadbroadcast_uint8_t
+dEQP-VK.subgroups.quad.compute.subgroupquadbroadcast_uint8_t_requiredsubgroupsize
 dEQP-VK.subgroups.quad.compute.subgroupquadbroadcast_nonconst_uint8_t
+dEQP-VK.subgroups.quad.compute.subgroupquadbroadcast_nonconst_uint8_t_requiredsubgroupsize
 dEQP-VK.subgroups.quad.compute.subgroupquadswaphorizontal_uint8_t
+dEQP-VK.subgroups.quad.compute.subgroupquadswaphorizontal_uint8_t_requiredsubgroupsize
 dEQP-VK.subgroups.quad.compute.subgroupquadswapvertical_uint8_t
+dEQP-VK.subgroups.quad.compute.subgroupquadswapvertical_uint8_t_requiredsubgroupsize
 dEQP-VK.subgroups.quad.compute.subgroupquadswapdiagonal_uint8_t
+dEQP-VK.subgroups.quad.compute.subgroupquadswapdiagonal_uint8_t_requiredsubgroupsize
 dEQP-VK.subgroups.quad.compute.subgroupquadbroadcast_u8vec2
+dEQP-VK.subgroups.quad.compute.subgroupquadbroadcast_u8vec2_requiredsubgroupsize
 dEQP-VK.subgroups.quad.compute.subgroupquadbroadcast_nonconst_u8vec2
+dEQP-VK.subgroups.quad.compute.subgroupquadbroadcast_nonconst_u8vec2_requiredsubgroupsize
 dEQP-VK.subgroups.quad.compute.subgroupquadswaphorizontal_u8vec2
+dEQP-VK.subgroups.quad.compute.subgroupquadswaphorizontal_u8vec2_requiredsubgroupsize
 dEQP-VK.subgroups.quad.compute.subgroupquadswapvertical_u8vec2
+dEQP-VK.subgroups.quad.compute.subgroupquadswapvertical_u8vec2_requiredsubgroupsize
 dEQP-VK.subgroups.quad.compute.subgroupquadswapdiagonal_u8vec2
+dEQP-VK.subgroups.quad.compute.subgroupquadswapdiagonal_u8vec2_requiredsubgroupsize
 dEQP-VK.subgroups.quad.compute.subgroupquadbroadcast_u8vec3
+dEQP-VK.subgroups.quad.compute.subgroupquadbroadcast_u8vec3_requiredsubgroupsize
 dEQP-VK.subgroups.quad.compute.subgroupquadbroadcast_nonconst_u8vec3
+dEQP-VK.subgroups.quad.compute.subgroupquadbroadcast_nonconst_u8vec3_requiredsubgroupsize
 dEQP-VK.subgroups.quad.compute.subgroupquadswaphorizontal_u8vec3
+dEQP-VK.subgroups.quad.compute.subgroupquadswaphorizontal_u8vec3_requiredsubgroupsize
 dEQP-VK.subgroups.quad.compute.subgroupquadswapvertical_u8vec3
+dEQP-VK.subgroups.quad.compute.subgroupquadswapvertical_u8vec3_requiredsubgroupsize
 dEQP-VK.subgroups.quad.compute.subgroupquadswapdiagonal_u8vec3
+dEQP-VK.subgroups.quad.compute.subgroupquadswapdiagonal_u8vec3_requiredsubgroupsize
 dEQP-VK.subgroups.quad.compute.subgroupquadbroadcast_u8vec4
+dEQP-VK.subgroups.quad.compute.subgroupquadbroadcast_u8vec4_requiredsubgroupsize
 dEQP-VK.subgroups.quad.compute.subgroupquadbroadcast_nonconst_u8vec4
+dEQP-VK.subgroups.quad.compute.subgroupquadbroadcast_nonconst_u8vec4_requiredsubgroupsize
 dEQP-VK.subgroups.quad.compute.subgroupquadswaphorizontal_u8vec4
+dEQP-VK.subgroups.quad.compute.subgroupquadswaphorizontal_u8vec4_requiredsubgroupsize
 dEQP-VK.subgroups.quad.compute.subgroupquadswapvertical_u8vec4
+dEQP-VK.subgroups.quad.compute.subgroupquadswapvertical_u8vec4_requiredsubgroupsize
 dEQP-VK.subgroups.quad.compute.subgroupquadswapdiagonal_u8vec4
+dEQP-VK.subgroups.quad.compute.subgroupquadswapdiagonal_u8vec4_requiredsubgroupsize
 dEQP-VK.subgroups.quad.compute.subgroupquadbroadcast_int16_t
+dEQP-VK.subgroups.quad.compute.subgroupquadbroadcast_int16_t_requiredsubgroupsize
 dEQP-VK.subgroups.quad.compute.subgroupquadbroadcast_nonconst_int16_t
+dEQP-VK.subgroups.quad.compute.subgroupquadbroadcast_nonconst_int16_t_requiredsubgroupsize
 dEQP-VK.subgroups.quad.compute.subgroupquadswaphorizontal_int16_t
+dEQP-VK.subgroups.quad.compute.subgroupquadswaphorizontal_int16_t_requiredsubgroupsize
 dEQP-VK.subgroups.quad.compute.subgroupquadswapvertical_int16_t
+dEQP-VK.subgroups.quad.compute.subgroupquadswapvertical_int16_t_requiredsubgroupsize
 dEQP-VK.subgroups.quad.compute.subgroupquadswapdiagonal_int16_t
+dEQP-VK.subgroups.quad.compute.subgroupquadswapdiagonal_int16_t_requiredsubgroupsize
 dEQP-VK.subgroups.quad.compute.subgroupquadbroadcast_i16vec2
+dEQP-VK.subgroups.quad.compute.subgroupquadbroadcast_i16vec2_requiredsubgroupsize
 dEQP-VK.subgroups.quad.compute.subgroupquadbroadcast_nonconst_i16vec2
+dEQP-VK.subgroups.quad.compute.subgroupquadbroadcast_nonconst_i16vec2_requiredsubgroupsize
 dEQP-VK.subgroups.quad.compute.subgroupquadswaphorizontal_i16vec2
+dEQP-VK.subgroups.quad.compute.subgroupquadswaphorizontal_i16vec2_requiredsubgroupsize
 dEQP-VK.subgroups.quad.compute.subgroupquadswapvertical_i16vec2
+dEQP-VK.subgroups.quad.compute.subgroupquadswapvertical_i16vec2_requiredsubgroupsize
 dEQP-VK.subgroups.quad.compute.subgroupquadswapdiagonal_i16vec2
+dEQP-VK.subgroups.quad.compute.subgroupquadswapdiagonal_i16vec2_requiredsubgroupsize
 dEQP-VK.subgroups.quad.compute.subgroupquadbroadcast_i16vec3
+dEQP-VK.subgroups.quad.compute.subgroupquadbroadcast_i16vec3_requiredsubgroupsize
 dEQP-VK.subgroups.quad.compute.subgroupquadbroadcast_nonconst_i16vec3
+dEQP-VK.subgroups.quad.compute.subgroupquadbroadcast_nonconst_i16vec3_requiredsubgroupsize
 dEQP-VK.subgroups.quad.compute.subgroupquadswaphorizontal_i16vec3
+dEQP-VK.subgroups.quad.compute.subgroupquadswaphorizontal_i16vec3_requiredsubgroupsize
 dEQP-VK.subgroups.quad.compute.subgroupquadswapvertical_i16vec3
+dEQP-VK.subgroups.quad.compute.subgroupquadswapvertical_i16vec3_requiredsubgroupsize
 dEQP-VK.subgroups.quad.compute.subgroupquadswapdiagonal_i16vec3
+dEQP-VK.subgroups.quad.compute.subgroupquadswapdiagonal_i16vec3_requiredsubgroupsize
 dEQP-VK.subgroups.quad.compute.subgroupquadbroadcast_i16vec4
+dEQP-VK.subgroups.quad.compute.subgroupquadbroadcast_i16vec4_requiredsubgroupsize
 dEQP-VK.subgroups.quad.compute.subgroupquadbroadcast_nonconst_i16vec4
+dEQP-VK.subgroups.quad.compute.subgroupquadbroadcast_nonconst_i16vec4_requiredsubgroupsize
 dEQP-VK.subgroups.quad.compute.subgroupquadswaphorizontal_i16vec4
+dEQP-VK.subgroups.quad.compute.subgroupquadswaphorizontal_i16vec4_requiredsubgroupsize
 dEQP-VK.subgroups.quad.compute.subgroupquadswapvertical_i16vec4
+dEQP-VK.subgroups.quad.compute.subgroupquadswapvertical_i16vec4_requiredsubgroupsize
 dEQP-VK.subgroups.quad.compute.subgroupquadswapdiagonal_i16vec4
+dEQP-VK.subgroups.quad.compute.subgroupquadswapdiagonal_i16vec4_requiredsubgroupsize
 dEQP-VK.subgroups.quad.compute.subgroupquadbroadcast_uint16_t
+dEQP-VK.subgroups.quad.compute.subgroupquadbroadcast_uint16_t_requiredsubgroupsize
 dEQP-VK.subgroups.quad.compute.subgroupquadbroadcast_nonconst_uint16_t
+dEQP-VK.subgroups.quad.compute.subgroupquadbroadcast_nonconst_uint16_t_requiredsubgroupsize
 dEQP-VK.subgroups.quad.compute.subgroupquadswaphorizontal_uint16_t
+dEQP-VK.subgroups.quad.compute.subgroupquadswaphorizontal_uint16_t_requiredsubgroupsize
 dEQP-VK.subgroups.quad.compute.subgroupquadswapvertical_uint16_t
+dEQP-VK.subgroups.quad.compute.subgroupquadswapvertical_uint16_t_requiredsubgroupsize
 dEQP-VK.subgroups.quad.compute.subgroupquadswapdiagonal_uint16_t
+dEQP-VK.subgroups.quad.compute.subgroupquadswapdiagonal_uint16_t_requiredsubgroupsize
 dEQP-VK.subgroups.quad.compute.subgroupquadbroadcast_u16vec2
+dEQP-VK.subgroups.quad.compute.subgroupquadbroadcast_u16vec2_requiredsubgroupsize
 dEQP-VK.subgroups.quad.compute.subgroupquadbroadcast_nonconst_u16vec2
+dEQP-VK.subgroups.quad.compute.subgroupquadbroadcast_nonconst_u16vec2_requiredsubgroupsize
 dEQP-VK.subgroups.quad.compute.subgroupquadswaphorizontal_u16vec2
+dEQP-VK.subgroups.quad.compute.subgroupquadswaphorizontal_u16vec2_requiredsubgroupsize
 dEQP-VK.subgroups.quad.compute.subgroupquadswapvertical_u16vec2
+dEQP-VK.subgroups.quad.compute.subgroupquadswapvertical_u16vec2_requiredsubgroupsize
 dEQP-VK.subgroups.quad.compute.subgroupquadswapdiagonal_u16vec2
+dEQP-VK.subgroups.quad.compute.subgroupquadswapdiagonal_u16vec2_requiredsubgroupsize
 dEQP-VK.subgroups.quad.compute.subgroupquadbroadcast_u16vec3
+dEQP-VK.subgroups.quad.compute.subgroupquadbroadcast_u16vec3_requiredsubgroupsize
 dEQP-VK.subgroups.quad.compute.subgroupquadbroadcast_nonconst_u16vec3
+dEQP-VK.subgroups.quad.compute.subgroupquadbroadcast_nonconst_u16vec3_requiredsubgroupsize
 dEQP-VK.subgroups.quad.compute.subgroupquadswaphorizontal_u16vec3
+dEQP-VK.subgroups.quad.compute.subgroupquadswaphorizontal_u16vec3_requiredsubgroupsize
 dEQP-VK.subgroups.quad.compute.subgroupquadswapvertical_u16vec3
+dEQP-VK.subgroups.quad.compute.subgroupquadswapvertical_u16vec3_requiredsubgroupsize
 dEQP-VK.subgroups.quad.compute.subgroupquadswapdiagonal_u16vec3
+dEQP-VK.subgroups.quad.compute.subgroupquadswapdiagonal_u16vec3_requiredsubgroupsize
 dEQP-VK.subgroups.quad.compute.subgroupquadbroadcast_u16vec4
+dEQP-VK.subgroups.quad.compute.subgroupquadbroadcast_u16vec4_requiredsubgroupsize
 dEQP-VK.subgroups.quad.compute.subgroupquadbroadcast_nonconst_u16vec4
+dEQP-VK.subgroups.quad.compute.subgroupquadbroadcast_nonconst_u16vec4_requiredsubgroupsize
 dEQP-VK.subgroups.quad.compute.subgroupquadswaphorizontal_u16vec4
+dEQP-VK.subgroups.quad.compute.subgroupquadswaphorizontal_u16vec4_requiredsubgroupsize
 dEQP-VK.subgroups.quad.compute.subgroupquadswapvertical_u16vec4
+dEQP-VK.subgroups.quad.compute.subgroupquadswapvertical_u16vec4_requiredsubgroupsize
 dEQP-VK.subgroups.quad.compute.subgroupquadswapdiagonal_u16vec4
+dEQP-VK.subgroups.quad.compute.subgroupquadswapdiagonal_u16vec4_requiredsubgroupsize
 dEQP-VK.subgroups.quad.compute.subgroupquadbroadcast_int
+dEQP-VK.subgroups.quad.compute.subgroupquadbroadcast_int_requiredsubgroupsize
 dEQP-VK.subgroups.quad.compute.subgroupquadbroadcast_nonconst_int
+dEQP-VK.subgroups.quad.compute.subgroupquadbroadcast_nonconst_int_requiredsubgroupsize
 dEQP-VK.subgroups.quad.compute.subgroupquadswaphorizontal_int
+dEQP-VK.subgroups.quad.compute.subgroupquadswaphorizontal_int_requiredsubgroupsize
 dEQP-VK.subgroups.quad.compute.subgroupquadswapvertical_int
+dEQP-VK.subgroups.quad.compute.subgroupquadswapvertical_int_requiredsubgroupsize
 dEQP-VK.subgroups.quad.compute.subgroupquadswapdiagonal_int
+dEQP-VK.subgroups.quad.compute.subgroupquadswapdiagonal_int_requiredsubgroupsize
 dEQP-VK.subgroups.quad.compute.subgroupquadbroadcast_ivec2
+dEQP-VK.subgroups.quad.compute.subgroupquadbroadcast_ivec2_requiredsubgroupsize
 dEQP-VK.subgroups.quad.compute.subgroupquadbroadcast_nonconst_ivec2
+dEQP-VK.subgroups.quad.compute.subgroupquadbroadcast_nonconst_ivec2_requiredsubgroupsize
 dEQP-VK.subgroups.quad.compute.subgroupquadswaphorizontal_ivec2
+dEQP-VK.subgroups.quad.compute.subgroupquadswaphorizontal_ivec2_requiredsubgroupsize
 dEQP-VK.subgroups.quad.compute.subgroupquadswapvertical_ivec2
+dEQP-VK.subgroups.quad.compute.subgroupquadswapvertical_ivec2_requiredsubgroupsize
 dEQP-VK.subgroups.quad.compute.subgroupquadswapdiagonal_ivec2
+dEQP-VK.subgroups.quad.compute.subgroupquadswapdiagonal_ivec2_requiredsubgroupsize
 dEQP-VK.subgroups.quad.compute.subgroupquadbroadcast_ivec3
+dEQP-VK.subgroups.quad.compute.subgroupquadbroadcast_ivec3_requiredsubgroupsize
 dEQP-VK.subgroups.quad.compute.subgroupquadbroadcast_nonconst_ivec3
+dEQP-VK.subgroups.quad.compute.subgroupquadbroadcast_nonconst_ivec3_requiredsubgroupsize
 dEQP-VK.subgroups.quad.compute.subgroupquadswaphorizontal_ivec3
+dEQP-VK.subgroups.quad.compute.subgroupquadswaphorizontal_ivec3_requiredsubgroupsize
 dEQP-VK.subgroups.quad.compute.subgroupquadswapvertical_ivec3
+dEQP-VK.subgroups.quad.compute.subgroupquadswapvertical_ivec3_requiredsubgroupsize
 dEQP-VK.subgroups.quad.compute.subgroupquadswapdiagonal_ivec3
+dEQP-VK.subgroups.quad.compute.subgroupquadswapdiagonal_ivec3_requiredsubgroupsize
 dEQP-VK.subgroups.quad.compute.subgroupquadbroadcast_ivec4
+dEQP-VK.subgroups.quad.compute.subgroupquadbroadcast_ivec4_requiredsubgroupsize
 dEQP-VK.subgroups.quad.compute.subgroupquadbroadcast_nonconst_ivec4
+dEQP-VK.subgroups.quad.compute.subgroupquadbroadcast_nonconst_ivec4_requiredsubgroupsize
 dEQP-VK.subgroups.quad.compute.subgroupquadswaphorizontal_ivec4
+dEQP-VK.subgroups.quad.compute.subgroupquadswaphorizontal_ivec4_requiredsubgroupsize
 dEQP-VK.subgroups.quad.compute.subgroupquadswapvertical_ivec4
+dEQP-VK.subgroups.quad.compute.subgroupquadswapvertical_ivec4_requiredsubgroupsize
 dEQP-VK.subgroups.quad.compute.subgroupquadswapdiagonal_ivec4
+dEQP-VK.subgroups.quad.compute.subgroupquadswapdiagonal_ivec4_requiredsubgroupsize
 dEQP-VK.subgroups.quad.compute.subgroupquadbroadcast_uint
+dEQP-VK.subgroups.quad.compute.subgroupquadbroadcast_uint_requiredsubgroupsize
 dEQP-VK.subgroups.quad.compute.subgroupquadbroadcast_nonconst_uint
+dEQP-VK.subgroups.quad.compute.subgroupquadbroadcast_nonconst_uint_requiredsubgroupsize
 dEQP-VK.subgroups.quad.compute.subgroupquadswaphorizontal_uint
+dEQP-VK.subgroups.quad.compute.subgroupquadswaphorizontal_uint_requiredsubgroupsize
 dEQP-VK.subgroups.quad.compute.subgroupquadswapvertical_uint
+dEQP-VK.subgroups.quad.compute.subgroupquadswapvertical_uint_requiredsubgroupsize
 dEQP-VK.subgroups.quad.compute.subgroupquadswapdiagonal_uint
+dEQP-VK.subgroups.quad.compute.subgroupquadswapdiagonal_uint_requiredsubgroupsize
 dEQP-VK.subgroups.quad.compute.subgroupquadbroadcast_uvec2
+dEQP-VK.subgroups.quad.compute.subgroupquadbroadcast_uvec2_requiredsubgroupsize
 dEQP-VK.subgroups.quad.compute.subgroupquadbroadcast_nonconst_uvec2
+dEQP-VK.subgroups.quad.compute.subgroupquadbroadcast_nonconst_uvec2_requiredsubgroupsize
 dEQP-VK.subgroups.quad.compute.subgroupquadswaphorizontal_uvec2
+dEQP-VK.subgroups.quad.compute.subgroupquadswaphorizontal_uvec2_requiredsubgroupsize
 dEQP-VK.subgroups.quad.compute.subgroupquadswapvertical_uvec2
+dEQP-VK.subgroups.quad.compute.subgroupquadswapvertical_uvec2_requiredsubgroupsize
 dEQP-VK.subgroups.quad.compute.subgroupquadswapdiagonal_uvec2
+dEQP-VK.subgroups.quad.compute.subgroupquadswapdiagonal_uvec2_requiredsubgroupsize
 dEQP-VK.subgroups.quad.compute.subgroupquadbroadcast_uvec3
+dEQP-VK.subgroups.quad.compute.subgroupquadbroadcast_uvec3_requiredsubgroupsize
 dEQP-VK.subgroups.quad.compute.subgroupquadbroadcast_nonconst_uvec3
+dEQP-VK.subgroups.quad.compute.subgroupquadbroadcast_nonconst_uvec3_requiredsubgroupsize
 dEQP-VK.subgroups.quad.compute.subgroupquadswaphorizontal_uvec3
+dEQP-VK.subgroups.quad.compute.subgroupquadswaphorizontal_uvec3_requiredsubgroupsize
 dEQP-VK.subgroups.quad.compute.subgroupquadswapvertical_uvec3
+dEQP-VK.subgroups.quad.compute.subgroupquadswapvertical_uvec3_requiredsubgroupsize
 dEQP-VK.subgroups.quad.compute.subgroupquadswapdiagonal_uvec3
+dEQP-VK.subgroups.quad.compute.subgroupquadswapdiagonal_uvec3_requiredsubgroupsize
 dEQP-VK.subgroups.quad.compute.subgroupquadbroadcast_uvec4
+dEQP-VK.subgroups.quad.compute.subgroupquadbroadcast_uvec4_requiredsubgroupsize
 dEQP-VK.subgroups.quad.compute.subgroupquadbroadcast_nonconst_uvec4
+dEQP-VK.subgroups.quad.compute.subgroupquadbroadcast_nonconst_uvec4_requiredsubgroupsize
 dEQP-VK.subgroups.quad.compute.subgroupquadswaphorizontal_uvec4
+dEQP-VK.subgroups.quad.compute.subgroupquadswaphorizontal_uvec4_requiredsubgroupsize
 dEQP-VK.subgroups.quad.compute.subgroupquadswapvertical_uvec4
+dEQP-VK.subgroups.quad.compute.subgroupquadswapvertical_uvec4_requiredsubgroupsize
 dEQP-VK.subgroups.quad.compute.subgroupquadswapdiagonal_uvec4
+dEQP-VK.subgroups.quad.compute.subgroupquadswapdiagonal_uvec4_requiredsubgroupsize
 dEQP-VK.subgroups.quad.compute.subgroupquadbroadcast_int64_t
+dEQP-VK.subgroups.quad.compute.subgroupquadbroadcast_int64_t_requiredsubgroupsize
 dEQP-VK.subgroups.quad.compute.subgroupquadbroadcast_nonconst_int64_t
+dEQP-VK.subgroups.quad.compute.subgroupquadbroadcast_nonconst_int64_t_requiredsubgroupsize
 dEQP-VK.subgroups.quad.compute.subgroupquadswaphorizontal_int64_t
+dEQP-VK.subgroups.quad.compute.subgroupquadswaphorizontal_int64_t_requiredsubgroupsize
 dEQP-VK.subgroups.quad.compute.subgroupquadswapvertical_int64_t
+dEQP-VK.subgroups.quad.compute.subgroupquadswapvertical_int64_t_requiredsubgroupsize
 dEQP-VK.subgroups.quad.compute.subgroupquadswapdiagonal_int64_t
+dEQP-VK.subgroups.quad.compute.subgroupquadswapdiagonal_int64_t_requiredsubgroupsize
 dEQP-VK.subgroups.quad.compute.subgroupquadbroadcast_i64vec2
+dEQP-VK.subgroups.quad.compute.subgroupquadbroadcast_i64vec2_requiredsubgroupsize
 dEQP-VK.subgroups.quad.compute.subgroupquadbroadcast_nonconst_i64vec2
+dEQP-VK.subgroups.quad.compute.subgroupquadbroadcast_nonconst_i64vec2_requiredsubgroupsize
 dEQP-VK.subgroups.quad.compute.subgroupquadswaphorizontal_i64vec2
+dEQP-VK.subgroups.quad.compute.subgroupquadswaphorizontal_i64vec2_requiredsubgroupsize
 dEQP-VK.subgroups.quad.compute.subgroupquadswapvertical_i64vec2
+dEQP-VK.subgroups.quad.compute.subgroupquadswapvertical_i64vec2_requiredsubgroupsize
 dEQP-VK.subgroups.quad.compute.subgroupquadswapdiagonal_i64vec2
+dEQP-VK.subgroups.quad.compute.subgroupquadswapdiagonal_i64vec2_requiredsubgroupsize
 dEQP-VK.subgroups.quad.compute.subgroupquadbroadcast_i64vec3
+dEQP-VK.subgroups.quad.compute.subgroupquadbroadcast_i64vec3_requiredsubgroupsize
 dEQP-VK.subgroups.quad.compute.subgroupquadbroadcast_nonconst_i64vec3
+dEQP-VK.subgroups.quad.compute.subgroupquadbroadcast_nonconst_i64vec3_requiredsubgroupsize
 dEQP-VK.subgroups.quad.compute.subgroupquadswaphorizontal_i64vec3
+dEQP-VK.subgroups.quad.compute.subgroupquadswaphorizontal_i64vec3_requiredsubgroupsize
 dEQP-VK.subgroups.quad.compute.subgroupquadswapvertical_i64vec3
+dEQP-VK.subgroups.quad.compute.subgroupquadswapvertical_i64vec3_requiredsubgroupsize
 dEQP-VK.subgroups.quad.compute.subgroupquadswapdiagonal_i64vec3
+dEQP-VK.subgroups.quad.compute.subgroupquadswapdiagonal_i64vec3_requiredsubgroupsize
 dEQP-VK.subgroups.quad.compute.subgroupquadbroadcast_i64vec4
+dEQP-VK.subgroups.quad.compute.subgroupquadbroadcast_i64vec4_requiredsubgroupsize
 dEQP-VK.subgroups.quad.compute.subgroupquadbroadcast_nonconst_i64vec4
+dEQP-VK.subgroups.quad.compute.subgroupquadbroadcast_nonconst_i64vec4_requiredsubgroupsize
 dEQP-VK.subgroups.quad.compute.subgroupquadswaphorizontal_i64vec4
+dEQP-VK.subgroups.quad.compute.subgroupquadswaphorizontal_i64vec4_requiredsubgroupsize
 dEQP-VK.subgroups.quad.compute.subgroupquadswapvertical_i64vec4
+dEQP-VK.subgroups.quad.compute.subgroupquadswapvertical_i64vec4_requiredsubgroupsize
 dEQP-VK.subgroups.quad.compute.subgroupquadswapdiagonal_i64vec4
+dEQP-VK.subgroups.quad.compute.subgroupquadswapdiagonal_i64vec4_requiredsubgroupsize
 dEQP-VK.subgroups.quad.compute.subgroupquadbroadcast_uint64_t
+dEQP-VK.subgroups.quad.compute.subgroupquadbroadcast_uint64_t_requiredsubgroupsize
 dEQP-VK.subgroups.quad.compute.subgroupquadbroadcast_nonconst_uint64_t
+dEQP-VK.subgroups.quad.compute.subgroupquadbroadcast_nonconst_uint64_t_requiredsubgroupsize
 dEQP-VK.subgroups.quad.compute.subgroupquadswaphorizontal_uint64_t
+dEQP-VK.subgroups.quad.compute.subgroupquadswaphorizontal_uint64_t_requiredsubgroupsize
 dEQP-VK.subgroups.quad.compute.subgroupquadswapvertical_uint64_t
+dEQP-VK.subgroups.quad.compute.subgroupquadswapvertical_uint64_t_requiredsubgroupsize
 dEQP-VK.subgroups.quad.compute.subgroupquadswapdiagonal_uint64_t
+dEQP-VK.subgroups.quad.compute.subgroupquadswapdiagonal_uint64_t_requiredsubgroupsize
 dEQP-VK.subgroups.quad.compute.subgroupquadbroadcast_u64vec2
+dEQP-VK.subgroups.quad.compute.subgroupquadbroadcast_u64vec2_requiredsubgroupsize
 dEQP-VK.subgroups.quad.compute.subgroupquadbroadcast_nonconst_u64vec2
+dEQP-VK.subgroups.quad.compute.subgroupquadbroadcast_nonconst_u64vec2_requiredsubgroupsize
 dEQP-VK.subgroups.quad.compute.subgroupquadswaphorizontal_u64vec2
+dEQP-VK.subgroups.quad.compute.subgroupquadswaphorizontal_u64vec2_requiredsubgroupsize
 dEQP-VK.subgroups.quad.compute.subgroupquadswapvertical_u64vec2
+dEQP-VK.subgroups.quad.compute.subgroupquadswapvertical_u64vec2_requiredsubgroupsize
 dEQP-VK.subgroups.quad.compute.subgroupquadswapdiagonal_u64vec2
+dEQP-VK.subgroups.quad.compute.subgroupquadswapdiagonal_u64vec2_requiredsubgroupsize
 dEQP-VK.subgroups.quad.compute.subgroupquadbroadcast_u64vec3
+dEQP-VK.subgroups.quad.compute.subgroupquadbroadcast_u64vec3_requiredsubgroupsize
 dEQP-VK.subgroups.quad.compute.subgroupquadbroadcast_nonconst_u64vec3
+dEQP-VK.subgroups.quad.compute.subgroupquadbroadcast_nonconst_u64vec3_requiredsubgroupsize
 dEQP-VK.subgroups.quad.compute.subgroupquadswaphorizontal_u64vec3
+dEQP-VK.subgroups.quad.compute.subgroupquadswaphorizontal_u64vec3_requiredsubgroupsize
 dEQP-VK.subgroups.quad.compute.subgroupquadswapvertical_u64vec3
+dEQP-VK.subgroups.quad.compute.subgroupquadswapvertical_u64vec3_requiredsubgroupsize
 dEQP-VK.subgroups.quad.compute.subgroupquadswapdiagonal_u64vec3
+dEQP-VK.subgroups.quad.compute.subgroupquadswapdiagonal_u64vec3_requiredsubgroupsize
 dEQP-VK.subgroups.quad.compute.subgroupquadbroadcast_u64vec4
+dEQP-VK.subgroups.quad.compute.subgroupquadbroadcast_u64vec4_requiredsubgroupsize
 dEQP-VK.subgroups.quad.compute.subgroupquadbroadcast_nonconst_u64vec4
+dEQP-VK.subgroups.quad.compute.subgroupquadbroadcast_nonconst_u64vec4_requiredsubgroupsize
 dEQP-VK.subgroups.quad.compute.subgroupquadswaphorizontal_u64vec4
+dEQP-VK.subgroups.quad.compute.subgroupquadswaphorizontal_u64vec4_requiredsubgroupsize
 dEQP-VK.subgroups.quad.compute.subgroupquadswapvertical_u64vec4
+dEQP-VK.subgroups.quad.compute.subgroupquadswapvertical_u64vec4_requiredsubgroupsize
 dEQP-VK.subgroups.quad.compute.subgroupquadswapdiagonal_u64vec4
+dEQP-VK.subgroups.quad.compute.subgroupquadswapdiagonal_u64vec4_requiredsubgroupsize
 dEQP-VK.subgroups.quad.compute.subgroupquadbroadcast_float16_t
+dEQP-VK.subgroups.quad.compute.subgroupquadbroadcast_float16_t_requiredsubgroupsize
 dEQP-VK.subgroups.quad.compute.subgroupquadbroadcast_nonconst_float16_t
+dEQP-VK.subgroups.quad.compute.subgroupquadbroadcast_nonconst_float16_t_requiredsubgroupsize
 dEQP-VK.subgroups.quad.compute.subgroupquadswaphorizontal_float16_t
+dEQP-VK.subgroups.quad.compute.subgroupquadswaphorizontal_float16_t_requiredsubgroupsize
 dEQP-VK.subgroups.quad.compute.subgroupquadswapvertical_float16_t
+dEQP-VK.subgroups.quad.compute.subgroupquadswapvertical_float16_t_requiredsubgroupsize
 dEQP-VK.subgroups.quad.compute.subgroupquadswapdiagonal_float16_t
+dEQP-VK.subgroups.quad.compute.subgroupquadswapdiagonal_float16_t_requiredsubgroupsize
 dEQP-VK.subgroups.quad.compute.subgroupquadbroadcast_f16vec2
+dEQP-VK.subgroups.quad.compute.subgroupquadbroadcast_f16vec2_requiredsubgroupsize
 dEQP-VK.subgroups.quad.compute.subgroupquadbroadcast_nonconst_f16vec2
+dEQP-VK.subgroups.quad.compute.subgroupquadbroadcast_nonconst_f16vec2_requiredsubgroupsize
 dEQP-VK.subgroups.quad.compute.subgroupquadswaphorizontal_f16vec2
+dEQP-VK.subgroups.quad.compute.subgroupquadswaphorizontal_f16vec2_requiredsubgroupsize
 dEQP-VK.subgroups.quad.compute.subgroupquadswapvertical_f16vec2
+dEQP-VK.subgroups.quad.compute.subgroupquadswapvertical_f16vec2_requiredsubgroupsize
 dEQP-VK.subgroups.quad.compute.subgroupquadswapdiagonal_f16vec2
+dEQP-VK.subgroups.quad.compute.subgroupquadswapdiagonal_f16vec2_requiredsubgroupsize
 dEQP-VK.subgroups.quad.compute.subgroupquadbroadcast_f16vec3
+dEQP-VK.subgroups.quad.compute.subgroupquadbroadcast_f16vec3_requiredsubgroupsize
 dEQP-VK.subgroups.quad.compute.subgroupquadbroadcast_nonconst_f16vec3
+dEQP-VK.subgroups.quad.compute.subgroupquadbroadcast_nonconst_f16vec3_requiredsubgroupsize
 dEQP-VK.subgroups.quad.compute.subgroupquadswaphorizontal_f16vec3
+dEQP-VK.subgroups.quad.compute.subgroupquadswaphorizontal_f16vec3_requiredsubgroupsize
 dEQP-VK.subgroups.quad.compute.subgroupquadswapvertical_f16vec3
+dEQP-VK.subgroups.quad.compute.subgroupquadswapvertical_f16vec3_requiredsubgroupsize
 dEQP-VK.subgroups.quad.compute.subgroupquadswapdiagonal_f16vec3
+dEQP-VK.subgroups.quad.compute.subgroupquadswapdiagonal_f16vec3_requiredsubgroupsize
 dEQP-VK.subgroups.quad.compute.subgroupquadbroadcast_f16vec4
+dEQP-VK.subgroups.quad.compute.subgroupquadbroadcast_f16vec4_requiredsubgroupsize
 dEQP-VK.subgroups.quad.compute.subgroupquadbroadcast_nonconst_f16vec4
+dEQP-VK.subgroups.quad.compute.subgroupquadbroadcast_nonconst_f16vec4_requiredsubgroupsize
 dEQP-VK.subgroups.quad.compute.subgroupquadswaphorizontal_f16vec4
+dEQP-VK.subgroups.quad.compute.subgroupquadswaphorizontal_f16vec4_requiredsubgroupsize
 dEQP-VK.subgroups.quad.compute.subgroupquadswapvertical_f16vec4
+dEQP-VK.subgroups.quad.compute.subgroupquadswapvertical_f16vec4_requiredsubgroupsize
 dEQP-VK.subgroups.quad.compute.subgroupquadswapdiagonal_f16vec4
+dEQP-VK.subgroups.quad.compute.subgroupquadswapdiagonal_f16vec4_requiredsubgroupsize
 dEQP-VK.subgroups.quad.compute.subgroupquadbroadcast_float
+dEQP-VK.subgroups.quad.compute.subgroupquadbroadcast_float_requiredsubgroupsize
 dEQP-VK.subgroups.quad.compute.subgroupquadbroadcast_nonconst_float
+dEQP-VK.subgroups.quad.compute.subgroupquadbroadcast_nonconst_float_requiredsubgroupsize
 dEQP-VK.subgroups.quad.compute.subgroupquadswaphorizontal_float
+dEQP-VK.subgroups.quad.compute.subgroupquadswaphorizontal_float_requiredsubgroupsize
 dEQP-VK.subgroups.quad.compute.subgroupquadswapvertical_float
+dEQP-VK.subgroups.quad.compute.subgroupquadswapvertical_float_requiredsubgroupsize
 dEQP-VK.subgroups.quad.compute.subgroupquadswapdiagonal_float
+dEQP-VK.subgroups.quad.compute.subgroupquadswapdiagonal_float_requiredsubgroupsize
 dEQP-VK.subgroups.quad.compute.subgroupquadbroadcast_vec2
+dEQP-VK.subgroups.quad.compute.subgroupquadbroadcast_vec2_requiredsubgroupsize
 dEQP-VK.subgroups.quad.compute.subgroupquadbroadcast_nonconst_vec2
+dEQP-VK.subgroups.quad.compute.subgroupquadbroadcast_nonconst_vec2_requiredsubgroupsize
 dEQP-VK.subgroups.quad.compute.subgroupquadswaphorizontal_vec2
+dEQP-VK.subgroups.quad.compute.subgroupquadswaphorizontal_vec2_requiredsubgroupsize
 dEQP-VK.subgroups.quad.compute.subgroupquadswapvertical_vec2
+dEQP-VK.subgroups.quad.compute.subgroupquadswapvertical_vec2_requiredsubgroupsize
 dEQP-VK.subgroups.quad.compute.subgroupquadswapdiagonal_vec2
+dEQP-VK.subgroups.quad.compute.subgroupquadswapdiagonal_vec2_requiredsubgroupsize
 dEQP-VK.subgroups.quad.compute.subgroupquadbroadcast_vec3
+dEQP-VK.subgroups.quad.compute.subgroupquadbroadcast_vec3_requiredsubgroupsize
 dEQP-VK.subgroups.quad.compute.subgroupquadbroadcast_nonconst_vec3
+dEQP-VK.subgroups.quad.compute.subgroupquadbroadcast_nonconst_vec3_requiredsubgroupsize
 dEQP-VK.subgroups.quad.compute.subgroupquadswaphorizontal_vec3
+dEQP-VK.subgroups.quad.compute.subgroupquadswaphorizontal_vec3_requiredsubgroupsize
 dEQP-VK.subgroups.quad.compute.subgroupquadswapvertical_vec3
+dEQP-VK.subgroups.quad.compute.subgroupquadswapvertical_vec3_requiredsubgroupsize
 dEQP-VK.subgroups.quad.compute.subgroupquadswapdiagonal_vec3
+dEQP-VK.subgroups.quad.compute.subgroupquadswapdiagonal_vec3_requiredsubgroupsize
 dEQP-VK.subgroups.quad.compute.subgroupquadbroadcast_vec4
+dEQP-VK.subgroups.quad.compute.subgroupquadbroadcast_vec4_requiredsubgroupsize
 dEQP-VK.subgroups.quad.compute.subgroupquadbroadcast_nonconst_vec4
+dEQP-VK.subgroups.quad.compute.subgroupquadbroadcast_nonconst_vec4_requiredsubgroupsize
 dEQP-VK.subgroups.quad.compute.subgroupquadswaphorizontal_vec4
+dEQP-VK.subgroups.quad.compute.subgroupquadswaphorizontal_vec4_requiredsubgroupsize
 dEQP-VK.subgroups.quad.compute.subgroupquadswapvertical_vec4
+dEQP-VK.subgroups.quad.compute.subgroupquadswapvertical_vec4_requiredsubgroupsize
 dEQP-VK.subgroups.quad.compute.subgroupquadswapdiagonal_vec4
+dEQP-VK.subgroups.quad.compute.subgroupquadswapdiagonal_vec4_requiredsubgroupsize
 dEQP-VK.subgroups.quad.compute.subgroupquadbroadcast_double
+dEQP-VK.subgroups.quad.compute.subgroupquadbroadcast_double_requiredsubgroupsize
 dEQP-VK.subgroups.quad.compute.subgroupquadbroadcast_nonconst_double
+dEQP-VK.subgroups.quad.compute.subgroupquadbroadcast_nonconst_double_requiredsubgroupsize
 dEQP-VK.subgroups.quad.compute.subgroupquadswaphorizontal_double
+dEQP-VK.subgroups.quad.compute.subgroupquadswaphorizontal_double_requiredsubgroupsize
 dEQP-VK.subgroups.quad.compute.subgroupquadswapvertical_double
+dEQP-VK.subgroups.quad.compute.subgroupquadswapvertical_double_requiredsubgroupsize
 dEQP-VK.subgroups.quad.compute.subgroupquadswapdiagonal_double
+dEQP-VK.subgroups.quad.compute.subgroupquadswapdiagonal_double_requiredsubgroupsize
 dEQP-VK.subgroups.quad.compute.subgroupquadbroadcast_dvec2
+dEQP-VK.subgroups.quad.compute.subgroupquadbroadcast_dvec2_requiredsubgroupsize
 dEQP-VK.subgroups.quad.compute.subgroupquadbroadcast_nonconst_dvec2
+dEQP-VK.subgroups.quad.compute.subgroupquadbroadcast_nonconst_dvec2_requiredsubgroupsize
 dEQP-VK.subgroups.quad.compute.subgroupquadswaphorizontal_dvec2
+dEQP-VK.subgroups.quad.compute.subgroupquadswaphorizontal_dvec2_requiredsubgroupsize
 dEQP-VK.subgroups.quad.compute.subgroupquadswapvertical_dvec2
+dEQP-VK.subgroups.quad.compute.subgroupquadswapvertical_dvec2_requiredsubgroupsize
 dEQP-VK.subgroups.quad.compute.subgroupquadswapdiagonal_dvec2
+dEQP-VK.subgroups.quad.compute.subgroupquadswapdiagonal_dvec2_requiredsubgroupsize
 dEQP-VK.subgroups.quad.compute.subgroupquadbroadcast_dvec3
+dEQP-VK.subgroups.quad.compute.subgroupquadbroadcast_dvec3_requiredsubgroupsize
 dEQP-VK.subgroups.quad.compute.subgroupquadbroadcast_nonconst_dvec3
+dEQP-VK.subgroups.quad.compute.subgroupquadbroadcast_nonconst_dvec3_requiredsubgroupsize
 dEQP-VK.subgroups.quad.compute.subgroupquadswaphorizontal_dvec3
+dEQP-VK.subgroups.quad.compute.subgroupquadswaphorizontal_dvec3_requiredsubgroupsize
 dEQP-VK.subgroups.quad.compute.subgroupquadswapvertical_dvec3
+dEQP-VK.subgroups.quad.compute.subgroupquadswapvertical_dvec3_requiredsubgroupsize
 dEQP-VK.subgroups.quad.compute.subgroupquadswapdiagonal_dvec3
+dEQP-VK.subgroups.quad.compute.subgroupquadswapdiagonal_dvec3_requiredsubgroupsize
 dEQP-VK.subgroups.quad.compute.subgroupquadbroadcast_dvec4
+dEQP-VK.subgroups.quad.compute.subgroupquadbroadcast_dvec4_requiredsubgroupsize
 dEQP-VK.subgroups.quad.compute.subgroupquadbroadcast_nonconst_dvec4
+dEQP-VK.subgroups.quad.compute.subgroupquadbroadcast_nonconst_dvec4_requiredsubgroupsize
 dEQP-VK.subgroups.quad.compute.subgroupquadswaphorizontal_dvec4
+dEQP-VK.subgroups.quad.compute.subgroupquadswaphorizontal_dvec4_requiredsubgroupsize
 dEQP-VK.subgroups.quad.compute.subgroupquadswapvertical_dvec4
+dEQP-VK.subgroups.quad.compute.subgroupquadswapvertical_dvec4_requiredsubgroupsize
 dEQP-VK.subgroups.quad.compute.subgroupquadswapdiagonal_dvec4
+dEQP-VK.subgroups.quad.compute.subgroupquadswapdiagonal_dvec4_requiredsubgroupsize
 dEQP-VK.subgroups.quad.compute.subgroupquadbroadcast_bool
+dEQP-VK.subgroups.quad.compute.subgroupquadbroadcast_bool_requiredsubgroupsize
 dEQP-VK.subgroups.quad.compute.subgroupquadbroadcast_nonconst_bool
+dEQP-VK.subgroups.quad.compute.subgroupquadbroadcast_nonconst_bool_requiredsubgroupsize
 dEQP-VK.subgroups.quad.compute.subgroupquadswaphorizontal_bool
+dEQP-VK.subgroups.quad.compute.subgroupquadswaphorizontal_bool_requiredsubgroupsize
 dEQP-VK.subgroups.quad.compute.subgroupquadswapvertical_bool
+dEQP-VK.subgroups.quad.compute.subgroupquadswapvertical_bool_requiredsubgroupsize
 dEQP-VK.subgroups.quad.compute.subgroupquadswapdiagonal_bool
+dEQP-VK.subgroups.quad.compute.subgroupquadswapdiagonal_bool_requiredsubgroupsize
 dEQP-VK.subgroups.quad.compute.subgroupquadbroadcast_bvec2
+dEQP-VK.subgroups.quad.compute.subgroupquadbroadcast_bvec2_requiredsubgroupsize
 dEQP-VK.subgroups.quad.compute.subgroupquadbroadcast_nonconst_bvec2
+dEQP-VK.subgroups.quad.compute.subgroupquadbroadcast_nonconst_bvec2_requiredsubgroupsize
 dEQP-VK.subgroups.quad.compute.subgroupquadswaphorizontal_bvec2
+dEQP-VK.subgroups.quad.compute.subgroupquadswaphorizontal_bvec2_requiredsubgroupsize
 dEQP-VK.subgroups.quad.compute.subgroupquadswapvertical_bvec2
+dEQP-VK.subgroups.quad.compute.subgroupquadswapvertical_bvec2_requiredsubgroupsize
 dEQP-VK.subgroups.quad.compute.subgroupquadswapdiagonal_bvec2
+dEQP-VK.subgroups.quad.compute.subgroupquadswapdiagonal_bvec2_requiredsubgroupsize
 dEQP-VK.subgroups.quad.compute.subgroupquadbroadcast_bvec3
+dEQP-VK.subgroups.quad.compute.subgroupquadbroadcast_bvec3_requiredsubgroupsize
 dEQP-VK.subgroups.quad.compute.subgroupquadbroadcast_nonconst_bvec3
+dEQP-VK.subgroups.quad.compute.subgroupquadbroadcast_nonconst_bvec3_requiredsubgroupsize
 dEQP-VK.subgroups.quad.compute.subgroupquadswaphorizontal_bvec3
+dEQP-VK.subgroups.quad.compute.subgroupquadswaphorizontal_bvec3_requiredsubgroupsize
 dEQP-VK.subgroups.quad.compute.subgroupquadswapvertical_bvec3
+dEQP-VK.subgroups.quad.compute.subgroupquadswapvertical_bvec3_requiredsubgroupsize
 dEQP-VK.subgroups.quad.compute.subgroupquadswapdiagonal_bvec3
+dEQP-VK.subgroups.quad.compute.subgroupquadswapdiagonal_bvec3_requiredsubgroupsize
 dEQP-VK.subgroups.quad.compute.subgroupquadbroadcast_bvec4
+dEQP-VK.subgroups.quad.compute.subgroupquadbroadcast_bvec4_requiredsubgroupsize
 dEQP-VK.subgroups.quad.compute.subgroupquadbroadcast_nonconst_bvec4
+dEQP-VK.subgroups.quad.compute.subgroupquadbroadcast_nonconst_bvec4_requiredsubgroupsize
 dEQP-VK.subgroups.quad.compute.subgroupquadswaphorizontal_bvec4
+dEQP-VK.subgroups.quad.compute.subgroupquadswaphorizontal_bvec4_requiredsubgroupsize
 dEQP-VK.subgroups.quad.compute.subgroupquadswapvertical_bvec4
+dEQP-VK.subgroups.quad.compute.subgroupquadswapvertical_bvec4_requiredsubgroupsize
 dEQP-VK.subgroups.quad.compute.subgroupquadswapdiagonal_bvec4
+dEQP-VK.subgroups.quad.compute.subgroupquadswapdiagonal_bvec4_requiredsubgroupsize
 dEQP-VK.subgroups.quad.framebuffer.subgroupquadbroadcast_int8_t_vertex
 dEQP-VK.subgroups.quad.framebuffer.subgroupquadbroadcast_int8_t_tess_eval
 dEQP-VK.subgroups.quad.framebuffer.subgroupquadbroadcast_int8_t_tess_control
@@ -521971,7 +524621,9 @@ dEQP-VK.subgroups.quad.framebuffer.subgroupquadswapdiagonal_bvec4_geometry
 dEQP-VK.subgroups.shape.graphics.clustered
 dEQP-VK.subgroups.shape.graphics.quad
 dEQP-VK.subgroups.shape.compute.clustered
+dEQP-VK.subgroups.shape.compute.clustered_requiredsubgroupsize
 dEQP-VK.subgroups.shape.compute.quad
+dEQP-VK.subgroups.shape.compute.quad_requiredsubgroupsize
 dEQP-VK.subgroups.shape.framebuffer.clustered_vertex
 dEQP-VK.subgroups.shape.framebuffer.clustered_tess_eval
 dEQP-VK.subgroups.shape.framebuffer.clustered_tess_control
@@ -521986,10 +524638,15 @@ dEQP-VK.subgroups.ballot_mask.ext_shader_subgroup_ballot.graphics.gl_subgroupgtm
 dEQP-VK.subgroups.ballot_mask.ext_shader_subgroup_ballot.graphics.gl_subgrouplemaskarb
 dEQP-VK.subgroups.ballot_mask.ext_shader_subgroup_ballot.graphics.gl_subgroupltmaskarb
 dEQP-VK.subgroups.ballot_mask.ext_shader_subgroup_ballot.compute.gl_subgroupeqmaskarb
+dEQP-VK.subgroups.ballot_mask.ext_shader_subgroup_ballot.compute.gl_subgroupeqmaskarb_requiredsubgroupsize
 dEQP-VK.subgroups.ballot_mask.ext_shader_subgroup_ballot.compute.gl_subgroupgemaskarb
+dEQP-VK.subgroups.ballot_mask.ext_shader_subgroup_ballot.compute.gl_subgroupgemaskarb_requiredsubgroupsize
 dEQP-VK.subgroups.ballot_mask.ext_shader_subgroup_ballot.compute.gl_subgroupgtmaskarb
+dEQP-VK.subgroups.ballot_mask.ext_shader_subgroup_ballot.compute.gl_subgroupgtmaskarb_requiredsubgroupsize
 dEQP-VK.subgroups.ballot_mask.ext_shader_subgroup_ballot.compute.gl_subgrouplemaskarb
+dEQP-VK.subgroups.ballot_mask.ext_shader_subgroup_ballot.compute.gl_subgrouplemaskarb_requiredsubgroupsize
 dEQP-VK.subgroups.ballot_mask.ext_shader_subgroup_ballot.compute.gl_subgroupltmaskarb
+dEQP-VK.subgroups.ballot_mask.ext_shader_subgroup_ballot.compute.gl_subgroupltmaskarb_requiredsubgroupsize
 dEQP-VK.subgroups.ballot_mask.ext_shader_subgroup_ballot.framebuffer.gl_subgroupeqmaskarb_vertex
 dEQP-VK.subgroups.ballot_mask.ext_shader_subgroup_ballot.framebuffer.gl_subgroupeqmaskarb_tess_eval
 dEQP-VK.subgroups.ballot_mask.ext_shader_subgroup_ballot.framebuffer.gl_subgroupeqmaskarb_tess_control
@@ -522010,6 +524667,32 @@ dEQP-VK.subgroups.ballot_mask.ext_shader_subgroup_ballot.framebuffer.gl_subgroup
 dEQP-VK.subgroups.ballot_mask.ext_shader_subgroup_ballot.framebuffer.gl_subgroupltmaskarb_tess_eval
 dEQP-VK.subgroups.ballot_mask.ext_shader_subgroup_ballot.framebuffer.gl_subgroupltmaskarb_tess_control
 dEQP-VK.subgroups.ballot_mask.ext_shader_subgroup_ballot.framebuffer.gl_subgroupltmaskarb_geometry
+dEQP-VK.subgroups.size_control.generic.subgroup_size_properties
+dEQP-VK.subgroups.size_control.graphics.allow_varying_subgroup_size
+dEQP-VK.subgroups.size_control.graphics.required_subgroup_size_max
+dEQP-VK.subgroups.size_control.graphics.required_subgroup_size_min
+dEQP-VK.subgroups.size_control.compute.allow_varying_subgroup_size
+dEQP-VK.subgroups.size_control.compute.require_full_subgroups
+dEQP-VK.subgroups.size_control.compute.require_full_subgroups_allow_varying_subgroup_size
+dEQP-VK.subgroups.size_control.compute.required_subgroup_size_max
+dEQP-VK.subgroups.size_control.compute.required_subgroup_size_min
+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
+dEQP-VK.subgroups.size_control.framebuffer.vertex_allow_varying_subgroup_size
+dEQP-VK.subgroups.size_control.framebuffer.tess_eval_allow_varying_subgroup_size
+dEQP-VK.subgroups.size_control.framebuffer.tess_control_allow_varying_subgroup_size
+dEQP-VK.subgroups.size_control.framebuffer.geometry_allow_varying_subgroup_size
+dEQP-VK.subgroups.size_control.framebuffer.fragment_allow_varying_subgroup_size
+dEQP-VK.subgroups.size_control.framebuffer.vertex_required_subgroup_size_max
+dEQP-VK.subgroups.size_control.framebuffer.vertex_required_subgroup_size_min
+dEQP-VK.subgroups.size_control.framebuffer.tess_eval_required_subgroup_size_max
+dEQP-VK.subgroups.size_control.framebuffer.tess_eval_required_subgroup_size_min
+dEQP-VK.subgroups.size_control.framebuffer.tess_control_required_subgroup_size_max
+dEQP-VK.subgroups.size_control.framebuffer.tess_control_required_subgroup_size_min
+dEQP-VK.subgroups.size_control.framebuffer.geometry_required_subgroup_size_max
+dEQP-VK.subgroups.size_control.framebuffer.geometry_required_subgroup_size_min
+dEQP-VK.subgroups.size_control.framebuffer.fragment_required_subgroup_size_max
+dEQP-VK.subgroups.size_control.framebuffer.fragment_required_subgroup_size_min
 dEQP-VK.ycbcr.format.g8b8g8r8_422_unorm.vertex_optimal
 dEQP-VK.ycbcr.format.g8b8g8r8_422_unorm.vertex_optimal_array
 dEQP-VK.ycbcr.format.g8b8g8r8_422_unorm.vertex_linear
index 4c4dd5a..eb1e225 100644 (file)
@@ -33,6 +33,8 @@ set(DEQP_VK_SUBGROUPS_SRCS
   vktSubgroupsTestsUtils.hpp
   vktSubgroupsBallotMasksTests.cpp
   vktSubgroupsBallotMasksTests.hpp
+  vktSubgroupsSizeControlTests.cpp
+  vktSubgroupsSizeControlTests.hpp
   )
 
 set(DEQP_VK_SUBGROUPS_LIBS
index 207474d..833c71f 100755 (executable)
@@ -62,16 +62,18 @@ enum OpType
        OPTYPE_LAST
 };
 
-static bool checkVertexPipelineStages(std::vector<const void*> datas,
+static bool checkVertexPipelineStages(const void* internalData, std::vector<const void*> datas,
                                                                          deUint32 width, deUint32)
 {
+       DE_UNREF(internalData);
        return vkt::subgroups::check(datas, width, 0x3);
 }
 
-static bool checkCompute(std::vector<const void*> datas,
+static bool checkCompute(const void* internalData, std::vector<const void*> datas,
                                                 const deUint32 numWorkgroups[3], const deUint32 localSize[3],
                                                 deUint32)
 {
+       DE_UNREF(internalData);
        return vkt::subgroups::checkCompute(datas, numWorkgroups, localSize, 0x3);
 }
 
@@ -462,6 +464,7 @@ struct CaseDefinition
        VkShaderStageFlags      shaderStage;
        VkFormat                        format;
        de::SharedPtr<bool>     geometryPointSizeSupported;
+       deBool                          requiredSubgroupSize;
 };
 
 std::string getExtHeader(CaseDefinition caseDef)
@@ -616,6 +619,27 @@ void supportedCheck (Context& context, CaseDefinition caseDef)
        if (!subgroups::isFormatSupportedForDevice(context, caseDef.format))
                TCU_THROW(NotSupportedError, "Device does not support the specified format in subgroup operations");
 
+       if (caseDef.requiredSubgroupSize)
+       {
+               if (!context.requireDeviceFunctionality("VK_EXT_subgroup_size_control"))
+                       TCU_THROW(NotSupportedError, "Device does not support VK_EXT_subgroup_size_control extension");
+               VkPhysicalDeviceSubgroupSizeControlFeaturesEXT subgroupSizeControlFeatures;
+               subgroupSizeControlFeatures.sType = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBGROUP_SIZE_CONTROL_FEATURES_EXT;
+               subgroupSizeControlFeatures.pNext = DE_NULL;
+
+               VkPhysicalDeviceFeatures2 features;
+               features.sType = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FEATURES_2;
+               features.pNext = &subgroupSizeControlFeatures;
+
+               context.getInstanceInterface().getPhysicalDeviceFeatures2(context.getPhysicalDevice(), &features);
+
+               if (subgroupSizeControlFeatures.subgroupSizeControl == DE_FALSE)
+                       TCU_THROW(NotSupportedError, "Device does not support varying subgroup sizes nor required subgroup size");
+
+               if (subgroupSizeControlFeatures.computeFullSubgroups == DE_FALSE)
+                       TCU_THROW(NotSupportedError, "Device does not support full subgroups in compute shaders");
+       }
+
        *caseDef.geometryPointSizeSupported = subgroups::isTessellationAndGeometryPointSizeSupported(context);
 }
 
@@ -645,13 +669,13 @@ tcu::TestStatus noSSBOtest (Context& context, const CaseDefinition caseDef)
        inputData.initializeType = subgroups::SSBOData::InitializeNonZero;
 
        if (VK_SHADER_STAGE_VERTEX_BIT == caseDef.shaderStage)
-               return subgroups::makeVertexFrameBufferTest(context, VK_FORMAT_R32_UINT, &inputData, 1, checkVertexPipelineStages);
+               return subgroups::makeVertexFrameBufferTest(context, VK_FORMAT_R32_UINT, &inputData, 1, DE_NULL, checkVertexPipelineStages);
        else if (VK_SHADER_STAGE_GEOMETRY_BIT == caseDef.shaderStage)
-               return subgroups::makeGeometryFrameBufferTest(context, VK_FORMAT_R32_UINT, &inputData, 1, checkVertexPipelineStages);
+               return subgroups::makeGeometryFrameBufferTest(context, VK_FORMAT_R32_UINT, &inputData, 1, DE_NULL, checkVertexPipelineStages);
        else if (VK_SHADER_STAGE_TESSELLATION_CONTROL_BIT == caseDef.shaderStage)
-               return subgroups::makeTessellationEvaluationFrameBufferTest(context, VK_FORMAT_R32_UINT, &inputData, 1, checkVertexPipelineStages, VK_SHADER_STAGE_TESSELLATION_CONTROL_BIT);
+               return subgroups::makeTessellationEvaluationFrameBufferTest(context, VK_FORMAT_R32_UINT, &inputData, 1, DE_NULL, checkVertexPipelineStages, VK_SHADER_STAGE_TESSELLATION_CONTROL_BIT);
        else if (VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT == caseDef.shaderStage)
-               return subgroups::makeTessellationEvaluationFrameBufferTest(context, VK_FORMAT_R32_UINT, &inputData, 1, checkVertexPipelineStages, VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT);
+               return subgroups::makeTessellationEvaluationFrameBufferTest(context,  VK_FORMAT_R32_UINT, &inputData, 1, DE_NULL, checkVertexPipelineStages, VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT);
        else
                TCU_THROW(InternalError, "Unhandled shader stage");
 }
@@ -691,7 +715,35 @@ tcu::TestStatus test(Context& context, const CaseDefinition caseDef)
                inputData.numElements = subgroups::maxSupportedSubgroupSize();
                inputData.initializeType = subgroups::SSBOData::InitializeNonZero;
 
-               return subgroups::makeComputeTest(context, VK_FORMAT_R32_UINT, &inputData, 1, checkCompute);
+               if (caseDef.requiredSubgroupSize == DE_FALSE)
+                       return subgroups::makeComputeTest(context, VK_FORMAT_R32_UINT, &inputData, 1, DE_NULL, checkCompute);
+
+               tcu::TestLog& log = context.getTestContext().getLog();
+               VkPhysicalDeviceSubgroupSizeControlPropertiesEXT subgroupSizeControlProperties;
+               subgroupSizeControlProperties.sType = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBGROUP_SIZE_CONTROL_PROPERTIES_EXT;
+               subgroupSizeControlProperties.pNext = DE_NULL;
+               VkPhysicalDeviceProperties2 properties;
+               properties.sType = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROPERTIES_2;
+               properties.pNext = &subgroupSizeControlProperties;
+
+               context.getInstanceInterface().getPhysicalDeviceProperties2(context.getPhysicalDevice(), &properties);
+
+               log << tcu::TestLog::Message << "Testing required subgroup size range [" <<  subgroupSizeControlProperties.minSubgroupSize << ", "
+                       << subgroupSizeControlProperties.maxSubgroupSize << "]" << tcu::TestLog::EndMessage;
+
+               // According to the spec, requiredSubgroupSize must be a power-of-two integer.
+               for (deUint32 size = subgroupSizeControlProperties.minSubgroupSize; size <= subgroupSizeControlProperties.maxSubgroupSize; size *= 2)
+               {
+                       tcu::TestStatus result = subgroups::makeComputeTest(context, VK_FORMAT_R32_UINT, &inputData, 1, DE_NULL, checkCompute,
+                                                                                                                               size, VK_PIPELINE_SHADER_STAGE_CREATE_REQUIRE_FULL_SUBGROUPS_BIT_EXT);
+                       if (result.getCode() != QP_TEST_RESULT_PASS)
+                       {
+                               log << tcu::TestLog::Message << "subgroupSize " << size << " failed" << tcu::TestLog::EndMessage;
+                               return result;
+                       }
+               }
+
+               return tcu::TestStatus::pass("OK");
        }
        else
        {
@@ -726,7 +778,8 @@ tcu::TestStatus test(Context& context, const CaseDefinition caseDef)
                inputData.binding                       = 4u;
                inputData.stages                        = stages;
 
-               return subgroups::allStages(context, VK_FORMAT_R32_UINT, &inputData, 1, checkVertexPipelineStages, stages);
+               return subgroups::allStages(context, VK_FORMAT_R32_UINT, &inputData,
+                                                                       1, DE_NULL, checkVertexPipelineStages, stages);
        }
 }
 }
@@ -822,15 +875,20 @@ tcu::TestCaseGroup* createSubgroupsArithmeticTests(tcu::TestContext& testCtx)
                        std::string op = getOpTypeName(opTypeIndex);
 
                        {
-                               const CaseDefinition caseDef = {opTypeIndex, VK_SHADER_STAGE_COMPUTE_BIT, format, de::SharedPtr<bool>(new bool)};
+                               CaseDefinition caseDef = {opTypeIndex, VK_SHADER_STAGE_COMPUTE_BIT, format, de::SharedPtr<bool>(new bool), DE_FALSE};
                                addFunctionCaseWithPrograms(computeGroup.get(),
                                                                                        de::toLower(op) + "_" +
                                                                                        subgroups::getFormatNameForGLSL(format),
                                                                                        "", supportedCheck, initPrograms, test, caseDef);
+                               caseDef.requiredSubgroupSize = DE_TRUE;
+                               addFunctionCaseWithPrograms(computeGroup.get(),
+                                                                                       de::toLower(op) + "_" +
+                                                                                       subgroups::getFormatNameForGLSL(format) + "_requiredsubgroupsize",
+                                                                                       "", supportedCheck, initPrograms, test, caseDef);
                        }
 
                        {
-                               const CaseDefinition caseDef = {opTypeIndex, VK_SHADER_STAGE_ALL_GRAPHICS, format, de::SharedPtr<bool>(new bool)};
+                               const CaseDefinition caseDef = {opTypeIndex, VK_SHADER_STAGE_ALL_GRAPHICS, format, de::SharedPtr<bool>(new bool), DE_FALSE};
                                addFunctionCaseWithPrograms(graphicGroup.get(),
                                                                                        de::toLower(op) + "_" +
                                                                                        subgroups::getFormatNameForGLSL(format),
@@ -839,7 +897,7 @@ tcu::TestCaseGroup* createSubgroupsArithmeticTests(tcu::TestContext& testCtx)
 
                        for (int stageIndex = 0; stageIndex < DE_LENGTH_OF_ARRAY(stages); ++stageIndex)
                        {
-                               const CaseDefinition caseDef = {opTypeIndex, stages[stageIndex], format, de::SharedPtr<bool>(new bool)};
+                               const CaseDefinition caseDef = {opTypeIndex, stages[stageIndex], format, de::SharedPtr<bool>(new bool), DE_FALSE};
                                addFunctionCaseWithPrograms(framebufferGroup.get(), de::toLower(op) + "_" + subgroups::getFormatNameForGLSL(format) +
                                                                                        "_" + getShaderStageName(caseDef.shaderStage), "",
                                                                                        supportedCheck, initFrameBufferPrograms, noSSBOtest, caseDef);
index 96c92c2..bc518a6 100755 (executable)
@@ -44,16 +44,18 @@ enum OpType
        OPTYPE_LAST
 };
 
-static bool checkVertexPipelineStages(std::vector<const void*> datas,
+static bool checkVertexPipelineStages(const void* internalData, std::vector<const void*> datas,
                                                                          deUint32 width, deUint32)
 {
+       DE_UNREF(internalData);
        return vkt::subgroups::check(datas, width, 3);
 }
 
-static bool checkCompute(std::vector<const void*> datas,
+static bool checkCompute(const void* internalData, std::vector<const void*> datas,
                                                 const deUint32 numWorkgroups[3], const deUint32 localSize[3],
                                                 deUint32)
 {
+       DE_UNREF(internalData);
        return vkt::subgroups::checkCompute(datas, numWorkgroups, localSize, 3);
 }
 
@@ -81,6 +83,7 @@ struct CaseDefinition
        VkFormat                        format;
        de::SharedPtr<bool>     geometryPointSizeSupported;
        deBool                          extShaderSubGroupBallotTests;
+       deBool                          requiredSubgroupSize;
 };
 
 std::string getExtHeader(CaseDefinition caseDef)
@@ -262,7 +265,30 @@ void supportedCheck (Context& context, CaseDefinition caseDef)
        if ((caseDef.opType == OPTYPE_BROADCAST_NONCONST) && !subgroups::isSubgroupBroadcastDynamicIdSupported(context))
                TCU_THROW(NotSupportedError, "Device does not support SubgroupBroadcastDynamicId");
 
+       if (caseDef.requiredSubgroupSize)
+       {
+               if (!context.requireDeviceFunctionality("VK_EXT_subgroup_size_control"))
+                       TCU_THROW(NotSupportedError, "Device does not support VK_EXT_subgroup_size_control extension");
+               VkPhysicalDeviceSubgroupSizeControlFeaturesEXT subgroupSizeControlFeatures;
+               subgroupSizeControlFeatures.sType = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBGROUP_SIZE_CONTROL_FEATURES_EXT;
+               subgroupSizeControlFeatures.pNext = DE_NULL;
+
+               VkPhysicalDeviceFeatures2 features;
+               features.sType = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FEATURES_2;
+               features.pNext = &subgroupSizeControlFeatures;
+
+               context.getInstanceInterface().getPhysicalDeviceFeatures2(context.getPhysicalDevice(), &features);
+
+               if (subgroupSizeControlFeatures.subgroupSizeControl == DE_FALSE)
+                       TCU_THROW(NotSupportedError, "Device does not support varying subgroup sizes nor required subgroup size");
+
+               if (subgroupSizeControlFeatures.computeFullSubgroups == DE_FALSE)
+                       TCU_THROW(NotSupportedError, "Device does not support full subgroups in compute shaders");
+       }
+
        *caseDef.geometryPointSizeSupported = subgroups::isTessellationAndGeometryPointSizeSupported(context);
+
+
 }
 
 tcu::TestStatus noSSBOtest (Context& context, const CaseDefinition caseDef)
@@ -289,13 +315,13 @@ tcu::TestStatus noSSBOtest (Context& context, const CaseDefinition caseDef)
        inputData.initializeType = subgroups::SSBOData::InitializeNonZero;
 
        if (VK_SHADER_STAGE_VERTEX_BIT == caseDef.shaderStage)
-               return subgroups::makeVertexFrameBufferTest(context, VK_FORMAT_R32_UINT, &inputData, 1, checkVertexPipelineStages);
+               return subgroups::makeVertexFrameBufferTest(context, VK_FORMAT_R32_UINT, &inputData, 1, DE_NULL, checkVertexPipelineStages);
        else if (VK_SHADER_STAGE_GEOMETRY_BIT == caseDef.shaderStage)
-               return subgroups::makeGeometryFrameBufferTest(context, VK_FORMAT_R32_UINT, &inputData, 1, checkVertexPipelineStages);
+               return subgroups::makeGeometryFrameBufferTest(context, VK_FORMAT_R32_UINT, &inputData, 1, DE_NULL, checkVertexPipelineStages);
        else if (VK_SHADER_STAGE_TESSELLATION_CONTROL_BIT == caseDef.shaderStage)
-               return subgroups::makeTessellationEvaluationFrameBufferTest(context, VK_FORMAT_R32_UINT, &inputData, 1, checkVertexPipelineStages, VK_SHADER_STAGE_TESSELLATION_CONTROL_BIT);
+               return subgroups::makeTessellationEvaluationFrameBufferTest(context, VK_FORMAT_R32_UINT, &inputData, 1, DE_NULL, checkVertexPipelineStages, VK_SHADER_STAGE_TESSELLATION_CONTROL_BIT);
        else if (VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT == caseDef.shaderStage)
-               return subgroups::makeTessellationEvaluationFrameBufferTest(context, VK_FORMAT_R32_UINT, &inputData, 1, checkVertexPipelineStages, VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT);
+               return subgroups::makeTessellationEvaluationFrameBufferTest(context, VK_FORMAT_R32_UINT, &inputData, 1, DE_NULL, checkVertexPipelineStages, VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT);
        else
                TCU_THROW(InternalError, "Unhandled shader stage");
 }
@@ -318,7 +344,35 @@ tcu::TestStatus test(Context& context, const CaseDefinition caseDef)
                inputData.numElements = caseDef.extShaderSubGroupBallotTests ? 64u : subgroups::maxSupportedSubgroupSize();
                inputData.initializeType = subgroups::SSBOData::InitializeNonZero;
 
-               return subgroups::makeComputeTest(context, VK_FORMAT_R32_UINT, &inputData, 1, checkCompute);
+               if (caseDef.requiredSubgroupSize == DE_FALSE)
+                       return subgroups::makeComputeTest(context, VK_FORMAT_R32_UINT, &inputData, 1, DE_NULL, checkCompute);
+
+               tcu::TestLog& log       = context.getTestContext().getLog();
+               VkPhysicalDeviceSubgroupSizeControlPropertiesEXT subgroupSizeControlProperties;
+               subgroupSizeControlProperties.sType = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBGROUP_SIZE_CONTROL_PROPERTIES_EXT;
+               subgroupSizeControlProperties.pNext = DE_NULL;
+               VkPhysicalDeviceProperties2 properties;
+               properties.sType = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROPERTIES_2;
+               properties.pNext = &subgroupSizeControlProperties;
+
+               context.getInstanceInterface().getPhysicalDeviceProperties2(context.getPhysicalDevice(), &properties);
+
+               log << tcu::TestLog::Message << "Testing required subgroup size range [" <<  subgroupSizeControlProperties.minSubgroupSize << ", "
+                       << subgroupSizeControlProperties.maxSubgroupSize << "]" << tcu::TestLog::EndMessage;
+
+               // According to the spec, requiredSubgroupSize must be a power-of-two integer.
+               for (deUint32 size = subgroupSizeControlProperties.minSubgroupSize; size <= subgroupSizeControlProperties.maxSubgroupSize; size *= 2)
+               {
+                       tcu::TestStatus result = subgroups::makeComputeTest(context, VK_FORMAT_R32_UINT, &inputData, 1, DE_NULL, checkCompute,
+                                                                                                                               size, VK_PIPELINE_SHADER_STAGE_CREATE_REQUIRE_FULL_SUBGROUPS_BIT_EXT);
+                       if (result.getCode() != QP_TEST_RESULT_PASS)
+                       {
+                               log << tcu::TestLog::Message << "subgroupSize " << size << " failed" << tcu::TestLog::EndMessage;
+                               return result;
+                       }
+               }
+
+               return tcu::TestStatus::pass("OK");
        }
        else
        {
@@ -353,7 +407,7 @@ tcu::TestStatus test(Context& context, const CaseDefinition caseDef)
                inputData.binding                       = 4u;
                inputData.stages                        = stages;
 
-               return subgroups::allStages(context, VK_FORMAT_R32_UINT, &inputData, 1, checkVertexPipelineStages, stages);
+               return subgroups::allStages(context, VK_FORMAT_R32_UINT, &inputData, 1, DE_NULL, checkVertexPipelineStages, stages);
        }
 }
 }
@@ -400,16 +454,22 @@ tcu::TestCaseGroup* createSubgroupsBallotBroadcastTests(tcu::TestContext& testCt
                        const std::string name = getOpTypeCaseName(opTypeIndex) + "_" + subgroups::getFormatNameForGLSL(format);
 
                        {
-                               CaseDefinition caseDef = {opTypeIndex, VK_SHADER_STAGE_COMPUTE_BIT, format, de::SharedPtr<bool>(new bool), DE_FALSE};
+                               CaseDefinition caseDef = {opTypeIndex, VK_SHADER_STAGE_COMPUTE_BIT, format, de::SharedPtr<bool>(new bool), DE_FALSE, DE_FALSE};
                                addFunctionCaseWithPrograms(computeGroup.get(), name, "", supportedCheck, initPrograms, test, caseDef);
                                caseDef.extShaderSubGroupBallotTests = DE_TRUE;
                                if (formatTypeIsSupportedARB)
                                        addFunctionCaseWithPrograms(computeGroupARB.get(), name, "", supportedCheck, initPrograms, test, caseDef);
 
+                               caseDef.extShaderSubGroupBallotTests = DE_FALSE;
+                               caseDef.requiredSubgroupSize = DE_TRUE;
+                               addFunctionCaseWithPrograms(computeGroup.get(), name + "_requiredsubgroupsize", "", supportedCheck, initPrograms, test, caseDef);
+                               caseDef.extShaderSubGroupBallotTests = DE_TRUE;
+                               if (formatTypeIsSupportedARB)
+                                       addFunctionCaseWithPrograms(computeGroupARB.get(), name + "_requiredsubgroupsize", "", supportedCheck, initPrograms, test, caseDef);
                        }
 
                        {
-                               CaseDefinition caseDef = {opTypeIndex, VK_SHADER_STAGE_ALL_GRAPHICS, format, de::SharedPtr<bool>(new bool), DE_FALSE};
+                               CaseDefinition caseDef = {opTypeIndex, VK_SHADER_STAGE_ALL_GRAPHICS, format, de::SharedPtr<bool>(new bool), DE_FALSE, DE_FALSE};
                                addFunctionCaseWithPrograms(graphicGroup.get(), name, "", supportedCheck, initPrograms, test, caseDef);
                                caseDef.extShaderSubGroupBallotTests = DE_TRUE;
                                if (formatTypeIsSupportedARB)
@@ -419,7 +479,7 @@ tcu::TestCaseGroup* createSubgroupsBallotBroadcastTests(tcu::TestContext& testCt
 
                        for (int stageIndex = 0; stageIndex < DE_LENGTH_OF_ARRAY(stages); ++stageIndex)
                        {
-                               CaseDefinition caseDef = {opTypeIndex, stages[stageIndex], format, de::SharedPtr<bool>(new bool), DE_FALSE};
+                               CaseDefinition caseDef = {opTypeIndex, stages[stageIndex], format, de::SharedPtr<bool>(new bool), DE_FALSE, DE_FALSE};
                                addFunctionCaseWithPrograms(framebufferGroup.get(), name + getShaderStageName(caseDef.shaderStage), "",
                                                        supportedCheck, initFrameBufferPrograms, noSSBOtest, caseDef);
                                caseDef.extShaderSubGroupBallotTests = DE_TRUE;
index 9894e76..fa6b9d4 100755 (executable)
@@ -46,16 +46,18 @@ enum MaskType
        MASKTYPE_LAST
 };
 
-static bool checkVertexPipelineStages(std::vector<const void*> datas,
+static bool checkVertexPipelineStages(const void* internalData, std::vector<const void*> datas,
                                                                          deUint32 width, deUint32)
 {
+       DE_UNREF(internalData);
        return vkt::subgroups::check(datas, width, 0xf);
 }
 
-static bool checkCompute(std::vector<const void*> datas,
+static bool checkCompute(const void* internalData, std::vector<const void*> datas,
                                                 const deUint32 numWorkgroups[3], const deUint32 localSize[3],
                                                 deUint32)
 {
+       DE_UNREF(internalData);
        return vkt::subgroups::checkCompute(datas, numWorkgroups, localSize, 0xf);
 }
 
@@ -85,6 +87,7 @@ struct CaseDefinition
        int                                     maskType;
        VkShaderStageFlags      shaderStage;
        de::SharedPtr<bool>     geometryPointSizeSupported;
+       deBool                          requiredSubgroupSize;
 };
 
 std::string getBodySource(CaseDefinition caseDef)
@@ -398,6 +401,27 @@ void supportedCheck (Context& context, CaseDefinition caseDef)
        if (!subgroups::isInt64SupportedForDevice(context))
                TCU_THROW(NotSupportedError, "Int64 is not supported");
 
+       if (caseDef.requiredSubgroupSize)
+       {
+               if (!context.requireDeviceFunctionality("VK_EXT_subgroup_size_control"))
+                       TCU_THROW(NotSupportedError, "Device does not support VK_EXT_subgroup_size_control extension");
+               VkPhysicalDeviceSubgroupSizeControlFeaturesEXT subgroupSizeControlFeatures;
+               subgroupSizeControlFeatures.sType = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBGROUP_SIZE_CONTROL_FEATURES_EXT;
+               subgroupSizeControlFeatures.pNext = DE_NULL;
+
+               VkPhysicalDeviceFeatures2 features;
+               features.sType = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FEATURES_2;
+               features.pNext = &subgroupSizeControlFeatures;
+
+               context.getInstanceInterface().getPhysicalDeviceFeatures2(context.getPhysicalDevice(), &features);
+
+               if (subgroupSizeControlFeatures.subgroupSizeControl == DE_FALSE)
+                       TCU_THROW(NotSupportedError, "Device does not support varying subgroup sizes nor required subgroup size");
+
+               if (subgroupSizeControlFeatures.computeFullSubgroups == DE_FALSE)
+                       TCU_THROW(NotSupportedError, "Device does not support full subgroups in compute shaders");
+       }
+
        *caseDef.geometryPointSizeSupported = subgroups::isTessellationAndGeometryPointSizeSupported(context);
 }
 
@@ -420,11 +444,11 @@ tcu::TestStatus noSSBOtest (Context& context, const CaseDefinition caseDef)
        }
 
        if (VK_SHADER_STAGE_VERTEX_BIT == caseDef.shaderStage)
-               return subgroups::makeVertexFrameBufferTest(context, VK_FORMAT_R32_UINT, DE_NULL, 0, checkVertexPipelineStages);
+               return subgroups::makeVertexFrameBufferTest(context, VK_FORMAT_R32_UINT, DE_NULL, 0, DE_NULL, checkVertexPipelineStages);
        else if (VK_SHADER_STAGE_GEOMETRY_BIT == caseDef.shaderStage)
-               return subgroups::makeGeometryFrameBufferTest(context, VK_FORMAT_R32_UINT, DE_NULL, 0, checkVertexPipelineStages);
+               return subgroups::makeGeometryFrameBufferTest(context, VK_FORMAT_R32_UINT, DE_NULL, 0, DE_NULL, checkVertexPipelineStages);
        else if ((VK_SHADER_STAGE_TESSELLATION_CONTROL_BIT | VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT) & caseDef.shaderStage)
-               return subgroups::makeTessellationEvaluationFrameBufferTest(context, VK_FORMAT_R32_UINT, DE_NULL, 0, checkVertexPipelineStages);
+               return subgroups::makeTessellationEvaluationFrameBufferTest(context, VK_FORMAT_R32_UINT, DE_NULL, 0, DE_NULL, checkVertexPipelineStages);
        else
                TCU_THROW(InternalError, "Unhandled shader stage");
 }
@@ -440,7 +464,35 @@ tcu::TestStatus test (Context& context, const CaseDefinition caseDef)
                                subgroups::getShaderStageName(caseDef.shaderStage) +
                                " is required to support subgroup operations!");
                }
-               return subgroups::makeComputeTest(context, VK_FORMAT_R32_UINT, DE_NULL, 0, checkCompute);
+               if (caseDef.requiredSubgroupSize == DE_FALSE)
+                       return subgroups::makeComputeTest(context, VK_FORMAT_R32_UINT, DE_NULL, 0, DE_NULL, checkCompute);
+
+               tcu::TestLog& log       = context.getTestContext().getLog();
+               VkPhysicalDeviceSubgroupSizeControlPropertiesEXT subgroupSizeControlProperties;
+               subgroupSizeControlProperties.sType = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBGROUP_SIZE_CONTROL_PROPERTIES_EXT;
+               subgroupSizeControlProperties.pNext = DE_NULL;
+               VkPhysicalDeviceProperties2 properties;
+               properties.sType = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROPERTIES_2;
+               properties.pNext = &subgroupSizeControlProperties;
+
+               context.getInstanceInterface().getPhysicalDeviceProperties2(context.getPhysicalDevice(), &properties);
+
+               log << tcu::TestLog::Message << "Testing required subgroup size range [" <<  subgroupSizeControlProperties.minSubgroupSize << ", "
+                       << subgroupSizeControlProperties.maxSubgroupSize << "]" << tcu::TestLog::EndMessage;
+
+               // According to the spec, requiredSubgroupSize must be a power-of-two integer.
+               for (deUint32 size = subgroupSizeControlProperties.minSubgroupSize; size <= subgroupSizeControlProperties.maxSubgroupSize; size *= 2)
+               {
+                       tcu::TestStatus result = subgroups::makeComputeTest(context, VK_FORMAT_R32_UINT, DE_NULL, 0u, DE_NULL, checkCompute,
+                                                                                                                               size, VK_PIPELINE_SHADER_STAGE_CREATE_REQUIRE_FULL_SUBGROUPS_BIT_EXT);
+                       if (result.getCode() != QP_TEST_RESULT_PASS)
+                       {
+                               log << tcu::TestLog::Message << "subgroupSize " << size << " failed" << tcu::TestLog::EndMessage;
+                               return result;
+                       }
+               }
+
+               return tcu::TestStatus::pass("OK");
        }
        else
        {
@@ -467,7 +519,7 @@ tcu::TestStatus test (Context& context, const CaseDefinition caseDef)
                if ((VkShaderStageFlagBits)0u == stages)
                        TCU_THROW(NotSupportedError, "Subgroup operations are not supported for any graphic shader");
 
-               return subgroups::allStages(context, VK_FORMAT_R32_UINT, DE_NULL, 0, checkVertexPipelineStages, stages);
+               return subgroups::allStages(context, VK_FORMAT_R32_UINT, DE_NULL, 0, DE_NULL, checkVertexPipelineStages, stages);
        }
        return tcu::TestStatus::pass("OK");
 }
@@ -498,18 +550,20 @@ tcu::TestCaseGroup* createSubgroupsBallotMasksTests(tcu::TestContext& testCtx)
                const string mask = de::toLower(getMaskTypeName(maskTypeIndex));
 
                {
-                       const CaseDefinition caseDef = {maskTypeIndex, VK_SHADER_STAGE_COMPUTE_BIT, de::SharedPtr<bool>(new bool)};
+                       CaseDefinition caseDef = {maskTypeIndex, VK_SHADER_STAGE_COMPUTE_BIT, de::SharedPtr<bool>(new bool), DE_FALSE};
                        addFunctionCaseWithPrograms(computeGroup.get(), mask, "", supportedCheck, initPrograms, test, caseDef);
+                       caseDef.requiredSubgroupSize = DE_TRUE;
+                       addFunctionCaseWithPrograms(computeGroup.get(), mask + "_requiredsubgroupsize", "", supportedCheck, initPrograms, test, caseDef);
                }
 
                {
-                       const CaseDefinition caseDef = {maskTypeIndex, VK_SHADER_STAGE_ALL_GRAPHICS, de::SharedPtr<bool>(new bool)};
+                       const CaseDefinition caseDef = {maskTypeIndex, VK_SHADER_STAGE_ALL_GRAPHICS, de::SharedPtr<bool>(new bool), DE_FALSE};
                        addFunctionCaseWithPrograms(graphicGroup.get(), mask, "", supportedCheck, initPrograms, test, caseDef);
                }
 
                for (int stageIndex = 0; stageIndex < DE_LENGTH_OF_ARRAY(stages); ++stageIndex)
                {
-                       const CaseDefinition caseDef = {maskTypeIndex, stages[stageIndex], de::SharedPtr<bool>(new bool)};
+                       const CaseDefinition caseDef = {maskTypeIndex, stages[stageIndex], de::SharedPtr<bool>(new bool), DE_FALSE};
                        addFunctionCaseWithPrograms(framebufferGroup.get(), mask + "_" + getShaderStageName(caseDef.shaderStage), "", supportedCheck, initFrameBufferPrograms, noSSBOtest, caseDef);
                }
        }
index 9aaf27d..de322b8 100755 (executable)
@@ -48,16 +48,18 @@ enum OpType
        OPTYPE_LAST
 };
 
-static bool checkVertexPipelineStages(std::vector<const void*> datas,
+static bool checkVertexPipelineStages(const void* internalData, std::vector<const void*> datas,
                                                                          deUint32 width, deUint32)
 {
+       DE_UNREF(internalData);
        return vkt::subgroups::check(datas, width, 0xf);
 }
 
-static bool checkCompute(std::vector<const void*> datas,
+static bool checkCompute(const void* internalData, std::vector<const void*> datas,
                                                 const deUint32 numWorkgroups[3], const deUint32 localSize[3],
                                                 deUint32)
 {
+       DE_UNREF(internalData);
        return vkt::subgroups::checkCompute(datas, numWorkgroups, localSize, 0xf);
 }
 
@@ -90,6 +92,7 @@ struct CaseDefinition
        int                                     opType;
        VkShaderStageFlags      shaderStage;
        de::SharedPtr<bool>     geometryPointSizeSupported;
+       deBool                          requiredSubgroupSize;
 };
 
 std::string getBodySource(CaseDefinition caseDef)
@@ -482,6 +485,27 @@ void supportedCheck (Context& context, CaseDefinition caseDef)
                TCU_THROW(NotSupportedError, "Device does not support subgroup ballot operations");
        }
 
+       if (caseDef.requiredSubgroupSize)
+       {
+               if (!context.requireDeviceFunctionality("VK_EXT_subgroup_size_control"))
+                       TCU_THROW(NotSupportedError, "Device does not support VK_EXT_subgroup_size_control extension");
+               VkPhysicalDeviceSubgroupSizeControlFeaturesEXT subgroupSizeControlFeatures;
+               subgroupSizeControlFeatures.sType = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBGROUP_SIZE_CONTROL_FEATURES_EXT;
+               subgroupSizeControlFeatures.pNext = DE_NULL;
+
+               VkPhysicalDeviceFeatures2 features;
+               features.sType = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FEATURES_2;
+               features.pNext = &subgroupSizeControlFeatures;
+
+               context.getInstanceInterface().getPhysicalDeviceFeatures2(context.getPhysicalDevice(), &features);
+
+               if (subgroupSizeControlFeatures.subgroupSizeControl == DE_FALSE)
+                       TCU_THROW(NotSupportedError, "Device does not support varying subgroup sizes nor required subgroup size");
+
+               if (subgroupSizeControlFeatures.computeFullSubgroups == DE_FALSE)
+                       TCU_THROW(NotSupportedError, "Device does not support full subgroups in compute shaders");
+       }
+
        *caseDef.geometryPointSizeSupported = subgroups::isTessellationAndGeometryPointSizeSupported(context);
 }
 
@@ -504,11 +528,11 @@ tcu::TestStatus noSSBOtest (Context& context, const CaseDefinition caseDef)
        }
 
        if (VK_SHADER_STAGE_VERTEX_BIT == caseDef.shaderStage)
-               return subgroups::makeVertexFrameBufferTest(context, VK_FORMAT_R32_UINT, DE_NULL, 0, checkVertexPipelineStages);
+               return subgroups::makeVertexFrameBufferTest(context, VK_FORMAT_R32_UINT, DE_NULL, 0, DE_NULL, checkVertexPipelineStages);
        else if (VK_SHADER_STAGE_GEOMETRY_BIT == caseDef.shaderStage)
-               return subgroups::makeGeometryFrameBufferTest(context, VK_FORMAT_R32_UINT, DE_NULL, 0, checkVertexPipelineStages);
+               return subgroups::makeGeometryFrameBufferTest(context, VK_FORMAT_R32_UINT, DE_NULL, 0, DE_NULL, checkVertexPipelineStages);
        else if ((VK_SHADER_STAGE_TESSELLATION_CONTROL_BIT | VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT) & caseDef.shaderStage)
-               return subgroups::makeTessellationEvaluationFrameBufferTest(context, VK_FORMAT_R32_UINT, DE_NULL, 0, checkVertexPipelineStages);
+               return subgroups::makeTessellationEvaluationFrameBufferTest(context, VK_FORMAT_R32_UINT, DE_NULL, 0, DE_NULL, checkVertexPipelineStages);
        else
                TCU_THROW(InternalError, "Unhandled shader stage");
 }
@@ -524,7 +548,35 @@ tcu::TestStatus test (Context& context, const CaseDefinition caseDef)
                                subgroups::getShaderStageName(caseDef.shaderStage) +
                                " is required to support subgroup operations!");
                }
-               return subgroups::makeComputeTest(context, VK_FORMAT_R32_UINT, DE_NULL, 0, checkCompute);
+               if (caseDef.requiredSubgroupSize == DE_FALSE)
+                       return subgroups::makeComputeTest(context, VK_FORMAT_R32_UINT, DE_NULL, 0, DE_NULL, checkCompute);
+
+               tcu::TestLog& log       = context.getTestContext().getLog();
+               VkPhysicalDeviceSubgroupSizeControlPropertiesEXT subgroupSizeControlProperties;
+               subgroupSizeControlProperties.sType = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBGROUP_SIZE_CONTROL_PROPERTIES_EXT;
+               subgroupSizeControlProperties.pNext = DE_NULL;
+               VkPhysicalDeviceProperties2 properties;
+               properties.sType = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROPERTIES_2;
+               properties.pNext = &subgroupSizeControlProperties;
+
+               context.getInstanceInterface().getPhysicalDeviceProperties2(context.getPhysicalDevice(), &properties);
+
+               log << tcu::TestLog::Message << "Testing required subgroup size range [" <<  subgroupSizeControlProperties.minSubgroupSize << ", "
+                       << subgroupSizeControlProperties.maxSubgroupSize << "]" << tcu::TestLog::EndMessage;
+
+               // According to the spec, requiredSubgroupSize must be a power-of-two integer.
+               for (deUint32 size = subgroupSizeControlProperties.minSubgroupSize; size <= subgroupSizeControlProperties.maxSubgroupSize; size *= 2)
+               {
+                       tcu::TestStatus result = subgroups::makeComputeTest(context, VK_FORMAT_R32_UINT, DE_NULL, 0u, DE_NULL, checkCompute,
+                                                                                                                               size, VK_PIPELINE_SHADER_STAGE_CREATE_REQUIRE_FULL_SUBGROUPS_BIT_EXT);
+                       if (result.getCode() != QP_TEST_RESULT_PASS)
+                       {
+                               log << tcu::TestLog::Message << "subgroupSize " << size << " failed" << tcu::TestLog::EndMessage;
+                               return result;
+                       }
+               }
+
+               return tcu::TestStatus::pass("OK");
        }
        else
        {
@@ -551,7 +603,7 @@ tcu::TestStatus test (Context& context, const CaseDefinition caseDef)
                if ((VkShaderStageFlagBits)0u == stages)
                        TCU_THROW(NotSupportedError, "Subgroup operations are not supported for any graphic shader");
 
-               return subgroups::allStages(context, VK_FORMAT_R32_UINT, DE_NULL, 0, checkVertexPipelineStages, stages);
+               return subgroups::allStages(context, VK_FORMAT_R32_UINT, DE_NULL, 0, DE_NULL, checkVertexPipelineStages, stages);
        }
        return tcu::TestStatus::pass("OK");
 }
@@ -582,18 +634,20 @@ tcu::TestCaseGroup* createSubgroupsBallotOtherTests(tcu::TestContext& testCtx)
        {
                const string op = de::toLower(getOpTypeName(opTypeIndex));
                {
-                       const CaseDefinition caseDef = {opTypeIndex, VK_SHADER_STAGE_COMPUTE_BIT, de::SharedPtr<bool>(new bool)};
+                       CaseDefinition caseDef = {opTypeIndex, VK_SHADER_STAGE_COMPUTE_BIT, de::SharedPtr<bool>(new bool), DE_FALSE};
                        addFunctionCaseWithPrograms(computeGroup.get(), op, "", supportedCheck, initPrograms, test, caseDef);
+                       caseDef.requiredSubgroupSize = DE_TRUE;
+                       addFunctionCaseWithPrograms(computeGroup.get(), op + "_requiredsubgroupSize", "", supportedCheck, initPrograms, test, caseDef);
                }
 
                {
-                       const CaseDefinition caseDef = {opTypeIndex, VK_SHADER_STAGE_ALL_GRAPHICS, de::SharedPtr<bool>(new bool)};
+                       const CaseDefinition caseDef = {opTypeIndex, VK_SHADER_STAGE_ALL_GRAPHICS, de::SharedPtr<bool>(new bool), DE_FALSE};
                        addFunctionCaseWithPrograms(graphicGroup.get(), op, "", supportedCheck, initPrograms, test, caseDef);
                }
 
                for (int stageIndex = 0; stageIndex < DE_LENGTH_OF_ARRAY(stages); ++stageIndex)
                {
-                       const CaseDefinition caseDef = {opTypeIndex, stages[stageIndex], de::SharedPtr<bool>(new bool)};
+                       const CaseDefinition caseDef = {opTypeIndex, stages[stageIndex], de::SharedPtr<bool>(new bool), DE_FALSE};
                        addFunctionCaseWithPrograms(framebufferGroup.get(), op + "_" + getShaderStageName(caseDef.shaderStage), "", supportedCheck, initFrameBufferPrograms, noSSBOtest, caseDef);
                }
        }
index 9f6c0e1..11ccf89 100755 (executable)
@@ -36,16 +36,18 @@ using namespace vkt;
 
 namespace
 {
-static bool checkVertexPipelineStages(std::vector<const void*> datas,
+static bool checkVertexPipelineStages(const void* internalData, std::vector<const void*> datas,
                                                                          deUint32 width, deUint32)
 {
+       DE_UNREF(internalData);
        return vkt::subgroups::check(datas, width, 0x7);
 }
 
-static bool checkCompute(std::vector<const void*> datas,
+static bool checkCompute(const void* internalData, std::vector<const void*> datas,
                                                 const deUint32 numWorkgroups[3], const deUint32 localSize[3],
                                                 deUint32)
 {
+       DE_UNREF(internalData);
        return vkt::subgroups::checkCompute(datas, numWorkgroups, localSize, 0x7);
 }
 
@@ -54,8 +56,10 @@ struct CaseDefinition
        VkShaderStageFlags      shaderStage;
        de::SharedPtr<bool>     geometryPointSizeSupported;
        deBool                          extShaderSubGroupBallotTests;
+       deBool                          requiredSubgroupSize;
 };
 
+
 void initFrameBufferPrograms(SourceCollections& programCollection, CaseDefinition caseDef)
 {
        const vk::SpirVAsmBuildOptions  buildOptionsSpr (programCollection.usedVulkanVersion, vk::SPIRV_VERSION_1_3);
@@ -913,6 +917,27 @@ void supportedCheck (Context& context, CaseDefinition caseDef)
                TCU_THROW(NotSupportedError, "Device does not support int64 data types");
        }
 
+       if (caseDef.requiredSubgroupSize)
+       {
+               if (!context.requireDeviceFunctionality("VK_EXT_subgroup_size_control"))
+                       TCU_THROW(NotSupportedError, "Device does not support VK_EXT_subgroup_size_control extension");
+               VkPhysicalDeviceSubgroupSizeControlFeaturesEXT subgroupSizeControlFeatures;
+               subgroupSizeControlFeatures.sType = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBGROUP_SIZE_CONTROL_FEATURES_EXT;
+               subgroupSizeControlFeatures.pNext = DE_NULL;
+
+               VkPhysicalDeviceFeatures2 features;
+               features.sType = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FEATURES_2;
+               features.pNext = &subgroupSizeControlFeatures;
+
+               context.getInstanceInterface().getPhysicalDeviceFeatures2(context.getPhysicalDevice(), &features);
+
+               if (subgroupSizeControlFeatures.subgroupSizeControl == DE_FALSE)
+                       TCU_THROW(NotSupportedError, "Device does not support varying subgroup sizes nor required subgroup size");
+
+               if (subgroupSizeControlFeatures.computeFullSubgroups == DE_FALSE)
+                       TCU_THROW(NotSupportedError, "Device does not support full subgroups in compute shaders");
+       }
+
        *caseDef.geometryPointSizeSupported = subgroups::isTessellationAndGeometryPointSizeSupported(context);
 }
 
@@ -941,13 +966,13 @@ tcu::TestStatus noSSBOtest (Context& context, const CaseDefinition caseDef)
        inputData[0].initializeType = subgroups::SSBOData::InitializeNonZero;
 
        if (VK_SHADER_STAGE_VERTEX_BIT == caseDef.shaderStage)
-               return subgroups::makeVertexFrameBufferTest(context, VK_FORMAT_R32_UINT, inputData, 1, checkVertexPipelineStages);
+               return subgroups::makeVertexFrameBufferTest(context, VK_FORMAT_R32_UINT, inputData, 1, DE_NULL, checkVertexPipelineStages);
        else if (VK_SHADER_STAGE_GEOMETRY_BIT == caseDef.shaderStage)
-               return subgroups::makeGeometryFrameBufferTest(context, VK_FORMAT_R32_UINT, inputData, 1, checkVertexPipelineStages);
+               return subgroups::makeGeometryFrameBufferTest(context, VK_FORMAT_R32_UINT, inputData, 1, DE_NULL, checkVertexPipelineStages);
        else if (VK_SHADER_STAGE_TESSELLATION_CONTROL_BIT == caseDef.shaderStage)
-               return subgroups::makeTessellationEvaluationFrameBufferTest(context, VK_FORMAT_R32_UINT, inputData, 1, checkVertexPipelineStages, VK_SHADER_STAGE_TESSELLATION_CONTROL_BIT);
+               return subgroups::makeTessellationEvaluationFrameBufferTest(context, VK_FORMAT_R32_UINT, inputData, 1, DE_NULL, checkVertexPipelineStages, VK_SHADER_STAGE_TESSELLATION_CONTROL_BIT);
        else if (VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT == caseDef.shaderStage)
-               return subgroups::makeTessellationEvaluationFrameBufferTest(context, VK_FORMAT_R32_UINT, inputData, 1, checkVertexPipelineStages, VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT);
+               return subgroups::makeTessellationEvaluationFrameBufferTest(context, VK_FORMAT_R32_UINT, inputData, 1, DE_NULL, checkVertexPipelineStages, VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT);
        else
                TCU_THROW(InternalError, "Unhandled shader stage");
 }
@@ -969,7 +994,35 @@ tcu::TestStatus test(Context& context, const CaseDefinition caseDef)
                inputData[0].numElements = subgroups::maxSupportedSubgroupSize();
                inputData[0].initializeType = subgroups::SSBOData::InitializeNonZero;
 
-               return subgroups::makeComputeTest(context, VK_FORMAT_R32_UINT, inputData, 1, checkCompute);
+               if (caseDef.requiredSubgroupSize == DE_FALSE)
+                       return subgroups::makeComputeTest(context, VK_FORMAT_R32_UINT, inputData, 1, DE_NULL, checkCompute);
+
+               tcu::TestLog& log       = context.getTestContext().getLog();
+               VkPhysicalDeviceSubgroupSizeControlPropertiesEXT subgroupSizeControlProperties;
+               subgroupSizeControlProperties.sType = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBGROUP_SIZE_CONTROL_PROPERTIES_EXT;
+               subgroupSizeControlProperties.pNext = DE_NULL;
+               VkPhysicalDeviceProperties2 properties;
+               properties.sType = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROPERTIES_2;
+               properties.pNext = &subgroupSizeControlProperties;
+
+               context.getInstanceInterface().getPhysicalDeviceProperties2(context.getPhysicalDevice(), &properties);
+
+               log << tcu::TestLog::Message << "Testing required subgroup size range [" <<  subgroupSizeControlProperties.minSubgroupSize << ", "
+                       << subgroupSizeControlProperties.maxSubgroupSize << "]" << tcu::TestLog::EndMessage;
+
+               // According to the spec, requiredSubgroupSize must be a power-of-two integer.
+               for (deUint32 size = subgroupSizeControlProperties.minSubgroupSize; size <= subgroupSizeControlProperties.maxSubgroupSize; size *= 2)
+               {
+                       tcu::TestStatus result = subgroups::makeComputeTest(context, VK_FORMAT_R32_UINT, inputData, 1, DE_NULL, checkCompute,
+                                                                                                                               size, VK_PIPELINE_SHADER_STAGE_CREATE_REQUIRE_FULL_SUBGROUPS_BIT_EXT);
+                       if (result.getCode() != QP_TEST_RESULT_PASS)
+                       {
+                               log << tcu::TestLog::Message << "subgroupSize " << size << " failed" << tcu::TestLog::EndMessage;
+                               return result;
+                       }
+               }
+
+               return tcu::TestStatus::pass("OK");
        }
        else
        {
@@ -1004,7 +1057,7 @@ tcu::TestStatus test(Context& context, const CaseDefinition caseDef)
                inputData.binding                       = 4u;
                inputData.stages                        = stages;
 
-               return subgroups::allStages(context, VK_FORMAT_R32_UINT, &inputData, 1, checkVertexPipelineStages, stages);
+               return subgroups::allStages(context, VK_FORMAT_R32_UINT, &inputData, 1, DE_NULL, checkVertexPipelineStages, stages);
        }
 }
 }
@@ -1037,16 +1090,22 @@ tcu::TestCaseGroup* createSubgroupsBallotTests(tcu::TestContext& testCtx)
                VK_SHADER_STAGE_VERTEX_BIT
        };
 
+
        {
-               CaseDefinition caseDef = {VK_SHADER_STAGE_COMPUTE_BIT, de::SharedPtr<bool>(new bool), DE_FALSE};
+               CaseDefinition caseDef = {VK_SHADER_STAGE_COMPUTE_BIT, de::SharedPtr<bool>(new bool), DE_FALSE, DE_FALSE};
                addFunctionCaseWithPrograms(computeGroup.get(), getShaderStageName(caseDef.shaderStage), "", supportedCheck, initPrograms, test, caseDef);
                caseDef.extShaderSubGroupBallotTests = DE_TRUE;
                addFunctionCaseWithPrograms(computeGroupEXT.get(), getShaderStageName(caseDef.shaderStage), "", supportedCheck, initPrograms, test, caseDef);
 
+               caseDef.requiredSubgroupSize = DE_TRUE;
+               caseDef.extShaderSubGroupBallotTests = DE_FALSE;
+               addFunctionCaseWithPrograms(computeGroup.get(), getShaderStageName(caseDef.shaderStage) + "_requiredsubgroupsize", "", supportedCheck, initPrograms, test, caseDef);
+               caseDef.extShaderSubGroupBallotTests = DE_TRUE;
+               addFunctionCaseWithPrograms(computeGroupEXT.get(), getShaderStageName(caseDef.shaderStage) + "_requiredsubgroupsize", "", supportedCheck, initPrograms, test, caseDef);
        }
 
        {
-               CaseDefinition caseDef = {VK_SHADER_STAGE_ALL_GRAPHICS, de::SharedPtr<bool>(new bool), DE_FALSE};
+               CaseDefinition caseDef = {VK_SHADER_STAGE_ALL_GRAPHICS, de::SharedPtr<bool>(new bool), DE_FALSE, DE_FALSE};
                addFunctionCaseWithPrograms(graphicGroup.get(), "graphic", "", supportedCheck, initPrograms, test, caseDef);
                caseDef.extShaderSubGroupBallotTests = DE_TRUE;
                addFunctionCaseWithPrograms(graphicGroupEXT.get(), "graphic", "", supportedCheck, initPrograms, test, caseDef);
@@ -1054,7 +1113,7 @@ tcu::TestCaseGroup* createSubgroupsBallotTests(tcu::TestContext& testCtx)
 
        for (int stageIndex = 0; stageIndex < DE_LENGTH_OF_ARRAY(stages); ++stageIndex)
        {
-               CaseDefinition caseDef = {stages[stageIndex],de::SharedPtr<bool>(new bool), DE_FALSE};
+               CaseDefinition caseDef = {stages[stageIndex],de::SharedPtr<bool>(new bool), DE_TRUE, DE_FALSE};
                addFunctionCaseWithPrograms(framebufferGroup.get(), getShaderStageName(caseDef.shaderStage), "",
                                        supportedCheck, initFrameBufferPrograms, noSSBOtest, caseDef);
                caseDef.extShaderSubGroupBallotTests = DE_TRUE;
index 8388d5a..e008dc5 100755 (executable)
@@ -71,21 +71,24 @@ static bool _checkFragmentSubgroupBarriersNoSSBO(std::vector<const void*> datas,
        return true;
 }
 
-static bool checkFragmentSubgroupBarriersNoSSBO(std::vector<const void*> datas,
+static bool checkFragmentSubgroupBarriersNoSSBO(const void *internalData, std::vector<const void*> datas,
                deUint32 width, deUint32 height, deUint32)
 {
+       DE_UNREF(internalData);
        return _checkFragmentSubgroupBarriersNoSSBO(datas, width, height, false);
 }
 
-static bool checkFragmentSubgroupBarriersWithImageNoSSBO(std::vector<const void*> datas,
+static bool checkFragmentSubgroupBarriersWithImageNoSSBO(const void* internalData, std::vector<const void*> datas,
                deUint32 width, deUint32 height, deUint32)
 {
+       DE_UNREF(internalData);
        return _checkFragmentSubgroupBarriersNoSSBO(datas, width, height, true);
 }
 
-static bool checkVertexPipelineStagesSubgroupElectNoSSBO(std::vector<const void*> datas,
+static bool checkVertexPipelineStagesSubgroupElectNoSSBO(const void* internalData, std::vector<const void*> datas,
                deUint32 width, deUint32)
 {
+       DE_UNREF(internalData);
        const float* const      resultData                      = reinterpret_cast<const float*>(datas[0]);
        float                           poisonValuesFound       = 0.0f;
        float                           numSubgroupsUsed        = 0.0f;
@@ -110,9 +113,10 @@ static bool checkVertexPipelineStagesSubgroupElectNoSSBO(std::vector<const void*
        return numSubgroupsUsed == poisonValuesFound;
 }
 
-static bool checkVertexPipelineStagesSubgroupElect(std::vector<const void*> datas,
+static bool checkVertexPipelineStagesSubgroupElect(const void* internalData, std::vector<const void*> datas,
                deUint32 width, deUint32)
 {
+       DE_UNREF(internalData);
        const deUint32* const resultData =
                reinterpret_cast<const deUint32*>(datas[0]);
        deUint32 poisonValuesFound = 0;
@@ -141,9 +145,10 @@ static bool checkVertexPipelineStagesSubgroupElect(std::vector<const void*> data
        return numSubgroupsUsed == poisonValuesFound;
 }
 
-static bool checkVertexPipelineStagesSubgroupBarriers(std::vector<const void*> datas,
+static bool checkVertexPipelineStagesSubgroupBarriers(const void* internalData, std::vector<const void*> datas,
                deUint32 width, deUint32)
 {
+       DE_UNREF(internalData);
        const deUint32* const resultData = reinterpret_cast<const deUint32*>(datas[0]);
 
        // We used this SSBO to generate our unique value!
@@ -185,15 +190,17 @@ static bool _checkVertexPipelineStagesSubgroupBarriersNoSSBO(std::vector<const v
        return true;
 }
 
-static bool checkVertexPipelineStagesSubgroupBarriersNoSSBO(std::vector<const void*> datas,
+static bool checkVertexPipelineStagesSubgroupBarriersNoSSBO(const void* internalData, std::vector<const void*> datas,
                deUint32 width, deUint32)
 {
+       DE_UNREF(internalData);
        return _checkVertexPipelineStagesSubgroupBarriersNoSSBO(datas, width, false);
 }
 
-static bool checkVertexPipelineStagesSubgroupBarriersWithImageNoSSBO(std::vector<const void*> datas,
+static bool checkVertexPipelineStagesSubgroupBarriersWithImageNoSSBO(const void* internalData, std::vector<const void*> datas,
                deUint32 width, deUint32)
 {
+       DE_UNREF(internalData);
        return _checkVertexPipelineStagesSubgroupBarriersNoSSBO(datas, width, true);
 }
 
@@ -217,29 +224,33 @@ static bool _checkTessellationEvaluationSubgroupBarriersNoSSBO(std::vector<const
        return true;
 }
 
-static bool checkTessellationEvaluationSubgroupBarriersWithImageNoSSBO(std::vector<const void*> datas,
+static bool checkTessellationEvaluationSubgroupBarriersWithImageNoSSBO(const void* internalData, std::vector<const void*> datas,
        deUint32 width, deUint32 height)
 {
+       DE_UNREF(internalData);
        return _checkTessellationEvaluationSubgroupBarriersNoSSBO(datas, width, height, true);
 }
 
-static bool checkTessellationEvaluationSubgroupBarriersNoSSBO(std::vector<const void*> datas,
+static bool checkTessellationEvaluationSubgroupBarriersNoSSBO(const void* internalData, std::vector<const void*> datas,
                deUint32 width, deUint32 height)
 {
+       DE_UNREF(internalData);
        return _checkTessellationEvaluationSubgroupBarriersNoSSBO(datas, width, height, false);
 }
 
-static bool checkComputeSubgroupElect(std::vector<const void*> datas,
+static bool checkComputeSubgroupElect(const void* internalData, std::vector<const void*> datas,
                                                                          const deUint32 numWorkgroups[3], const deUint32 localSize[3],
                                                                          deUint32)
 {
+       DE_UNREF(internalData);
        return vkt::subgroups::checkCompute(datas, numWorkgroups, localSize, 1);
 }
 
-static bool checkComputeSubgroupBarriers(std::vector<const void*> datas,
+static bool checkComputeSubgroupBarriers(const void* internalData, std::vector<const void*> datas,
                const deUint32 numWorkgroups[3], const deUint32 localSize[3],
                deUint32)
 {
+       DE_UNREF(internalData);
        // We used this SSBO to generate our unique value!
        const deUint32 ref = *reinterpret_cast<const deUint32*>(datas[2]);
        return vkt::subgroups::checkCompute(datas, numWorkgroups, localSize, ref);
@@ -283,6 +294,7 @@ struct CaseDefinition
        int                                     opType;
        VkShaderStageFlags      shaderStage;
        de::SharedPtr<bool>     geometryPointSizeSupported;
+       deBool                          requiredSubgroupSize;
 };
 
 void initFrameBufferPrograms(SourceCollections& programCollection, CaseDefinition caseDef)
@@ -1837,6 +1849,27 @@ void supportedCheck (Context& context, CaseDefinition caseDef)
        if (!subgroups::isSubgroupSupported(context))
                TCU_THROW(NotSupportedError, "Subgroup operations are not supported");
 
+       if (caseDef.requiredSubgroupSize)
+       {
+               if (!context.requireDeviceFunctionality("VK_EXT_subgroup_size_control"))
+                       TCU_THROW(NotSupportedError, "Device does not support VK_EXT_subgroup_size_control extension");
+               VkPhysicalDeviceSubgroupSizeControlFeaturesEXT subgroupSizeControlFeatures;
+               subgroupSizeControlFeatures.sType = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBGROUP_SIZE_CONTROL_FEATURES_EXT;
+               subgroupSizeControlFeatures.pNext = DE_NULL;
+
+               VkPhysicalDeviceFeatures2 features;
+               features.sType = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FEATURES_2;
+               features.pNext = &subgroupSizeControlFeatures;
+
+               context.getInstanceInterface().getPhysicalDeviceFeatures2(context.getPhysicalDevice(), &features);
+
+               if (subgroupSizeControlFeatures.subgroupSizeControl == DE_FALSE)
+                       TCU_THROW(NotSupportedError, "Device does not support varying subgroup sizes nor required subgroup size");
+
+               if (subgroupSizeControlFeatures.computeFullSubgroups == DE_FALSE)
+                       TCU_THROW(NotSupportedError, "Device does not support full subgroups in compute shaders");
+       }
+
        *caseDef.geometryPointSizeSupported = subgroups::isTessellationAndGeometryPointSizeSupported(context);
 }
 
@@ -1900,9 +1933,9 @@ tcu::TestStatus noSSBOtest (Context& context, const CaseDefinition caseDef)
        if (VK_SHADER_STAGE_VERTEX_BIT == caseDef.shaderStage)
        {
                if (OPTYPE_ELECT == caseDef.opType)
-                       return subgroups::makeVertexFrameBufferTest(context, VK_FORMAT_R32G32_SFLOAT, DE_NULL, 0u, checkVertexPipelineStagesSubgroupElectNoSSBO);
+                       return subgroups::makeVertexFrameBufferTest(context, VK_FORMAT_R32G32_SFLOAT, DE_NULL, 0u, DE_NULL, checkVertexPipelineStagesSubgroupElectNoSSBO);
                else
-                       return subgroups::makeVertexFrameBufferTest(context, VK_FORMAT_R32G32B32A32_SFLOAT, &inputDatas[0], inputDatasCount,
+                       return subgroups::makeVertexFrameBufferTest(context, VK_FORMAT_R32G32B32A32_SFLOAT, &inputDatas[0], inputDatasCount, DE_NULL,
                                (OPTYPE_SUBGROUP_MEMORY_BARRIER_IMAGE == caseDef.opType) ?
                                        checkVertexPipelineStagesSubgroupBarriersWithImageNoSSBO :
                                        checkVertexPipelineStagesSubgroupBarriersNoSSBO
@@ -1910,7 +1943,7 @@ tcu::TestStatus noSSBOtest (Context& context, const CaseDefinition caseDef)
        }
        else if (VK_SHADER_STAGE_FRAGMENT_BIT == caseDef.shaderStage)
        {
-               return subgroups::makeFragmentFrameBufferTest(context, VK_FORMAT_R32G32B32A32_SFLOAT, &inputDatas[0], inputDatasCount,
+               return subgroups::makeFragmentFrameBufferTest(context, VK_FORMAT_R32G32B32A32_SFLOAT, &inputDatas[0], inputDatasCount, DE_NULL,
                        (OPTYPE_SUBGROUP_MEMORY_BARRIER_IMAGE == caseDef.opType) ?
                                checkFragmentSubgroupBarriersWithImageNoSSBO :
                                checkFragmentSubgroupBarriersNoSSBO
@@ -1919,9 +1952,9 @@ tcu::TestStatus noSSBOtest (Context& context, const CaseDefinition caseDef)
        else if (VK_SHADER_STAGE_GEOMETRY_BIT == caseDef.shaderStage)
        {
                if (OPTYPE_ELECT == caseDef.opType)
-                       return subgroups::makeGeometryFrameBufferTest(context, VK_FORMAT_R32G32_SFLOAT, DE_NULL, 0u, checkVertexPipelineStagesSubgroupElectNoSSBO);
+                       return subgroups::makeGeometryFrameBufferTest(context, VK_FORMAT_R32G32_SFLOAT, DE_NULL, 0u, DE_NULL, checkVertexPipelineStagesSubgroupElectNoSSBO);
                else
-                       return subgroups::makeGeometryFrameBufferTest(context, VK_FORMAT_R32G32B32A32_SFLOAT, &inputDatas[0], inputDatasCount,
+                       return subgroups::makeGeometryFrameBufferTest(context, VK_FORMAT_R32G32B32A32_SFLOAT, &inputDatas[0], inputDatasCount, DE_NULL,
                                (OPTYPE_SUBGROUP_MEMORY_BARRIER_IMAGE == caseDef.opType) ?
                                        checkVertexPipelineStagesSubgroupBarriersWithImageNoSSBO :
                                        checkVertexPipelineStagesSubgroupBarriersNoSSBO
@@ -1929,9 +1962,9 @@ tcu::TestStatus noSSBOtest (Context& context, const CaseDefinition caseDef)
        }
 
        if (OPTYPE_ELECT == caseDef.opType)
-               return subgroups::makeTessellationEvaluationFrameBufferTest(context, VK_FORMAT_R32G32_SFLOAT, DE_NULL, 0u, checkVertexPipelineStagesSubgroupElectNoSSBO, caseDef.shaderStage);
+               return subgroups::makeTessellationEvaluationFrameBufferTest(context, VK_FORMAT_R32G32_SFLOAT, DE_NULL, 0u, DE_NULL, checkVertexPipelineStagesSubgroupElectNoSSBO, caseDef.shaderStage);
 
-       return subgroups::makeTessellationEvaluationFrameBufferTest(context, VK_FORMAT_R32G32B32A32_SFLOAT, &inputDatas[0], inputDatasCount,
+       return subgroups::makeTessellationEvaluationFrameBufferTest(context, VK_FORMAT_R32G32B32A32_SFLOAT, &inputDatas[0], inputDatasCount, DE_NULL,
                (VK_SHADER_STAGE_TESSELLATION_CONTROL_BIT == caseDef.shaderStage) ?
                        ((OPTYPE_SUBGROUP_MEMORY_BARRIER_IMAGE == caseDef.opType) ?
                                checkVertexPipelineStagesSubgroupBarriersWithImageNoSSBO :
@@ -1971,7 +2004,35 @@ tcu::TestStatus test(Context& context, const CaseDefinition caseDef)
 
                if (OPTYPE_ELECT == caseDef.opType)
                {
-                       return subgroups::makeComputeTest(context, VK_FORMAT_R32_UINT, DE_NULL, 0, checkComputeSubgroupElect);
+                       if (caseDef.requiredSubgroupSize == DE_FALSE)
+                               return subgroups::makeComputeTest(context, VK_FORMAT_R32_UINT, DE_NULL, 0, DE_NULL, checkComputeSubgroupElect);
+
+                       tcu::TestLog& log       = context.getTestContext().getLog();
+                       VkPhysicalDeviceSubgroupSizeControlPropertiesEXT subgroupSizeControlProperties;
+                       subgroupSizeControlProperties.sType = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBGROUP_SIZE_CONTROL_PROPERTIES_EXT;
+                       subgroupSizeControlProperties.pNext = DE_NULL;
+                       VkPhysicalDeviceProperties2 properties;
+                       properties.sType = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROPERTIES_2;
+                       properties.pNext = &subgroupSizeControlProperties;
+
+                       context.getInstanceInterface().getPhysicalDeviceProperties2(context.getPhysicalDevice(), &properties);
+
+                       log << tcu::TestLog::Message << "Testing required subgroup size range [" <<  subgroupSizeControlProperties.minSubgroupSize << ", "
+                               << subgroupSizeControlProperties.maxSubgroupSize << "]" << tcu::TestLog::EndMessage;
+
+                       // According to the spec, requiredSubgroupSize must be a power-of-two integer.
+                       for (deUint32 size = subgroupSizeControlProperties.minSubgroupSize; size <= subgroupSizeControlProperties.maxSubgroupSize; size *= 2)
+                               {
+                                       tcu::TestStatus result = subgroups::makeComputeTest(context, VK_FORMAT_R32_UINT, DE_NULL, 0u, DE_NULL, checkComputeSubgroupElect,
+                                                                                                                                               size, VK_PIPELINE_SHADER_STAGE_CREATE_REQUIRE_FULL_SUBGROUPS_BIT_EXT);
+                                       if (result.getCode() != QP_TEST_RESULT_PASS)
+                                               {
+                                                       log << tcu::TestLog::Message << "subgroupSize " << size << " failed" << tcu::TestLog::EndMessage;
+                                                       return result;
+                                               }
+                               }
+
+                       return tcu::TestStatus::pass("OK");
                }
                else
                {
@@ -1993,7 +2054,35 @@ tcu::TestStatus test(Context& context, const CaseDefinition caseDef)
                        inputDatas[2].initializeType = subgroups::SSBOData::InitializeNone;
                        inputDatas[2].isImage = true;
 
-                       return subgroups::makeComputeTest(context, VK_FORMAT_R32_UINT, inputDatas, inputDatasCount, checkComputeSubgroupBarriers);
+                       if (caseDef.requiredSubgroupSize == DE_FALSE)
+                               return subgroups::makeComputeTest(context, VK_FORMAT_R32_UINT, inputDatas, inputDatasCount, DE_NULL, checkComputeSubgroupBarriers);
+
+                       tcu::TestLog& log = context.getTestContext().getLog();
+                       VkPhysicalDeviceSubgroupSizeControlPropertiesEXT subgroupSizeControlProperties;
+                       subgroupSizeControlProperties.sType = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBGROUP_SIZE_CONTROL_PROPERTIES_EXT;
+                       subgroupSizeControlProperties.pNext = DE_NULL;
+                       VkPhysicalDeviceProperties2 properties;
+                       properties.sType = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROPERTIES_2;
+                       properties.pNext = &subgroupSizeControlProperties;
+
+                       context.getInstanceInterface().getPhysicalDeviceProperties2(context.getPhysicalDevice(), &properties);
+
+                       log << tcu::TestLog::Message << "Testing required subgroup size range [" <<  subgroupSizeControlProperties.minSubgroupSize << ", "
+                               << subgroupSizeControlProperties.maxSubgroupSize << "]" << tcu::TestLog::EndMessage;
+
+                       // According to the spec, requiredSubgroupSize must be a power-of-two integer.
+                       for (deUint32 size = subgroupSizeControlProperties.minSubgroupSize; size <= subgroupSizeControlProperties.maxSubgroupSize; size *= 2)
+                       {
+                               tcu::TestStatus result = subgroups::makeComputeTest(context, VK_FORMAT_R32_UINT, inputDatas, inputDatasCount, DE_NULL, checkComputeSubgroupBarriers,
+                                                                                                                                       size, VK_PIPELINE_SHADER_STAGE_CREATE_REQUIRE_FULL_SUBGROUPS_BIT_EXT);
+                               if (result.getCode() != QP_TEST_RESULT_PASS)
+                               {
+                                       log << tcu::TestLog::Message << "subgroupSize " << size << " failed" << tcu::TestLog::EndMessage;
+                                       return result;
+                               }
+                       }
+
+                       return tcu::TestStatus::pass("OK");
                }
        }
        else
@@ -2066,7 +2155,7 @@ tcu::TestStatus test(Context& context, const CaseDefinition caseDef)
                        inputData[4].binding            = 8u;
                        inputData[4].stages                     = VK_SHADER_STAGE_FRAGMENT_BIT;
 
-                       return subgroups::allStages(context, VK_FORMAT_R32_UINT, inputData, inputCount, checkVertexPipelineStagesSubgroupElect, stages);
+                       return subgroups::allStages(context, VK_FORMAT_R32_UINT, inputData, inputCount, DE_NULL, checkVertexPipelineStagesSubgroupElect, stages);
                }
                else
                {
@@ -2115,7 +2204,7 @@ tcu::TestStatus test(Context& context, const CaseDefinition caseDef)
                                inputDatas[index + 3].stages                    = stagesBits[ndx];
                        }
 
-                       return subgroups::allStages(context, VK_FORMAT_R32_UINT, inputDatas, inputDatasCount, checkVertexPipelineStagesSubgroupBarriers, stages);
+                       return subgroups::allStages(context, VK_FORMAT_R32_UINT, inputDatas, inputDatasCount, DE_NULL, checkVertexPipelineStagesSubgroupBarriers, stages);
                }
        }
 }
@@ -2149,9 +2238,12 @@ tcu::TestCaseGroup* createSubgroupsBasicTests(tcu::TestContext& testCtx)
                const std::string op = de::toLower(getOpTypeName(opTypeIndex));
 
                {
-                       const CaseDefinition caseDef = {opTypeIndex, VK_SHADER_STAGE_COMPUTE_BIT, de::SharedPtr<bool>(new bool)};
+                       CaseDefinition caseDef = {opTypeIndex, VK_SHADER_STAGE_COMPUTE_BIT, de::SharedPtr<bool>(new bool), DE_FALSE};
                        addFunctionCaseWithPrograms(computeGroup.get(), op, "",
                                                                                supportedCheck, initPrograms, test, caseDef);
+                       caseDef.requiredSubgroupSize = DE_TRUE;
+                       addFunctionCaseWithPrograms(computeGroup.get(), op + "_requiredsubgroupsize", "",
+                                                                               supportedCheck, initPrograms, test, caseDef);
                }
 
                if (OPTYPE_SUBGROUP_MEMORY_BARRIER_SHARED == opTypeIndex)
@@ -2161,7 +2253,7 @@ tcu::TestCaseGroup* createSubgroupsBasicTests(tcu::TestContext& testCtx)
                }
 
                {
-                       const CaseDefinition caseDef = {opTypeIndex, VK_SHADER_STAGE_ALL_GRAPHICS, de::SharedPtr<bool>(new bool)};
+                       const CaseDefinition caseDef = {opTypeIndex, VK_SHADER_STAGE_ALL_GRAPHICS, de::SharedPtr<bool>(new bool), DE_FALSE};
                        addFunctionCaseWithPrograms(graphicGroup.get(),
                                                                                op, "",
                                                                                supportedCheck, initPrograms, test, caseDef);
@@ -2172,10 +2264,10 @@ tcu::TestCaseGroup* createSubgroupsBasicTests(tcu::TestContext& testCtx)
                        if (OPTYPE_ELECT == opTypeIndex && stageIndex == 0)
                                continue;               // This is not tested. I don't know why.
 
-                       const CaseDefinition caseDef = {opTypeIndex, stages[stageIndex], de::SharedPtr<bool>(new bool)};
+                       const CaseDefinition caseDefFrag = {opTypeIndex, stages[stageIndex], de::SharedPtr<bool>(new bool), DE_FALSE};
                        addFunctionCaseWithPrograms(framebufferGroup.get(),
-                                               op + "_" + getShaderStageName(caseDef.shaderStage), "",
-                                               supportedCheck, initFrameBufferPrograms, noSSBOtest, caseDef);
+                                               op + "_" + getShaderStageName(caseDefFrag.shaderStage), "",
+                                               supportedCheck, initFrameBufferPrograms, noSSBOtest, caseDefFrag);
                }
        }
 
index 8fe6bf6..10e3bf5 100755 (executable)
@@ -38,16 +38,18 @@ namespace vkt
 namespace subgroups
 {
 
-static bool checkVertexPipelineStages(std::vector<const void*> datas,
+static bool checkVertexPipelineStages(const void* internalData, std::vector<const void*> datas,
                                                                          deUint32 width, deUint32)
 {
+       DE_UNREF(internalData);
        return check(datas, width, 1);
 }
 
-static bool checkComputeStage(std::vector<const void*> datas,
+static bool checkComputeStage(const void* internalData, std::vector<const void*> datas,
                                                 const deUint32 numWorkgroups[3], const deUint32 localSize[3],
                                                 deUint32)
 {
+       DE_UNREF(internalData);
        return checkCompute(datas, numWorkgroups, localSize, 1);
 }
 
@@ -58,6 +60,7 @@ struct CaseDefinition
        std::string                     varName;
        VkShaderStageFlags      shaderStage;
        de::SharedPtr<bool>     geometryPointSizeSupported;
+       deBool                          requiredSubgroupSize;
 };
 }
 
@@ -1353,6 +1356,27 @@ void supportedCheck (Context& context, CaseDefinition caseDef)
        if (!subgroups::isSubgroupSupported(context))
                TCU_THROW(NotSupportedError, "Subgroup operations are not supported");
 
+       if (caseDef.requiredSubgroupSize)
+       {
+               if (!context.requireDeviceFunctionality("VK_EXT_subgroup_size_control"))
+                       TCU_THROW(NotSupportedError, "Device does not support VK_EXT_subgroup_size_control extension");
+               VkPhysicalDeviceSubgroupSizeControlFeaturesEXT subgroupSizeControlFeatures;
+               subgroupSizeControlFeatures.sType = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBGROUP_SIZE_CONTROL_FEATURES_EXT;
+               subgroupSizeControlFeatures.pNext = DE_NULL;
+
+               VkPhysicalDeviceFeatures2 features;
+               features.sType = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FEATURES_2;
+               features.pNext = &subgroupSizeControlFeatures;
+
+               context.getInstanceInterface().getPhysicalDeviceFeatures2(context.getPhysicalDevice(), &features);
+
+               if (subgroupSizeControlFeatures.subgroupSizeControl == DE_FALSE)
+                       TCU_THROW(NotSupportedError, "Device does not support varying subgroup sizes nor required subgroup size");
+
+               if (subgroupSizeControlFeatures.computeFullSubgroups == DE_FALSE)
+                       TCU_THROW(NotSupportedError, "Device does not support full subgroups in compute shaders");
+       }
+
        *caseDef.geometryPointSizeSupported = subgroups::isTessellationAndGeometryPointSizeSupported(context);
 }
 
@@ -1379,11 +1403,11 @@ tcu::TestStatus noSSBOtest(Context& context, const CaseDefinition caseDef)
        }
 
        if (VK_SHADER_STAGE_VERTEX_BIT == caseDef.shaderStage)
-               return makeVertexFrameBufferTest(context, VK_FORMAT_R32_UINT, DE_NULL, 0, checkVertexPipelineStages);
+               return makeVertexFrameBufferTest(context, VK_FORMAT_R32_UINT, DE_NULL, 0, DE_NULL, checkVertexPipelineStages);
        else if ((VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT | VK_SHADER_STAGE_TESSELLATION_CONTROL_BIT) & caseDef.shaderStage )
-               return makeTessellationEvaluationFrameBufferTest(context, VK_FORMAT_R32_UINT, DE_NULL, 0, checkVertexPipelineStages);
+               return makeTessellationEvaluationFrameBufferTest(context, VK_FORMAT_R32_UINT, DE_NULL, 0, DE_NULL, checkVertexPipelineStages);
 
-       return makeGeometryFrameBufferTest(context, VK_FORMAT_R32_UINT, DE_NULL, 0, checkVertexPipelineStages);
+       return makeGeometryFrameBufferTest(context, VK_FORMAT_R32_UINT, DE_NULL, 0, DE_NULL, checkVertexPipelineStages);
 }
 
 
@@ -1402,7 +1426,36 @@ tcu::TestStatus test(Context& context, const CaseDefinition caseDef)
                                                   "Shader stage " + getShaderStageName(caseDef.shaderStage) +
                                                   " is required to support subgroup operations!");
                }
-               return makeComputeTest(context, VK_FORMAT_R32_UINT, DE_NULL, 0, checkComputeStage);
+
+               if (caseDef.requiredSubgroupSize == DE_FALSE)
+                       return makeComputeTest(context, VK_FORMAT_R32_UINT, DE_NULL, 0, DE_NULL, checkComputeStage);
+
+               tcu::TestLog& log       = context.getTestContext().getLog();
+               VkPhysicalDeviceSubgroupSizeControlPropertiesEXT subgroupSizeControlProperties;
+               subgroupSizeControlProperties.sType = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBGROUP_SIZE_CONTROL_PROPERTIES_EXT;
+               subgroupSizeControlProperties.pNext = DE_NULL;
+               VkPhysicalDeviceProperties2 properties;
+               properties.sType = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROPERTIES_2;
+               properties.pNext = &subgroupSizeControlProperties;
+
+               context.getInstanceInterface().getPhysicalDeviceProperties2(context.getPhysicalDevice(), &properties);
+
+               log << tcu::TestLog::Message << "Testing required subgroup size range [" <<  subgroupSizeControlProperties.minSubgroupSize << ", "
+                       << subgroupSizeControlProperties.maxSubgroupSize << "]" << tcu::TestLog::EndMessage;
+
+               // According to the spec, requiredSubgroupSize must be a power-of-two integer.
+               for (deUint32 size = subgroupSizeControlProperties.minSubgroupSize; size <= subgroupSizeControlProperties.maxSubgroupSize; size *= 2)
+               {
+                       tcu::TestStatus result = subgroups::makeComputeTest(context, VK_FORMAT_R32_UINT, DE_NULL, 0, DE_NULL, checkComputeStage,
+                                                                                                                               size, VK_PIPELINE_SHADER_STAGE_CREATE_REQUIRE_FULL_SUBGROUPS_BIT_EXT);
+                       if (result.getCode() != QP_TEST_RESULT_PASS)
+                       {
+                               log << tcu::TestLog::Message << "subgroupSize " << size << " failed" << tcu::TestLog::EndMessage;
+                               return result;
+                       }
+               }
+
+               return tcu::TestStatus::pass("OK");
        }
        else
        {
@@ -1429,7 +1482,7 @@ tcu::TestStatus test(Context& context, const CaseDefinition caseDef)
                if ((VkShaderStageFlagBits)0u == stages)
                        TCU_THROW(NotSupportedError, "Subgroup operations are not supported for any graphic shader");
 
-               return subgroups::allStages(context, VK_FORMAT_R32_UINT, DE_NULL, 0, checkVertexPipelineStages, stages);
+               return subgroups::allStages(context, VK_FORMAT_R32_UINT, DE_NULL, 0, DE_NULL, checkVertexPipelineStages, stages);
        }
 }
 
@@ -1466,22 +1519,26 @@ de::MovePtr<tcu::TestCaseGroup> graphicGroup(new tcu::TestCaseGroup(
                const std::string varLower = de::toLower(var);
 
                {
-                       const CaseDefinition caseDef = {"gl_" + var, VK_SHADER_STAGE_ALL_GRAPHICS, de::SharedPtr<bool>(new bool)};
+                       const CaseDefinition caseDef = {"gl_" + var, VK_SHADER_STAGE_ALL_GRAPHICS, de::SharedPtr<bool>(new bool), DE_FALSE};
                        addFunctionCaseWithPrograms(graphicGroup.get(),
                                                                                varLower, "",
                                                                                supportedCheck, initPrograms, test, caseDef);
                }
 
                {
-                       const CaseDefinition caseDef = {"gl_" + var, VK_SHADER_STAGE_COMPUTE_BIT, de::SharedPtr<bool>(new bool)};
+                       CaseDefinition caseDef = {"gl_" + var, VK_SHADER_STAGE_COMPUTE_BIT, de::SharedPtr<bool>(new bool), DE_FALSE};
                        addFunctionCaseWithPrograms(computeGroup.get(),
                                                                                varLower, "",
                                                                                supportedCheck, initPrograms, test, caseDef);
+                       caseDef.requiredSubgroupSize = DE_TRUE;
+                       addFunctionCaseWithPrograms(computeGroup.get(),
+                                                                               varLower + "_requiredsubgroupsize", "",
+                                                                               supportedCheck, initPrograms, test, caseDef);
                }
 
                for (int stageIndex = 0; stageIndex < DE_LENGTH_OF_ARRAY(stages); ++stageIndex)
                {
-                       const CaseDefinition caseDef = {"gl_" + var, stages[stageIndex], de::SharedPtr<bool>(new bool)};
+                       const CaseDefinition caseDef = {"gl_" + var, stages[stageIndex], de::SharedPtr<bool>(new bool), DE_FALSE};
                        addFunctionCaseWithPrograms(framebufferGroup.get(),
                                                varLower + "_" +
                                                getShaderStageName(caseDef.shaderStage), "",
index c8e6921..8e20219 100755 (executable)
@@ -38,9 +38,10 @@ namespace vkt
 namespace subgroups
 {
 
-bool checkVertexPipelineStagesSubgroupSize(std::vector<const void*> datas,
+bool checkVertexPipelineStagesSubgroupSize(const void* internalData, std::vector<const void*> datas,
                deUint32 width, deUint32 subgroupSize)
 {
+       DE_UNREF(internalData);
        const deUint32* data =
                reinterpret_cast<const deUint32*>(datas[0]);
        for (deUint32 x = 0; x < width; ++x)
@@ -54,9 +55,10 @@ bool checkVertexPipelineStagesSubgroupSize(std::vector<const void*> datas,
        return true;
 }
 
-bool checkVertexPipelineStagesSubgroupInvocationID(std::vector<const void*> datas,
+bool checkVertexPipelineStagesSubgroupInvocationID(const void* internalData, std::vector<const void*> datas,
                deUint32 width, deUint32 subgroupSize)
 {
+       DE_UNREF(internalData);
        const deUint32* data =
                reinterpret_cast<const deUint32*>(datas[0]);
        vector<deUint32> subgroupInvocationHits(subgroupSize, 0);
@@ -84,10 +86,11 @@ bool checkVertexPipelineStagesSubgroupInvocationID(std::vector<const void*> data
        return true;
 }
 
-static bool checkComputeSubgroupSize(std::vector<const void*> datas,
+static bool checkComputeSubgroupSize(const void* internalData, std::vector<const void*> datas,
                                                                         const deUint32 numWorkgroups[3], const deUint32 localSize[3],
                                                                         deUint32 subgroupSize)
 {
+       DE_UNREF(internalData);
        const deUint32* data = reinterpret_cast<const deUint32*>(datas[0]);
 
        for (deUint32 nX = 0; nX < numWorkgroups[0]; ++nX)
@@ -134,10 +137,11 @@ static bool checkComputeSubgroupSize(std::vector<const void*> datas,
        return true;
 }
 
-static bool checkComputeSubgroupInvocationID(std::vector<const void*> datas,
+static bool checkComputeSubgroupInvocationID(const void* internalData, std::vector<const void*> datas,
                const deUint32 numWorkgroups[3], const deUint32 localSize[3],
                deUint32 subgroupSize)
 {
+       DE_UNREF(internalData);
        const deUint32* data = reinterpret_cast<const deUint32*>(datas[0]);
 
        for (deUint32 nX = 0; nX < numWorkgroups[0]; ++nX)
@@ -201,11 +205,13 @@ static bool checkComputeSubgroupInvocationID(std::vector<const void*> datas,
        return true;
 }
 
-static bool checkComputeNumSubgroups   (std::vector<const void*>       datas,
+static bool checkComputeNumSubgroups   (const void*                            internalData,
+                                                                               std::vector<const void*>        datas,
                                                                                const deUint32                          numWorkgroups[3],
                                                                                const deUint32                          localSize[3],
                                                                                deUint32)
 {
+       DE_UNREF(internalData);
        const deUint32* data = reinterpret_cast<const deUint32*>(datas[0]);
 
        for (deUint32 nX = 0; nX < numWorkgroups[0]; ++nX)
@@ -257,11 +263,13 @@ static bool checkComputeNumSubgroups      (std::vector<const void*>       datas,
        return true;
 }
 
-static bool checkComputeSubgroupID     (std::vector<const void*>       datas,
+static bool checkComputeSubgroupID     (const void*                            internalData,
+                                                                       std::vector<const void*>        datas,
                                                                        const deUint32                          numWorkgroups[3],
                                                                        const deUint32                          localSize[3],
                                                                        deUint32)
 {
+       DE_UNREF(internalData);
        const deUint32* data = reinterpret_cast<const deUint32*>(datas[0]);
 
        for (deUint32 nX = 0; nX < numWorkgroups[0]; ++nX)
@@ -318,6 +326,7 @@ struct CaseDefinition
        std::string                     varName;
        VkShaderStageFlags      shaderStage;
        de::SharedPtr<bool>     geometryPointSizeSupported;
+       deBool                          requiredSubgroupSize;
 };
 }
 
@@ -1531,6 +1540,27 @@ void supportedCheck (Context& context, CaseDefinition caseDef)
        if (!subgroups::isSubgroupSupported(context))
                TCU_THROW(NotSupportedError, "Subgroup operations are not supported");
 
+       if (caseDef.requiredSubgroupSize)
+       {
+               if (!context.requireDeviceFunctionality("VK_EXT_subgroup_size_control"))
+                       TCU_THROW(NotSupportedError, "Device does not support VK_EXT_subgroup_size_control extension");
+               VkPhysicalDeviceSubgroupSizeControlFeaturesEXT subgroupSizeControlFeatures;
+               subgroupSizeControlFeatures.sType = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBGROUP_SIZE_CONTROL_FEATURES_EXT;
+               subgroupSizeControlFeatures.pNext = DE_NULL;
+
+               VkPhysicalDeviceFeatures2 features;
+               features.sType = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FEATURES_2;
+               features.pNext = &subgroupSizeControlFeatures;
+
+               context.getInstanceInterface().getPhysicalDeviceFeatures2(context.getPhysicalDevice(), &features);
+
+               if (subgroupSizeControlFeatures.subgroupSizeControl == DE_FALSE)
+                       TCU_THROW(NotSupportedError, "Device does not support varying subgroup sizes nor required subgroup size");
+
+               if (subgroupSizeControlFeatures.computeFullSubgroups == DE_FALSE)
+                       TCU_THROW(NotSupportedError, "Device does not support full subgroups in compute shaders");
+       }
+
        *caseDef.geometryPointSizeSupported = subgroups::isTessellationAndGeometryPointSizeSupported(context);
 }
 
@@ -1556,12 +1586,12 @@ tcu::TestStatus noSSBOtest (Context& context, const CaseDefinition caseDef)
                if ("gl_SubgroupSize" == caseDef.varName)
                {
                        return makeVertexFrameBufferTest(
-                                          context, VK_FORMAT_R32G32B32A32_UINT, DE_NULL, 0, checkVertexPipelineStagesSubgroupSize);
+                                          context, VK_FORMAT_R32G32B32A32_UINT, DE_NULL, 0, DE_NULL, checkVertexPipelineStagesSubgroupSize);
                }
                else if ("gl_SubgroupInvocationID" == caseDef.varName)
                {
                        return makeVertexFrameBufferTest(
-                                          context, VK_FORMAT_R32G32B32A32_UINT, DE_NULL, 0, checkVertexPipelineStagesSubgroupInvocationID);
+                                          context, VK_FORMAT_R32G32B32A32_UINT, DE_NULL, 0, DE_NULL, checkVertexPipelineStagesSubgroupInvocationID);
                }
                else
                {
@@ -1575,12 +1605,12 @@ tcu::TestStatus noSSBOtest (Context& context, const CaseDefinition caseDef)
                if ("gl_SubgroupSize" == caseDef.varName)
                {
                        return makeTessellationEvaluationFrameBufferTest(
-                                       context, VK_FORMAT_R32G32B32A32_UINT, DE_NULL, 0, checkVertexPipelineStagesSubgroupSize);
+                                          context, VK_FORMAT_R32G32B32A32_UINT, DE_NULL, 0, DE_NULL, checkVertexPipelineStagesSubgroupSize);
                }
                else if ("gl_SubgroupInvocationID" == caseDef.varName)
                {
                        return makeTessellationEvaluationFrameBufferTest(
-                                       context, VK_FORMAT_R32G32B32A32_UINT, DE_NULL, 0, checkVertexPipelineStagesSubgroupInvocationID);
+                                          context, VK_FORMAT_R32G32B32A32_UINT, DE_NULL, 0, DE_NULL, checkVertexPipelineStagesSubgroupInvocationID);
                }
                else
                {
@@ -1594,12 +1624,12 @@ tcu::TestStatus noSSBOtest (Context& context, const CaseDefinition caseDef)
                if ("gl_SubgroupSize" == caseDef.varName)
                {
                        return makeGeometryFrameBufferTest(
-                                       context, VK_FORMAT_R32G32B32A32_UINT, DE_NULL, 0, checkVertexPipelineStagesSubgroupSize);
+                                   context, VK_FORMAT_R32G32B32A32_UINT, DE_NULL, 0, DE_NULL, checkVertexPipelineStagesSubgroupSize);
                }
                else if ("gl_SubgroupInvocationID" == caseDef.varName)
                {
                        return makeGeometryFrameBufferTest(
-                                       context, VK_FORMAT_R32G32B32A32_UINT, DE_NULL, 0, checkVertexPipelineStagesSubgroupInvocationID);
+                                       context, VK_FORMAT_R32G32B32A32_UINT, DE_NULL, 0, DE_NULL, checkVertexPipelineStagesSubgroupInvocationID);
                }
                else
                {
@@ -1628,19 +1658,131 @@ tcu::TestStatus test(Context& context, const CaseDefinition caseDef)
 
                if ("gl_SubgroupSize" == caseDef.varName)
                {
-                       return makeComputeTest(context, VK_FORMAT_R32G32B32A32_UINT, DE_NULL, 0, checkComputeSubgroupSize);
+                       if (caseDef.requiredSubgroupSize == DE_FALSE)
+                               return makeComputeTest(context, VK_FORMAT_R32G32B32A32_UINT, DE_NULL, 0, DE_NULL, checkComputeSubgroupSize);
+
+                       tcu::TestLog& log       = context.getTestContext().getLog();
+                       VkPhysicalDeviceSubgroupSizeControlPropertiesEXT subgroupSizeControlProperties;
+                       subgroupSizeControlProperties.sType = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBGROUP_SIZE_CONTROL_PROPERTIES_EXT;
+                       subgroupSizeControlProperties.pNext = DE_NULL;
+                       VkPhysicalDeviceProperties2 properties;
+                       properties.sType = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROPERTIES_2;
+                       properties.pNext = &subgroupSizeControlProperties;
+
+                       context.getInstanceInterface().getPhysicalDeviceProperties2(context.getPhysicalDevice(), &properties);
+
+                       log << tcu::TestLog::Message << "Testing required subgroup size range [" <<  subgroupSizeControlProperties.minSubgroupSize << ", "
+                               << subgroupSizeControlProperties.maxSubgroupSize << "]" << tcu::TestLog::EndMessage;
+
+                       // According to the spec, requiredSubgroupSize must be a power-of-two integer.
+                       for (deUint32 size = subgroupSizeControlProperties.minSubgroupSize; size <= subgroupSizeControlProperties.maxSubgroupSize; size *= 2)
+                       {
+                               tcu::TestStatus result = subgroups::makeComputeTest(context, VK_FORMAT_R32_UINT, DE_NULL, 0, DE_NULL, checkComputeSubgroupSize,
+                                                                                                                                               size, VK_PIPELINE_SHADER_STAGE_CREATE_REQUIRE_FULL_SUBGROUPS_BIT_EXT);
+                               if (result.getCode() != QP_TEST_RESULT_PASS)
+                               {
+                                       log << tcu::TestLog::Message << "subgroupSize " << size << " failed" << tcu::TestLog::EndMessage;
+                                       return result;
+                               }
+                       }
+
+                       return tcu::TestStatus::pass("OK");
                }
                else if ("gl_SubgroupInvocationID" == caseDef.varName)
                {
-                       return makeComputeTest(context, VK_FORMAT_R32G32B32A32_UINT, DE_NULL, 0, checkComputeSubgroupInvocationID);
+                       if (caseDef.requiredSubgroupSize == DE_FALSE)
+                               return makeComputeTest(context, VK_FORMAT_R32G32B32A32_UINT, DE_NULL, 0, DE_NULL, checkComputeSubgroupInvocationID);
+
+                       tcu::TestLog& log       = context.getTestContext().getLog();
+                       VkPhysicalDeviceSubgroupSizeControlPropertiesEXT subgroupSizeControlProperties;
+                       subgroupSizeControlProperties.sType = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBGROUP_SIZE_CONTROL_PROPERTIES_EXT;
+                       subgroupSizeControlProperties.pNext = DE_NULL;
+                       VkPhysicalDeviceProperties2 properties;
+                       properties.sType = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROPERTIES_2;
+                       properties.pNext = &subgroupSizeControlProperties;
+
+                       context.getInstanceInterface().getPhysicalDeviceProperties2(context.getPhysicalDevice(), &properties);
+
+                       log << tcu::TestLog::Message << "Testing required subgroup size range [" <<  subgroupSizeControlProperties.minSubgroupSize << ", "
+                               << subgroupSizeControlProperties.maxSubgroupSize << "]" << tcu::TestLog::EndMessage;
+
+                       // According to the spec, requiredSubgroupSize must be a power-of-two integer.
+                       for (deUint32 size = subgroupSizeControlProperties.minSubgroupSize; size <= subgroupSizeControlProperties.maxSubgroupSize; size *= 2)
+                       {
+                               tcu::TestStatus result = subgroups::makeComputeTest(context, VK_FORMAT_R32_UINT, DE_NULL, 0, DE_NULL, checkComputeSubgroupInvocationID,
+                                                                                                                                               size, VK_PIPELINE_SHADER_STAGE_CREATE_REQUIRE_FULL_SUBGROUPS_BIT_EXT);
+                               if (result.getCode() != QP_TEST_RESULT_PASS)
+                               {
+                                       log << tcu::TestLog::Message << "subgroupSize " << size << " failed" << tcu::TestLog::EndMessage;
+                                       return result;
+                               }
+                       }
+
+                       return tcu::TestStatus::pass("OK");
                }
                else if ("gl_NumSubgroups" == caseDef.varName)
                {
-                       return makeComputeTest(context, VK_FORMAT_R32G32B32A32_UINT, DE_NULL, 0, checkComputeNumSubgroups);
+                       if (caseDef.requiredSubgroupSize == DE_FALSE)
+                               return makeComputeTest(context, VK_FORMAT_R32G32B32A32_UINT, DE_NULL, 0, DE_NULL, checkComputeNumSubgroups);
+
+                       tcu::TestLog& log       = context.getTestContext().getLog();
+                       VkPhysicalDeviceSubgroupSizeControlPropertiesEXT subgroupSizeControlProperties;
+                       subgroupSizeControlProperties.sType = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBGROUP_SIZE_CONTROL_PROPERTIES_EXT;
+                       subgroupSizeControlProperties.pNext = DE_NULL;
+                       VkPhysicalDeviceProperties2 properties;
+                       properties.sType = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROPERTIES_2;
+                       properties.pNext = &subgroupSizeControlProperties;
+
+                       context.getInstanceInterface().getPhysicalDeviceProperties2(context.getPhysicalDevice(), &properties);
+
+                       log << tcu::TestLog::Message << "Testing required subgroup size range [" <<  subgroupSizeControlProperties.minSubgroupSize << ", "
+                               << subgroupSizeControlProperties.maxSubgroupSize << "]" << tcu::TestLog::EndMessage;
+
+                       // According to the spec, requiredSubgroupSize must be a power-of-two integer.
+                       for (deUint32 size = subgroupSizeControlProperties.minSubgroupSize; size <= subgroupSizeControlProperties.maxSubgroupSize; size *= 2)
+                       {
+                               tcu::TestStatus result = subgroups::makeComputeTest(context, VK_FORMAT_R32_UINT, DE_NULL, 0, DE_NULL, checkComputeNumSubgroups,
+                                                                                                                                               size, VK_PIPELINE_SHADER_STAGE_CREATE_REQUIRE_FULL_SUBGROUPS_BIT_EXT);
+                               if (result.getCode() != QP_TEST_RESULT_PASS)
+                               {
+                                       log << tcu::TestLog::Message << "subgroupSize " << size << " failed" << tcu::TestLog::EndMessage;
+                                       return result;
+                               }
+                       }
+
+                       return tcu::TestStatus::pass("OK");
                }
                else if ("gl_SubgroupID" == caseDef.varName)
                {
-                       return makeComputeTest(context, VK_FORMAT_R32G32B32A32_UINT, DE_NULL, 0, checkComputeSubgroupID);
+                       if (caseDef.requiredSubgroupSize == DE_FALSE)
+                               return makeComputeTest(context, VK_FORMAT_R32G32B32A32_UINT, DE_NULL, 0, DE_NULL, checkComputeSubgroupID);
+
+                       tcu::TestLog& log       = context.getTestContext().getLog();
+                       VkPhysicalDeviceSubgroupSizeControlPropertiesEXT subgroupSizeControlProperties;
+                       subgroupSizeControlProperties.sType = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBGROUP_SIZE_CONTROL_PROPERTIES_EXT;
+                       subgroupSizeControlProperties.pNext = DE_NULL;
+                       VkPhysicalDeviceProperties2 properties;
+                       properties.sType = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROPERTIES_2;
+                       properties.pNext = &subgroupSizeControlProperties;
+
+                       context.getInstanceInterface().getPhysicalDeviceProperties2(context.getPhysicalDevice(), &properties);
+
+                       log << tcu::TestLog::Message << "Testing required subgroup size range [" <<  subgroupSizeControlProperties.minSubgroupSize << ", "
+                               << subgroupSizeControlProperties.maxSubgroupSize << "]" << tcu::TestLog::EndMessage;
+
+                       // According to the spec, requiredSubgroupSize must be a power-of-two integer.
+                       for (deUint32 size = subgroupSizeControlProperties.minSubgroupSize; size <= subgroupSizeControlProperties.maxSubgroupSize; size *= 2)
+                       {
+                               tcu::TestStatus result = subgroups::makeComputeTest(context, VK_FORMAT_R32_UINT, DE_NULL, 0, DE_NULL, checkComputeSubgroupID,
+                                                                                                                                               size, VK_PIPELINE_SHADER_STAGE_CREATE_REQUIRE_FULL_SUBGROUPS_BIT_EXT);
+                               if (result.getCode() != QP_TEST_RESULT_PASS)
+                               {
+                                       log << tcu::TestLog::Message << "subgroupSize " << size << " failed" << tcu::TestLog::EndMessage;
+                                       return result;
+                               }
+                       }
+
+                       return tcu::TestStatus::pass("OK");
                }
                else
                {
@@ -1676,11 +1818,11 @@ tcu::TestStatus test(Context& context, const CaseDefinition caseDef)
 
                if ("gl_SubgroupSize" == caseDef.varName)
                {
-                       return subgroups::allStages(context, VK_FORMAT_R32G32B32A32_UINT, DE_NULL, 0, checkVertexPipelineStagesSubgroupSize, stages);
+                       return subgroups::allStages(context, VK_FORMAT_R32G32B32A32_UINT, DE_NULL, 0, DE_NULL, checkVertexPipelineStagesSubgroupSize, stages);
                }
                else if ("gl_SubgroupInvocationID" == caseDef.varName)
                {
-                       return subgroups::allStages(context, VK_FORMAT_R32G32B32A32_UINT, DE_NULL, 0, checkVertexPipelineStagesSubgroupInvocationID, stages);
+                       return subgroups::allStages(context, VK_FORMAT_R32G32B32A32_UINT, DE_NULL, 0, DE_NULL, checkVertexPipelineStagesSubgroupInvocationID, stages);
                }
                else
                {
@@ -1726,7 +1868,7 @@ tcu::TestCaseGroup* createSubgroupsBuiltinVarTests(tcu::TestContext& testCtx)
                const std::string varLower = de::toLower(var);
 
                {
-                       const CaseDefinition caseDef = { "gl_" + var, VK_SHADER_STAGE_ALL_GRAPHICS, de::SharedPtr<bool>(new bool)};
+                       const CaseDefinition caseDef = { "gl_" + var, VK_SHADER_STAGE_ALL_GRAPHICS, de::SharedPtr<bool>(new bool), DE_FALSE};
 
                        addFunctionCaseWithPrograms(graphicGroup.get(),
                                                                                varLower, "",
@@ -1734,15 +1876,19 @@ tcu::TestCaseGroup* createSubgroupsBuiltinVarTests(tcu::TestContext& testCtx)
                }
 
                {
-                       const CaseDefinition caseDef = {"gl_" + var, VK_SHADER_STAGE_COMPUTE_BIT, de::SharedPtr<bool>(new bool)};
+                       CaseDefinition caseDef = {"gl_" + var, VK_SHADER_STAGE_COMPUTE_BIT, de::SharedPtr<bool>(new bool), DE_FALSE};
                        addFunctionCaseWithPrograms(computeGroup.get(),
                                                varLower + "_" + getShaderStageName(caseDef.shaderStage), "",
                                                supportedCheck, initPrograms, test, caseDef);
+                       caseDef.requiredSubgroupSize = DE_TRUE;
+                       addFunctionCaseWithPrograms(computeGroup.get(),
+                                               varLower + "_" + getShaderStageName(caseDef.shaderStage) + "_requiredsubgroupsize", "",
+                                               supportedCheck, initPrograms, test, caseDef);
                }
 
                for (int stageIndex = 0; stageIndex < DE_LENGTH_OF_ARRAY(stages); ++stageIndex)
                {
-                       const CaseDefinition caseDef = {"gl_" + var, stages[stageIndex], de::SharedPtr<bool>(new bool)};
+                       const CaseDefinition caseDef = {"gl_" + var, stages[stageIndex], de::SharedPtr<bool>(new bool), DE_FALSE};
                        addFunctionCaseWithPrograms(framebufferGroup.get(),
                                                varLower + "_" + getShaderStageName(caseDef.shaderStage), "",
                                                supportedCheck, initFrameBufferPrograms, noSSBOtest, caseDef);
@@ -1753,10 +1899,13 @@ tcu::TestCaseGroup* createSubgroupsBuiltinVarTests(tcu::TestContext& testCtx)
        {
                const std::string var = compute_only_vars[a];
 
-               const CaseDefinition caseDef = {"gl_" + var, VK_SHADER_STAGE_COMPUTE_BIT, de::SharedPtr<bool>(new bool)};
+               CaseDefinition caseDef = {"gl_" + var, VK_SHADER_STAGE_COMPUTE_BIT, de::SharedPtr<bool>(new bool), DE_FALSE};
 
                addFunctionCaseWithPrograms(computeGroup.get(), de::toLower(var), "",
                                                                        supportedCheck, initPrograms, test, caseDef);
+               caseDef.requiredSubgroupSize = DE_TRUE;
+               addFunctionCaseWithPrograms(computeGroup.get(), de::toLower(var) + "_requiredsubgroupsize", "",
+                                                                       supportedCheck, initPrograms, test, caseDef);
        }
 
        de::MovePtr<tcu::TestCaseGroup> group(new tcu::TestCaseGroup(
index efd30d1..b7d4f9d 100755 (executable)
@@ -48,16 +48,18 @@ enum OpType
        OPTYPE_CLUSTERED_LAST
 };
 
-static bool checkVertexPipelineStages(std::vector<const void*> datas,
+static bool checkVertexPipelineStages(const void* internalData, std::vector<const void*> datas,
                                                                          deUint32 width, deUint32)
 {
+       DE_UNREF(internalData);
        return vkt::subgroups::check(datas, width, 1);
 }
 
-static bool checkCompute(std::vector<const void*> datas,
+static bool checkCompute(const void* internalData, std::vector<const void*> datas,
                                                 const deUint32 numWorkgroups[3], const deUint32 localSize[3],
                                                 deUint32)
 {
+       DE_UNREF(internalData);
        return vkt::subgroups::checkCompute(datas, numWorkgroups, localSize, 1);
 }
 
@@ -373,6 +375,7 @@ struct CaseDefinition
        VkShaderStageFlags      shaderStage;
        VkFormat                        format;
        de::SharedPtr<bool>     geometryPointSizeSupported;
+       deBool                          requiredSubgroupSize;
 };
 
 std::string getExtHeader(CaseDefinition caseDef)
@@ -450,6 +453,27 @@ void supportedCheck (Context& context, CaseDefinition caseDef)
        if (!subgroups::isFormatSupportedForDevice(context, caseDef.format))
                TCU_THROW(NotSupportedError, "Device does not support the specified format in subgroup operations");
 
+       if (caseDef.requiredSubgroupSize)
+       {
+               if (!context.requireDeviceFunctionality("VK_EXT_subgroup_size_control"))
+                       TCU_THROW(NotSupportedError, "Device does not support VK_EXT_subgroup_size_control extension");
+               VkPhysicalDeviceSubgroupSizeControlFeaturesEXT subgroupSizeControlFeatures;
+               subgroupSizeControlFeatures.sType = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBGROUP_SIZE_CONTROL_FEATURES_EXT;
+               subgroupSizeControlFeatures.pNext = DE_NULL;
+
+               VkPhysicalDeviceFeatures2 features;
+               features.sType = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FEATURES_2;
+               features.pNext = &subgroupSizeControlFeatures;
+
+               context.getInstanceInterface().getPhysicalDeviceFeatures2(context.getPhysicalDevice(), &features);
+
+               if (subgroupSizeControlFeatures.subgroupSizeControl == DE_FALSE)
+                       TCU_THROW(NotSupportedError, "Device does not support varying subgroup sizes nor required subgroup size");
+
+               if (subgroupSizeControlFeatures.computeFullSubgroups == DE_FALSE)
+                       TCU_THROW(NotSupportedError, "Device does not support full subgroups in compute shaders");
+       }
+
        *caseDef.geometryPointSizeSupported = subgroups::isTessellationAndGeometryPointSizeSupported(context);
 }
 
@@ -477,13 +501,13 @@ tcu::TestStatus noSSBOtest (Context& context, const CaseDefinition caseDef)
        inputData.initializeType = subgroups::SSBOData::InitializeNonZero;
 
        if (VK_SHADER_STAGE_VERTEX_BIT == caseDef.shaderStage)
-               return subgroups::makeVertexFrameBufferTest(context, VK_FORMAT_R32_UINT, &inputData, 1, checkVertexPipelineStages);
+               return subgroups::makeVertexFrameBufferTest(context, VK_FORMAT_R32_UINT, &inputData, 1, DE_NULL, checkVertexPipelineStages);
        else if (VK_SHADER_STAGE_GEOMETRY_BIT == caseDef.shaderStage)
-               return subgroups::makeGeometryFrameBufferTest(context, VK_FORMAT_R32_UINT, &inputData, 1, checkVertexPipelineStages);
+               return subgroups::makeGeometryFrameBufferTest(context, VK_FORMAT_R32_UINT, &inputData, 1, DE_NULL, checkVertexPipelineStages);
        else if (VK_SHADER_STAGE_TESSELLATION_CONTROL_BIT == caseDef.shaderStage)
-               return subgroups::makeTessellationEvaluationFrameBufferTest(context, VK_FORMAT_R32_UINT, &inputData, 1, checkVertexPipelineStages, VK_SHADER_STAGE_TESSELLATION_CONTROL_BIT);
+               return subgroups::makeTessellationEvaluationFrameBufferTest(context, VK_FORMAT_R32_UINT, &inputData, 1, DE_NULL, checkVertexPipelineStages, VK_SHADER_STAGE_TESSELLATION_CONTROL_BIT);
        else if (VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT == caseDef.shaderStage)
-               return subgroups::makeTessellationEvaluationFrameBufferTest(context, VK_FORMAT_R32_UINT, &inputData, 1, checkVertexPipelineStages, VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT);
+               return subgroups::makeTessellationEvaluationFrameBufferTest(context, VK_FORMAT_R32_UINT, &inputData, 1, DE_NULL, checkVertexPipelineStages, VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT);
        else
                TCU_THROW(InternalError, "Unhandled shader stage");
 }
@@ -506,7 +530,35 @@ tcu::TestStatus test(Context& context, const CaseDefinition caseDef)
                inputData.numElements = subgroups::maxSupportedSubgroupSize();
                inputData.initializeType = subgroups::SSBOData::InitializeNonZero;
 
-               return subgroups::makeComputeTest(context, VK_FORMAT_R32_UINT, &inputData, 1, checkCompute);
+               if (caseDef.requiredSubgroupSize == DE_FALSE)
+                       return subgroups::makeComputeTest(context, VK_FORMAT_R32_UINT, &inputData, 1, DE_NULL, checkCompute);
+
+               tcu::TestLog& log = context.getTestContext().getLog();
+               VkPhysicalDeviceSubgroupSizeControlPropertiesEXT subgroupSizeControlProperties;
+               subgroupSizeControlProperties.sType = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBGROUP_SIZE_CONTROL_PROPERTIES_EXT;
+               subgroupSizeControlProperties.pNext = DE_NULL;
+               VkPhysicalDeviceProperties2 properties;
+               properties.sType = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROPERTIES_2;
+               properties.pNext = &subgroupSizeControlProperties;
+
+               context.getInstanceInterface().getPhysicalDeviceProperties2(context.getPhysicalDevice(), &properties);
+
+               log << tcu::TestLog::Message << "Testing required subgroup size range [" <<  subgroupSizeControlProperties.minSubgroupSize << ", "
+                       << subgroupSizeControlProperties.maxSubgroupSize << "]" << tcu::TestLog::EndMessage;
+
+               // According to the spec, requiredSubgroupSize must be a power-of-two integer.
+               for (deUint32 size = subgroupSizeControlProperties.minSubgroupSize; size <= subgroupSizeControlProperties.maxSubgroupSize; size *= 2)
+               {
+                       tcu::TestStatus result = subgroups::makeComputeTest(context, VK_FORMAT_R32_UINT, &inputData, 1, DE_NULL, checkCompute,
+                                                                                                                               size, VK_PIPELINE_SHADER_STAGE_CREATE_REQUIRE_FULL_SUBGROUPS_BIT_EXT);
+                       if (result.getCode() != QP_TEST_RESULT_PASS)
+                       {
+                               log << tcu::TestLog::Message << "subgroupSize " << size << " failed" << tcu::TestLog::EndMessage;
+                               return result;
+                       }
+               }
+
+               return tcu::TestStatus::pass("OK");
        }
        else
        {
@@ -541,7 +593,7 @@ tcu::TestStatus test(Context& context, const CaseDefinition caseDef)
                inputData.binding                       = 4u;
                inputData.stages                        = stages;
 
-               return subgroups::allStages(context, VK_FORMAT_R32_UINT, &inputData, 1, checkVertexPipelineStages, stages);
+               return subgroups::allStages(context, VK_FORMAT_R32_UINT, &inputData, 1, DE_NULL, checkVertexPipelineStages, stages);
        }
 }
 }
@@ -633,19 +685,21 @@ tcu::TestCaseGroup* createSubgroupsClusteredTests(tcu::TestContext& testCtx)
                                +"_" + subgroups::getFormatNameForGLSL(format);
 
                        {
-                               const CaseDefinition caseDef = {opTypeIndex, VK_SHADER_STAGE_COMPUTE_BIT, format, de::SharedPtr<bool>(new bool)};
+                               CaseDefinition caseDef = {opTypeIndex, VK_SHADER_STAGE_COMPUTE_BIT, format, de::SharedPtr<bool>(new bool), DE_FALSE};
                                addFunctionCaseWithPrograms(computeGroup.get(), name, "", supportedCheck, initPrograms, test, caseDef);
+                               caseDef.requiredSubgroupSize = DE_TRUE;
+                               addFunctionCaseWithPrograms(computeGroup.get(), name + "_requiredsubgroupsize", "", supportedCheck, initPrograms, test, caseDef);
                        }
 
                        {
-                               const CaseDefinition caseDef = {opTypeIndex, VK_SHADER_STAGE_ALL_GRAPHICS, format, de::SharedPtr<bool>(new bool)};
+                               const CaseDefinition caseDef = {opTypeIndex, VK_SHADER_STAGE_ALL_GRAPHICS, format, de::SharedPtr<bool>(new bool), DE_FALSE};
                                addFunctionCaseWithPrograms(graphicGroup.get(), name,
                                                                                "", supportedCheck, initPrograms, test, caseDef);
                        }
 
                        for (int stageIndex = 0; stageIndex < DE_LENGTH_OF_ARRAY(stages); ++stageIndex)
                        {
-                               const CaseDefinition caseDef = {opTypeIndex, stages[stageIndex], format, de::SharedPtr<bool>(new bool)};
+                               const CaseDefinition caseDef = {opTypeIndex, stages[stageIndex], format, de::SharedPtr<bool>(new bool), DE_FALSE};
                                addFunctionCaseWithPrograms(framebufferGroup.get(), name +"_" + getShaderStageName(caseDef.shaderStage), "",
                                                        supportedCheck, initFrameBufferPrograms, noSSBOtest, caseDef);
                        }
index b76c091..3c73bae 100755 (executable)
@@ -63,9 +63,10 @@ enum OpType
        OPTYPE_LAST
 };
 
-static bool checkVertexPipelineStages(std::vector<const void*> datas,
+static bool checkVertexPipelineStages(const void* internalData, std::vector<const void*> datas,
                                                                          deUint32 width, deUint32)
 {
+       DE_UNREF(internalData);
        const deUint32* data =
                reinterpret_cast<const deUint32*>(datas[0]);
        for (deUint32 x = 0; x < width; ++x)
@@ -81,10 +82,11 @@ static bool checkVertexPipelineStages(std::vector<const void*> datas,
        return true;
 }
 
-static bool checkCompute(std::vector<const void*> datas,
+static bool checkCompute(const void* internalData, std::vector<const void*> datas,
                                                 const deUint32 numWorkgroups[3], const deUint32 localSize[3],
                                                 deUint32)
 {
+       DE_UNREF(internalData);
        const deUint32* data =
                reinterpret_cast<const deUint32*>(datas[0]);
 
@@ -460,6 +462,7 @@ struct CaseDefinition
        VkShaderStageFlags      shaderStage;
        VkFormat                        format;
        de::SharedPtr<bool>     geometryPointSizeSupported;
+       deBool                          requiredSubgroupSize;
 };
 
 string getTestString(const CaseDefinition &caseDef)
@@ -885,6 +888,27 @@ void supportedCheck (Context& context, CaseDefinition caseDef)
        if (!subgroups::isFormatSupportedForDevice(context, caseDef.format))
                TCU_THROW(NotSupportedError, "Device does not support the specified format in subgroup operations");
 
+       if (caseDef.requiredSubgroupSize)
+       {
+               if (!context.requireDeviceFunctionality("VK_EXT_subgroup_size_control"))
+                       TCU_THROW(NotSupportedError, "Device does not support VK_EXT_subgroup_size_control extension");
+               VkPhysicalDeviceSubgroupSizeControlFeaturesEXT subgroupSizeControlFeatures;
+               subgroupSizeControlFeatures.sType = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBGROUP_SIZE_CONTROL_FEATURES_EXT;
+               subgroupSizeControlFeatures.pNext = DE_NULL;
+
+               VkPhysicalDeviceFeatures2 features;
+               features.sType = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FEATURES_2;
+               features.pNext = &subgroupSizeControlFeatures;
+
+               context.getInstanceInterface().getPhysicalDeviceFeatures2(context.getPhysicalDevice(), &features);
+
+               if (subgroupSizeControlFeatures.subgroupSizeControl == DE_FALSE)
+                       TCU_THROW(NotSupportedError, "Device does not support varying subgroup sizes nor required subgroup size");
+
+               if (subgroupSizeControlFeatures.computeFullSubgroups == DE_FALSE)
+                       TCU_THROW(NotSupportedError, "Device does not support full subgroups in compute shaders");
+       }
+
        *caseDef.geometryPointSizeSupported = subgroups::isTessellationAndGeometryPointSizeSupported(context);
 }
 
@@ -914,13 +938,13 @@ tcu::TestStatus noSSBOtest (Context& context, const CaseDefinition caseDef)
        inputData.initializeType = subgroups::SSBOData::InitializeNonZero;
 
        if (VK_SHADER_STAGE_VERTEX_BIT == caseDef.shaderStage)
-               return subgroups::makeVertexFrameBufferTest(context, VK_FORMAT_R32_UINT, &inputData, 1, checkVertexPipelineStages);
+               return subgroups::makeVertexFrameBufferTest(context, VK_FORMAT_R32_UINT, &inputData, 1, DE_NULL, checkVertexPipelineStages);
        else if (VK_SHADER_STAGE_GEOMETRY_BIT == caseDef.shaderStage)
-               return subgroups::makeGeometryFrameBufferTest(context, VK_FORMAT_R32_UINT, &inputData, 1, checkVertexPipelineStages);
+               return subgroups::makeGeometryFrameBufferTest(context, VK_FORMAT_R32_UINT, &inputData, 1, DE_NULL, checkVertexPipelineStages);
        else if (VK_SHADER_STAGE_TESSELLATION_CONTROL_BIT == caseDef.shaderStage)
-               return subgroups::makeTessellationEvaluationFrameBufferTest(context, VK_FORMAT_R32_UINT, &inputData, 1, checkVertexPipelineStages, VK_SHADER_STAGE_TESSELLATION_CONTROL_BIT);
+               return subgroups::makeTessellationEvaluationFrameBufferTest(context, VK_FORMAT_R32_UINT, &inputData, 1, DE_NULL, checkVertexPipelineStages, VK_SHADER_STAGE_TESSELLATION_CONTROL_BIT);
        else if (VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT == caseDef.shaderStage)
-               return subgroups::makeTessellationEvaluationFrameBufferTest(context,  VK_FORMAT_R32_UINT, &inputData, 1, checkVertexPipelineStages, VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT);
+               return subgroups::makeTessellationEvaluationFrameBufferTest(context,  VK_FORMAT_R32_UINT, &inputData, 1, DE_NULL, checkVertexPipelineStages, VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT);
        else
                TCU_THROW(InternalError, "Unhandled shader stage");
 }
@@ -960,7 +984,35 @@ tcu::TestStatus test(Context& context, const CaseDefinition caseDef)
                inputData.numElements = subgroups::maxSupportedSubgroupSize();
                inputData.initializeType = subgroups::SSBOData::InitializeNonZero;
 
-               return subgroups::makeComputeTest(context, VK_FORMAT_R32_UINT, &inputData, 1, checkCompute);
+               if (caseDef.requiredSubgroupSize == DE_FALSE)
+                       return subgroups::makeComputeTest(context, VK_FORMAT_R32_UINT, &inputData, 1, DE_NULL, checkCompute);
+
+               tcu::TestLog& log = context.getTestContext().getLog();
+               VkPhysicalDeviceSubgroupSizeControlPropertiesEXT subgroupSizeControlProperties;
+               subgroupSizeControlProperties.sType = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBGROUP_SIZE_CONTROL_PROPERTIES_EXT;
+               subgroupSizeControlProperties.pNext = DE_NULL;
+               VkPhysicalDeviceProperties2 properties;
+               properties.sType = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROPERTIES_2;
+               properties.pNext = &subgroupSizeControlProperties;
+
+               context.getInstanceInterface().getPhysicalDeviceProperties2(context.getPhysicalDevice(), &properties);
+
+               log << tcu::TestLog::Message << "Testing required subgroup size range [" <<  subgroupSizeControlProperties.minSubgroupSize << ", "
+                       << subgroupSizeControlProperties.maxSubgroupSize << "]" << tcu::TestLog::EndMessage;
+
+               // According to the spec, requiredSubgroupSize must be a power-of-two integer.
+               for (deUint32 size = subgroupSizeControlProperties.minSubgroupSize; size <= subgroupSizeControlProperties.maxSubgroupSize; size *= 2)
+               {
+                       tcu::TestStatus result = subgroups::makeComputeTest(context, VK_FORMAT_R32_UINT, &inputData, 1, DE_NULL, checkCompute,
+                                                                                                                               size, VK_PIPELINE_SHADER_STAGE_CREATE_REQUIRE_FULL_SUBGROUPS_BIT_EXT);
+                       if (result.getCode() != QP_TEST_RESULT_PASS)
+                       {
+                               log << tcu::TestLog::Message << "subgroupSize " << size << " failed" << tcu::TestLog::EndMessage;
+                               return result;
+                       }
+               }
+
+               return tcu::TestStatus::pass("OK");
        }
        else
        {
@@ -996,7 +1048,7 @@ tcu::TestStatus test(Context& context, const CaseDefinition caseDef)
                inputData.stages                        = stages;
 
                return subgroups::allStages(context, VK_FORMAT_R32_UINT, &inputData,
-                                                                                1, checkVertexPipelineStages, stages);
+                                                                       1, DE_NULL, checkVertexPipelineStages, stages);
        }
 }
 }
@@ -1092,15 +1144,20 @@ tcu::TestCaseGroup* createSubgroupsPartitionedTests(tcu::TestContext& testCtx)
                        std::string op = getOpTypeName(opTypeIndex);
 
                        {
-                               const CaseDefinition caseDef = {opTypeIndex, VK_SHADER_STAGE_COMPUTE_BIT, format, de::SharedPtr<bool>(new bool)};
+                               CaseDefinition caseDef = {opTypeIndex, VK_SHADER_STAGE_COMPUTE_BIT, format, de::SharedPtr<bool>(new bool), DE_FALSE};
                                addFunctionCaseWithPrograms(computeGroup.get(),
                                                                                        de::toLower(op) + "_" +
                                                                                        subgroups::getFormatNameForGLSL(format),
                                                                                        "", supportedCheck, initPrograms, test, caseDef);
+                               caseDef.requiredSubgroupSize = DE_TRUE;
+                               addFunctionCaseWithPrograms(computeGroup.get(),
+                                                                                       de::toLower(op) + "_" +
+                                                                                       subgroups::getFormatNameForGLSL(format) + "_requiredsubgroupsize",
+                                                                                       "", supportedCheck, initPrograms, test, caseDef);
                        }
 
                        {
-                               const CaseDefinition caseDef = {opTypeIndex, VK_SHADER_STAGE_ALL_GRAPHICS, format, de::SharedPtr<bool>(new bool)};
+                               const CaseDefinition caseDef = {opTypeIndex, VK_SHADER_STAGE_ALL_GRAPHICS, format, de::SharedPtr<bool>(new bool), DE_FALSE};
                                addFunctionCaseWithPrograms(graphicGroup.get(),
                                                                                        de::toLower(op) + "_" +
                                                                                        subgroups::getFormatNameForGLSL(format),
@@ -1109,7 +1166,7 @@ tcu::TestCaseGroup* createSubgroupsPartitionedTests(tcu::TestContext& testCtx)
 
                        for (int stageIndex = 0; stageIndex < DE_LENGTH_OF_ARRAY(stages); ++stageIndex)
                        {
-                               const CaseDefinition caseDef = {opTypeIndex, stages[stageIndex], format, de::SharedPtr<bool>(new bool)};
+                               const CaseDefinition caseDef = {opTypeIndex, stages[stageIndex], format, de::SharedPtr<bool>(new bool), DE_FALSE};
                                addFunctionCaseWithPrograms(framebufferGroup.get(), de::toLower(op) + "_" + subgroups::getFormatNameForGLSL(format) +
                                                                                        "_" + getShaderStageName(caseDef.shaderStage), "",
                                                                                        supportedCheck, initFrameBufferPrograms, noSSBOtest, caseDef);
@@ -1129,4 +1186,3 @@ tcu::TestCaseGroup* createSubgroupsPartitionedTests(tcu::TestContext& testCtx)
 
 } // subgroups
 } // vkt
-
index 080a783..31b3780 100755 (executable)
@@ -46,16 +46,18 @@ enum OpType
        OPTYPE_LAST
 };
 
-static bool checkVertexPipelineStages(std::vector<const void*> datas,
+static bool checkVertexPipelineStages(const void* internalData, std::vector<const void*> datas,
                                                                          deUint32 width, deUint32)
 {
+       DE_UNREF(internalData);
        return vkt::subgroups::check(datas, width, 1);
 }
 
-static bool checkCompute(std::vector<const void*> datas,
+static bool checkCompute(const void* internalData, std::vector<const void*> datas,
                                                 const deUint32 numWorkgroups[3], const deUint32 localSize[3],
                                                 deUint32)
 {
+       DE_UNREF(internalData);
        return vkt::subgroups::checkCompute(datas, numWorkgroups, localSize, 1);
 }
 
@@ -104,6 +106,7 @@ struct CaseDefinition
        VkShaderStageFlags      shaderStage;
        VkFormat                        format;
        de::SharedPtr<bool>     geometryPointSizeSupported;
+       deBool                          requiredSubgroupSize;
 };
 
 std::string getExtHeader(VkFormat format)
@@ -215,6 +218,27 @@ void supportedCheck (Context& context, CaseDefinition caseDef)
        if ((caseDef.opType == OPTYPE_QUAD_BROADCAST_NONCONST) && !subgroups::isSubgroupBroadcastDynamicIdSupported(context))
                TCU_THROW(NotSupportedError, "Device does not support SubgroupBroadcastDynamicId");
 
+       if (caseDef.requiredSubgroupSize)
+       {
+               if (!context.requireDeviceFunctionality("VK_EXT_subgroup_size_control"))
+                       TCU_THROW(NotSupportedError, "Device does not support VK_EXT_subgroup_size_control extension");
+               VkPhysicalDeviceSubgroupSizeControlFeaturesEXT subgroupSizeControlFeatures;
+               subgroupSizeControlFeatures.sType = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBGROUP_SIZE_CONTROL_FEATURES_EXT;
+               subgroupSizeControlFeatures.pNext = DE_NULL;
+
+               VkPhysicalDeviceFeatures2 features;
+               features.sType = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FEATURES_2;
+               features.pNext = &subgroupSizeControlFeatures;
+
+               context.getInstanceInterface().getPhysicalDeviceFeatures2(context.getPhysicalDevice(), &features);
+
+               if (subgroupSizeControlFeatures.subgroupSizeControl == DE_FALSE)
+                       TCU_THROW(NotSupportedError, "Device does not support varying subgroup sizes nor required subgroup size");
+
+               if (subgroupSizeControlFeatures.computeFullSubgroups == DE_FALSE)
+                       TCU_THROW(NotSupportedError, "Device does not support full subgroups in compute shaders");
+       }
+
        *caseDef.geometryPointSizeSupported = subgroups::isTessellationAndGeometryPointSizeSupported(context);
 }
 
@@ -242,13 +266,13 @@ tcu::TestStatus noSSBOtest (Context& context, const CaseDefinition caseDef)
        inputData.initializeType = subgroups::SSBOData::InitializeNonZero;
 
        if (VK_SHADER_STAGE_VERTEX_BIT == caseDef.shaderStage)
-               return subgroups::makeVertexFrameBufferTest(context, VK_FORMAT_R32_UINT, &inputData, 1, checkVertexPipelineStages);
+               return subgroups::makeVertexFrameBufferTest(context, VK_FORMAT_R32_UINT, &inputData, 1, DE_NULL, checkVertexPipelineStages);
        else if (VK_SHADER_STAGE_GEOMETRY_BIT == caseDef.shaderStage)
-               return subgroups::makeGeometryFrameBufferTest(context, VK_FORMAT_R32_UINT, &inputData, 1, checkVertexPipelineStages);
+               return subgroups::makeGeometryFrameBufferTest(context, VK_FORMAT_R32_UINT, &inputData, 1, DE_NULL, checkVertexPipelineStages);
        else if (VK_SHADER_STAGE_TESSELLATION_CONTROL_BIT == caseDef.shaderStage)
-               return subgroups::makeTessellationEvaluationFrameBufferTest(context, VK_FORMAT_R32_UINT, &inputData, 1, checkVertexPipelineStages, VK_SHADER_STAGE_TESSELLATION_CONTROL_BIT);
+               return subgroups::makeTessellationEvaluationFrameBufferTest(context, VK_FORMAT_R32_UINT, &inputData, 1, DE_NULL, checkVertexPipelineStages, VK_SHADER_STAGE_TESSELLATION_CONTROL_BIT);
        else if (VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT == caseDef.shaderStage)
-               return subgroups::makeTessellationEvaluationFrameBufferTest(context, VK_FORMAT_R32_UINT, &inputData, 1, checkVertexPipelineStages, VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT);
+               return subgroups::makeTessellationEvaluationFrameBufferTest(context, VK_FORMAT_R32_UINT, &inputData, 1, DE_NULL, checkVertexPipelineStages, VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT);
        else
                TCU_THROW(InternalError, "Unhandled shader stage");
 }
@@ -271,7 +295,35 @@ tcu::TestStatus test(Context& context, const CaseDefinition caseDef)
                inputData.numElements = subgroups::maxSupportedSubgroupSize();
                inputData.initializeType = subgroups::SSBOData::InitializeNonZero;
 
-               return subgroups::makeComputeTest(context, VK_FORMAT_R32_UINT, &inputData, 1, checkCompute);
+               if (caseDef.requiredSubgroupSize == DE_FALSE)
+                       return subgroups::makeComputeTest(context, VK_FORMAT_R32_UINT, &inputData, 1, DE_NULL, checkCompute);
+
+               tcu::TestLog& log = context.getTestContext().getLog();
+               VkPhysicalDeviceSubgroupSizeControlPropertiesEXT subgroupSizeControlProperties;
+               subgroupSizeControlProperties.sType = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBGROUP_SIZE_CONTROL_PROPERTIES_EXT;
+               subgroupSizeControlProperties.pNext = DE_NULL;
+               VkPhysicalDeviceProperties2 properties;
+               properties.sType = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROPERTIES_2;
+               properties.pNext = &subgroupSizeControlProperties;
+
+               context.getInstanceInterface().getPhysicalDeviceProperties2(context.getPhysicalDevice(), &properties);
+
+               log << tcu::TestLog::Message << "Testing required subgroup size range [" <<  subgroupSizeControlProperties.minSubgroupSize << ", "
+                       << subgroupSizeControlProperties.maxSubgroupSize << "]" << tcu::TestLog::EndMessage;
+
+               // According to the spec, requiredSubgroupSize must be a power-of-two integer.
+               for (deUint32 size = subgroupSizeControlProperties.minSubgroupSize; size <= subgroupSizeControlProperties.maxSubgroupSize; size *= 2)
+               {
+                       tcu::TestStatus result = subgroups::makeComputeTest(context, VK_FORMAT_R32_UINT, &inputData, 1, DE_NULL, checkCompute,
+                                                                                                                               size, VK_PIPELINE_SHADER_STAGE_CREATE_REQUIRE_FULL_SUBGROUPS_BIT_EXT);
+                       if (result.getCode() != QP_TEST_RESULT_PASS)
+                       {
+                               log << tcu::TestLog::Message << "subgroupSize " << size << " failed" << tcu::TestLog::EndMessage;
+                               return result;
+                       }
+               }
+
+               return tcu::TestStatus::pass("OK");
        }
        else
        {
@@ -306,7 +358,7 @@ tcu::TestStatus test(Context& context, const CaseDefinition caseDef)
                inputData.binding                       = 4u;
                inputData.stages                        = stages;
 
-               return subgroups::allStages(context, VK_FORMAT_R32_UINT, &inputData, 1, checkVertexPipelineStages, stages);
+               return subgroups::allStages(context, VK_FORMAT_R32_UINT, &inputData, 1, DE_NULL, checkVertexPipelineStages, stages);
        }
 }
 }
@@ -346,8 +398,10 @@ tcu::TestCaseGroup* createSubgroupsQuadTests(tcu::TestContext& testCtx)
                        name << "_" << subgroups::getFormatNameForGLSL(format);
 
                        {
-                               const CaseDefinition caseDef = {opTypeIndex, VK_SHADER_STAGE_COMPUTE_BIT, format, de::SharedPtr<bool>(new bool)};
+                               CaseDefinition caseDef = {opTypeIndex, VK_SHADER_STAGE_COMPUTE_BIT, format, de::SharedPtr<bool>(new bool), DE_FALSE};
                                addFunctionCaseWithPrograms(computeGroup.get(), name.str(), "", supportedCheck, initPrograms, test, caseDef);
+                               caseDef.requiredSubgroupSize = DE_TRUE;
+                               addFunctionCaseWithPrograms(computeGroup.get(), name.str() + "_requiredsubgroupsize", "", supportedCheck, initPrograms, test, caseDef);
                        }
 
                        {
@@ -356,13 +410,14 @@ tcu::TestCaseGroup* createSubgroupsQuadTests(tcu::TestContext& testCtx)
                                        opTypeIndex,
                                        VK_SHADER_STAGE_ALL_GRAPHICS,
                                        format,
-                                       de::SharedPtr<bool>(new bool)
+                                       de::SharedPtr<bool>(new bool),
+                                       DE_FALSE
                                };
                                addFunctionCaseWithPrograms(graphicGroup.get(), name.str(), "", supportedCheck, initPrograms, test, caseDef);
                        }
                        for (int stageIndex = 0; stageIndex < DE_LENGTH_OF_ARRAY(stages); ++stageIndex)
                        {
-                               const CaseDefinition caseDef = {opTypeIndex, stages[stageIndex], format, de::SharedPtr<bool>(new bool)};
+                               const CaseDefinition caseDef = {opTypeIndex, stages[stageIndex], format, de::SharedPtr<bool>(new bool), DE_FALSE};
                                addFunctionCaseWithPrograms(framebufferGroup.get(), name.str()+"_"+ getShaderStageName(caseDef.shaderStage), "",
                                                                                        supportedCheck, initFrameBufferPrograms, noSSBOtest, caseDef);
                        }
index 537aa8c..14d264c 100755 (executable)
@@ -36,16 +36,18 @@ using namespace vkt;
 
 namespace
 {
-static bool checkVertexPipelineStages(std::vector<const void*> datas,
+static bool checkVertexPipelineStages(const void* internalData, std::vector<const void*> datas,
                                                                          deUint32 width, deUint32)
 {
+       DE_UNREF(internalData);
        return vkt::subgroups::check(datas, width, 1);
 }
 
-static bool checkCompute(std::vector<const void*> datas,
+static bool checkCompute(const void* internalData, std::vector<const void*> datas,
                                                 const deUint32 numWorkgroups[3], const deUint32 localSize[3],
                                                 deUint32)
 {
+       DE_UNREF(internalData);
        return vkt::subgroups::checkCompute(datas, numWorkgroups, localSize, 1);
 }
 
@@ -75,6 +77,7 @@ struct CaseDefinition
        int                                     opType;
        VkShaderStageFlags      shaderStage;
        de::SharedPtr<bool>     geometryPointSizeSupported;
+       deBool                          requiredSubgroupSize;
 };
 
 void initFrameBufferPrograms (SourceCollections& programCollection, CaseDefinition caseDef)
@@ -462,6 +465,27 @@ void supportedCheck (Context& context, CaseDefinition caseDef)
                }
        }
 
+       if (caseDef.requiredSubgroupSize)
+       {
+               if (!context.requireDeviceFunctionality("VK_EXT_subgroup_size_control"))
+                       TCU_THROW(NotSupportedError, "Device does not support VK_EXT_subgroup_size_control extension");
+               VkPhysicalDeviceSubgroupSizeControlFeaturesEXT subgroupSizeControlFeatures;
+               subgroupSizeControlFeatures.sType = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBGROUP_SIZE_CONTROL_FEATURES_EXT;
+               subgroupSizeControlFeatures.pNext = DE_NULL;
+
+               VkPhysicalDeviceFeatures2 features;
+               features.sType = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FEATURES_2;
+               features.pNext = &subgroupSizeControlFeatures;
+
+               context.getInstanceInterface().getPhysicalDeviceFeatures2(context.getPhysicalDevice(), &features);
+
+               if (subgroupSizeControlFeatures.subgroupSizeControl == DE_FALSE)
+                       TCU_THROW(NotSupportedError, "Device does not support varying subgroup sizes nor required subgroup size");
+
+               if (subgroupSizeControlFeatures.computeFullSubgroups == DE_FALSE)
+                       TCU_THROW(NotSupportedError, "Device does not support full subgroups in compute shaders");
+       }
+
        *caseDef.geometryPointSizeSupported = subgroups::isTessellationAndGeometryPointSizeSupported(context);
 }
 
@@ -485,13 +509,13 @@ tcu::TestStatus noSSBOtest (Context& context, const CaseDefinition caseDef)
        }
 
        if (VK_SHADER_STAGE_VERTEX_BIT == caseDef.shaderStage)
-               return subgroups::makeVertexFrameBufferTest(context, VK_FORMAT_R32_UINT, DE_NULL, 0, checkVertexPipelineStages);
+               return subgroups::makeVertexFrameBufferTest(context, VK_FORMAT_R32_UINT, DE_NULL, 0, DE_NULL, checkVertexPipelineStages);
        else if (VK_SHADER_STAGE_GEOMETRY_BIT == caseDef.shaderStage)
-               return subgroups::makeGeometryFrameBufferTest(context, VK_FORMAT_R32_UINT, DE_NULL, 0, checkVertexPipelineStages);
+               return subgroups::makeGeometryFrameBufferTest(context, VK_FORMAT_R32_UINT, DE_NULL, 0, DE_NULL, checkVertexPipelineStages);
        else if (VK_SHADER_STAGE_TESSELLATION_CONTROL_BIT == caseDef.shaderStage)
-               return subgroups::makeTessellationEvaluationFrameBufferTest(context, VK_FORMAT_R32_UINT, DE_NULL, 0, checkVertexPipelineStages, VK_SHADER_STAGE_TESSELLATION_CONTROL_BIT);
+               return subgroups::makeTessellationEvaluationFrameBufferTest(context, VK_FORMAT_R32_UINT, DE_NULL, 0, DE_NULL, checkVertexPipelineStages, VK_SHADER_STAGE_TESSELLATION_CONTROL_BIT);
        else if (VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT == caseDef.shaderStage)
-               return subgroups::makeTessellationEvaluationFrameBufferTest(context,  VK_FORMAT_R32_UINT, DE_NULL, 0, checkVertexPipelineStages, VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT);
+               return subgroups::makeTessellationEvaluationFrameBufferTest(context,  VK_FORMAT_R32_UINT, DE_NULL, 0, DE_NULL, checkVertexPipelineStages, VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT);
        else
                TCU_THROW(InternalError, "Unhandled shader stage");
 }
@@ -516,7 +540,36 @@ tcu::TestStatus test(Context& context, const CaseDefinition caseDef)
                                           subgroups::getShaderStageName(caseDef.shaderStage) +
                                           " is required to support subgroup operations!");
                }
-               return subgroups::makeComputeTest(context, VK_FORMAT_R32_UINT, DE_NULL, 0, checkCompute);
+
+               if (caseDef.requiredSubgroupSize == DE_FALSE)
+                       return subgroups::makeComputeTest(context, VK_FORMAT_R32_UINT, DE_NULL, 0, DE_NULL, checkCompute);
+
+               tcu::TestLog& log = context.getTestContext().getLog();
+               VkPhysicalDeviceSubgroupSizeControlPropertiesEXT subgroupSizeControlProperties;
+               subgroupSizeControlProperties.sType = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBGROUP_SIZE_CONTROL_PROPERTIES_EXT;
+               subgroupSizeControlProperties.pNext = DE_NULL;
+               VkPhysicalDeviceProperties2 properties;
+               properties.sType = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROPERTIES_2;
+               properties.pNext = &subgroupSizeControlProperties;
+
+               context.getInstanceInterface().getPhysicalDeviceProperties2(context.getPhysicalDevice(), &properties);
+
+               log << tcu::TestLog::Message << "Testing required subgroup size range [" <<  subgroupSizeControlProperties.minSubgroupSize << ", "
+                       << subgroupSizeControlProperties.maxSubgroupSize << "]" << tcu::TestLog::EndMessage;
+
+               // According to the spec, requiredSubgroupSize must be a power-of-two integer.
+               for (deUint32 size = subgroupSizeControlProperties.minSubgroupSize; size <= subgroupSizeControlProperties.maxSubgroupSize; size *= 2)
+               {
+                       tcu::TestStatus result = subgroups::makeComputeTest(context, VK_FORMAT_R32_UINT, DE_NULL, 0, DE_NULL, checkCompute,
+                                                                                                                               size, VK_PIPELINE_SHADER_STAGE_CREATE_REQUIRE_FULL_SUBGROUPS_BIT_EXT);
+                       if (result.getCode() != QP_TEST_RESULT_PASS)
+                       {
+                               log << tcu::TestLog::Message << "subgroupSize " << size << " failed" << tcu::TestLog::EndMessage;
+                               return result;
+                       }
+               }
+
+               return tcu::TestStatus::pass("OK");
        }
        else
        {
@@ -543,7 +596,7 @@ tcu::TestStatus test(Context& context, const CaseDefinition caseDef)
                if ((VkShaderStageFlagBits)0u == stages)
                        TCU_THROW(NotSupportedError, "Subgroup operations are not supported for any graphic shader");
 
-               return subgroups::allStages(context, VK_FORMAT_R32_UINT, DE_NULL, 0, checkVertexPipelineStages, stages);
+               return subgroups::allStages(context, VK_FORMAT_R32_UINT, DE_NULL, 0, DE_NULL, checkVertexPipelineStages, stages);
        }
 }
 }
@@ -574,8 +627,10 @@ tcu::TestCaseGroup* createSubgroupsShapeTests(tcu::TestContext& testCtx)
                const std::string op = de::toLower(getOpTypeName(opTypeIndex));
 
                {
-                       const CaseDefinition caseDef = {opTypeIndex, VK_SHADER_STAGE_COMPUTE_BIT, de::SharedPtr<bool>(new bool)};
+                       CaseDefinition caseDef = {opTypeIndex, VK_SHADER_STAGE_COMPUTE_BIT, de::SharedPtr<bool>(new bool), DE_FALSE};
                        addFunctionCaseWithPrograms(computeGroup.get(), op, "", supportedCheck, initPrograms, test, caseDef);
+                       caseDef.requiredSubgroupSize = DE_TRUE;
+                       addFunctionCaseWithPrograms(computeGroup.get(), op + "_requiredsubgroupsize", "", supportedCheck, initPrograms, test, caseDef);
                }
 
                {
@@ -583,7 +638,8 @@ tcu::TestCaseGroup* createSubgroupsShapeTests(tcu::TestContext& testCtx)
                        {
                                opTypeIndex,
                                VK_SHADER_STAGE_ALL_GRAPHICS,
-                               de::SharedPtr<bool>(new bool)
+                               de::SharedPtr<bool>(new bool),
+                               DE_FALSE
                        };
                        addFunctionCaseWithPrograms(graphicGroup.get(),
                                                                        op, "",
@@ -592,7 +648,7 @@ tcu::TestCaseGroup* createSubgroupsShapeTests(tcu::TestContext& testCtx)
 
                for (int stageIndex = 0; stageIndex < DE_LENGTH_OF_ARRAY(stages); ++stageIndex)
                {
-                       const CaseDefinition caseDef = {opTypeIndex, stages[stageIndex], de::SharedPtr<bool>(new bool)};
+                       const CaseDefinition caseDef = {opTypeIndex, stages[stageIndex], de::SharedPtr<bool>(new bool), DE_FALSE};
                        addFunctionCaseWithPrograms(framebufferGroup.get(),op + "_" + getShaderStageName(caseDef.shaderStage), "",
                                                                                supportedCheck, initFrameBufferPrograms, noSSBOtest, caseDef);
                }
index 052744d..321268a 100755 (executable)
@@ -45,16 +45,18 @@ enum OpType
        OPTYPE_LAST
 };
 
-static bool checkVertexPipelineStages(std::vector<const void*> datas,
+static bool checkVertexPipelineStages(const void* internalData, std::vector<const void*> datas,
                                                                          deUint32 width, deUint32)
 {
+       DE_UNREF(internalData);
        return vkt::subgroups::check(datas, width, 1);
 }
 
-static bool checkCompute(std::vector<const void*> datas,
+static bool checkCompute(const void* internalData, std::vector<const void*> datas,
                                                 const deUint32 numWorkgroups[3], const deUint32 localSize[3],
                                                 deUint32)
 {
+       DE_UNREF(internalData);
        return vkt::subgroups::checkCompute(datas, numWorkgroups, localSize, 1);
 }
 
@@ -82,6 +84,7 @@ struct CaseDefinition
        VkShaderStageFlags      shaderStage;
        VkFormat                        format;
        de::SharedPtr<bool>     geometryPointSizeSupported;
+       deBool                          requiredSubgroupSize;
 };
 
 const std::string to_string(int x) {
@@ -458,6 +461,27 @@ void supportedCheck (Context& context, CaseDefinition caseDef)
        if (!subgroups::isFormatSupportedForDevice(context, caseDef.format))
                TCU_THROW(NotSupportedError, "Device does not support the specified format in subgroup operations");
 
+       if (caseDef.requiredSubgroupSize)
+       {
+               if (!context.requireDeviceFunctionality("VK_EXT_subgroup_size_control"))
+                       TCU_THROW(NotSupportedError, "Device does not support VK_EXT_subgroup_size_control extension");
+               VkPhysicalDeviceSubgroupSizeControlFeaturesEXT subgroupSizeControlFeatures;
+               subgroupSizeControlFeatures.sType = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBGROUP_SIZE_CONTROL_FEATURES_EXT;
+               subgroupSizeControlFeatures.pNext = DE_NULL;
+
+               VkPhysicalDeviceFeatures2 features;
+               features.sType = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FEATURES_2;
+               features.pNext = &subgroupSizeControlFeatures;
+
+               context.getInstanceInterface().getPhysicalDeviceFeatures2(context.getPhysicalDevice(), &features);
+
+               if (subgroupSizeControlFeatures.subgroupSizeControl == DE_FALSE)
+                       TCU_THROW(NotSupportedError, "Device does not support varying subgroup sizes nor required subgroup size");
+
+               if (subgroupSizeControlFeatures.computeFullSubgroups == DE_FALSE)
+                       TCU_THROW(NotSupportedError, "Device does not support full subgroups in compute shaders");
+       }
+
        *caseDef.geometryPointSizeSupported = subgroups::isTessellationAndGeometryPointSizeSupported(context);
 }
 
@@ -492,13 +516,13 @@ tcu::TestStatus noSSBOtest (Context& context, const CaseDefinition caseDef)
        inputData[1].initializeType = subgroups::SSBOData::InitializeNonZero;
 
        if (VK_SHADER_STAGE_VERTEX_BIT == caseDef.shaderStage)
-               return subgroups::makeVertexFrameBufferTest(context, VK_FORMAT_R32_UINT, inputData, 2, checkVertexPipelineStages);
+               return subgroups::makeVertexFrameBufferTest(context, VK_FORMAT_R32_UINT, inputData, 2, DE_NULL, checkVertexPipelineStages);
        else if (VK_SHADER_STAGE_GEOMETRY_BIT == caseDef.shaderStage)
-               return subgroups::makeGeometryFrameBufferTest(context, VK_FORMAT_R32_UINT, inputData, 2, checkVertexPipelineStages);
+               return subgroups::makeGeometryFrameBufferTest(context, VK_FORMAT_R32_UINT, inputData, 2, DE_NULL, checkVertexPipelineStages);
        else if (VK_SHADER_STAGE_TESSELLATION_CONTROL_BIT == caseDef.shaderStage)
-               return subgroups::makeTessellationEvaluationFrameBufferTest(context, VK_FORMAT_R32_UINT, inputData, 2, checkVertexPipelineStages, VK_SHADER_STAGE_TESSELLATION_CONTROL_BIT);
+               return subgroups::makeTessellationEvaluationFrameBufferTest(context, VK_FORMAT_R32_UINT, inputData, 2, DE_NULL, checkVertexPipelineStages, VK_SHADER_STAGE_TESSELLATION_CONTROL_BIT);
        else if (VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT == caseDef.shaderStage)
-               return subgroups::makeTessellationEvaluationFrameBufferTest(context,  VK_FORMAT_R32_UINT, inputData, 2, checkVertexPipelineStages, VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT);
+               return subgroups::makeTessellationEvaluationFrameBufferTest(context,  VK_FORMAT_R32_UINT, inputData, 2, DE_NULL, checkVertexPipelineStages, VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT);
        else
                TCU_THROW(InternalError, "Unhandled shader stage");
 }
@@ -526,7 +550,35 @@ tcu::TestStatus test(Context& context, const CaseDefinition caseDef)
                inputData[1].numElements = inputData[0].numElements;
                inputData[1].initializeType = subgroups::SSBOData::InitializeNonZero;
 
-               return subgroups::makeComputeTest(context, VK_FORMAT_R32_UINT, inputData, 2, checkCompute);
+               if (caseDef.requiredSubgroupSize == DE_FALSE)
+                       return subgroups::makeComputeTest(context, VK_FORMAT_R32_UINT, inputData, 2, DE_NULL, checkCompute);
+
+               tcu::TestLog& log = context.getTestContext().getLog();
+               VkPhysicalDeviceSubgroupSizeControlPropertiesEXT subgroupSizeControlProperties;
+               subgroupSizeControlProperties.sType = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBGROUP_SIZE_CONTROL_PROPERTIES_EXT;
+               subgroupSizeControlProperties.pNext = DE_NULL;
+               VkPhysicalDeviceProperties2 properties;
+               properties.sType = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROPERTIES_2;
+               properties.pNext = &subgroupSizeControlProperties;
+
+               context.getInstanceInterface().getPhysicalDeviceProperties2(context.getPhysicalDevice(), &properties);
+
+               log << tcu::TestLog::Message << "Testing required subgroup size range [" <<  subgroupSizeControlProperties.minSubgroupSize << ", "
+                       << subgroupSizeControlProperties.maxSubgroupSize << "]" << tcu::TestLog::EndMessage;
+
+               // According to the spec, requiredSubgroupSize must be a power-of-two integer.
+               for (deUint32 size = subgroupSizeControlProperties.minSubgroupSize; size <= subgroupSizeControlProperties.maxSubgroupSize; size *= 2)
+               {
+                       tcu::TestStatus result = subgroups::makeComputeTest(context, VK_FORMAT_R32_UINT, inputData, 2, DE_NULL, checkCompute,
+                                                                                                                               size, VK_PIPELINE_SHADER_STAGE_CREATE_REQUIRE_FULL_SUBGROUPS_BIT_EXT);
+                       if (result.getCode() != QP_TEST_RESULT_PASS)
+                       {
+                               log << tcu::TestLog::Message << "subgroupSize " << size << " failed" << tcu::TestLog::EndMessage;
+                               return result;
+                       }
+               }
+
+               return tcu::TestStatus::pass("OK");
        }
 
        else
@@ -569,7 +621,7 @@ tcu::TestStatus test(Context& context, const CaseDefinition caseDef)
                inputData[1].binding            = 5u;
                inputData[1].stages                     = stages;
 
-               return subgroups::allStages(context, VK_FORMAT_R32_UINT, inputData, 2, checkVertexPipelineStages, stages);
+               return subgroups::allStages(context, VK_FORMAT_R32_UINT, inputData, 2, DE_NULL, checkVertexPipelineStages, stages);
        }
 }
 }
@@ -615,19 +667,22 @@ tcu::TestCaseGroup* createSubgroupsShuffleTests(tcu::TestContext& testCtx)
                                        opTypeIndex,
                                        VK_SHADER_STAGE_ALL_GRAPHICS,
                                        format,
-                                       de::SharedPtr<bool>(new bool)
+                                       de::SharedPtr<bool>(new bool),
+                                       DE_FALSE
                                };
                                addFunctionCaseWithPrograms(graphicGroup.get(), name, "", supportedCheck, initPrograms, test, caseDef);
                        }
 
                        {
-                               const CaseDefinition caseDef = {opTypeIndex, VK_SHADER_STAGE_COMPUTE_BIT, format, de::SharedPtr<bool>(new bool)};
+                               CaseDefinition caseDef = {opTypeIndex, VK_SHADER_STAGE_COMPUTE_BIT, format, de::SharedPtr<bool>(new bool), DE_FALSE};
                                addFunctionCaseWithPrograms(computeGroup.get(), name, "", supportedCheck, initPrograms, test, caseDef);
+                               caseDef.requiredSubgroupSize = DE_TRUE;
+                               addFunctionCaseWithPrograms(computeGroup.get(), name + "_requiredsubgroupsize", "", supportedCheck, initPrograms, test, caseDef);
                        }
 
                        for (int stageIndex = 0; stageIndex < DE_LENGTH_OF_ARRAY(stages); ++stageIndex)
                        {
-                               const CaseDefinition caseDef = {opTypeIndex, stages[stageIndex], format, de::SharedPtr<bool>(new bool)};
+                               const CaseDefinition caseDef = {opTypeIndex, stages[stageIndex], format, de::SharedPtr<bool>(new bool), DE_FALSE};
                                addFunctionCaseWithPrograms(framebufferGroup.get(), name + "_" + getShaderStageName(caseDef.shaderStage), "",
                                                                                        supportedCheck, initFrameBufferPrograms, noSSBOtest, caseDef);
                        }
diff --git a/external/vulkancts/modules/vulkan/subgroups/vktSubgroupsSizeControlTests.cpp b/external/vulkancts/modules/vulkan/subgroups/vktSubgroupsSizeControlTests.cpp
new file mode 100755 (executable)
index 0000000..71433dc
--- /dev/null
@@ -0,0 +1,1082 @@
+/*------------------------------------------------------------------------
+ * Vulkan Conformance Tests
+ * ------------------------
+ *
+ * Copyright (c) 2019 The Khronos Group Inc.
+ * Copyright (c) 2019 Valve Corporation.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ *
+ */ /*!
+ * \file
+ * \brief VK_EXT_subgroup_size_control Tests
+ */ /*--------------------------------------------------------------------*/
+
+#include "vktSubgroupsSizeControlTests.hpp"
+#include "vktSubgroupsTestsUtils.hpp"
+#include "vktTestCaseUtil.hpp"
+#include "tcuTestLog.hpp"
+
+#include <string>
+#include <vector>
+
+using namespace tcu;
+using namespace std;
+using namespace vk;
+using namespace vkt;
+
+namespace
+{
+
+enum RequiredSubgroupSizeMode
+{
+       REQUIRED_SUBGROUP_SIZE_NONE     = 0,
+       REQUIRED_SUBGROUP_SIZE_MIN      = 1,
+       REQUIRED_SUBGROUP_SIZE_MAX      = 2,
+};
+
+struct CaseDefinition
+{
+       deUint32                                                        pipelineShaderStageCreateFlags;
+       VkShaderStageFlags                                      shaderStage;
+       deBool                                                          requiresBallot;
+       deUint32                                                        requiredSubgroupSizeMode;
+};
+
+struct internalDataStruct
+{
+       const Context*                  context;
+       struct CaseDefinition   caseDef;
+       deUint32                                requiredSubgroupSize;
+};
+
+// Find greatest common divisor for a and b
+deUint32 gcd (deUint32 a, deUint32 b)
+{
+       if ((0 != a) && (0 == b))
+       {
+               return a;
+       }
+       else
+       {
+               deUint32 greater = std::max(a, b);
+               deUint32 lesser  = std::min(a, b);
+
+               return gcd(lesser, greater % lesser);
+       }
+}
+
+void getLocalSizes (VkPhysicalDeviceProperties physicalDeviceProperties, deUint32 numWorkGroupInvocations,
+                                  deUint32& localSizeX, deUint32& localSizeY, deUint32& localSizeZ)
+{
+       DE_ASSERT(numWorkGroupInvocations <= physicalDeviceProperties.limits.maxComputeWorkGroupInvocations);
+       localSizeX = gcd(numWorkGroupInvocations, physicalDeviceProperties.limits.maxComputeWorkGroupSize[0]);
+       localSizeY = gcd(deMax32(numWorkGroupInvocations / localSizeX, 1u), physicalDeviceProperties.limits.maxComputeWorkGroupSize[1]);
+       localSizeZ = deMax32(numWorkGroupInvocations / (localSizeX * localSizeY), 1u);
+}
+
+deUint32 getRequiredSubgroupSizeFromMode (Context &context, const CaseDefinition caseDef,
+                                                                                 VkPhysicalDeviceSubgroupSizeControlPropertiesEXT subgroupSizeControlProperties)
+{
+       switch (caseDef.requiredSubgroupSizeMode)
+       {
+       case REQUIRED_SUBGROUP_SIZE_MAX:        return subgroupSizeControlProperties.maxSubgroupSize;
+       case REQUIRED_SUBGROUP_SIZE_MIN:        return subgroupSizeControlProperties.minSubgroupSize;
+       case REQUIRED_SUBGROUP_SIZE_NONE:       return vkt::subgroups::getSubgroupSize(context);
+       default:                                                        TCU_THROW(NotSupportedError, "Unsupported Subgroup size");
+       }
+}
+
+static bool checkVertexPipelineStages (const void* internalData, std::vector<const void*> datas,
+                                                                          deUint32 width, deUint32)
+{
+       const struct internalDataStruct *checkInternalData = reinterpret_cast<const struct internalDataStruct *>(internalData);
+       const Context *context = checkInternalData->context;
+       tcu::TestLog& log               = context->getTestContext().getLog();
+
+       VkPhysicalDeviceSubgroupSizeControlPropertiesEXT subgroupSizeControlProperties;
+       subgroupSizeControlProperties.sType = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBGROUP_SIZE_CONTROL_PROPERTIES_EXT;
+       subgroupSizeControlProperties.pNext = DE_NULL;
+       VkPhysicalDeviceProperties2 properties;
+       properties.sType = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROPERTIES_2;
+       properties.pNext = &subgroupSizeControlProperties;
+
+       context->getInstanceInterface().getPhysicalDeviceProperties2(context->getPhysicalDevice(), &properties);
+       const deUint32* data = reinterpret_cast<const deUint32*>(datas[0]);
+
+       for (deUint32 i = 0; i < width; i++)
+       {
+               if (data[i] > subgroupSizeControlProperties.maxSubgroupSize ||
+                       data[i] < subgroupSizeControlProperties.minSubgroupSize)
+               {
+                       log << tcu::TestLog::Message << "gl_SubgroupSize (" << data[i] << ") value is outside limits (" << subgroupSizeControlProperties.minSubgroupSize << ", " << subgroupSizeControlProperties.maxSubgroupSize << ")" << tcu::TestLog::EndMessage;
+                       return DE_FALSE;
+               }
+
+               if (checkInternalData->caseDef.requiredSubgroupSizeMode != REQUIRED_SUBGROUP_SIZE_NONE && data[i] != checkInternalData->requiredSubgroupSize)
+               {
+                       log << tcu::TestLog::Message << "gl_SubgroupSize (" << data[i] << ") is not equal to the required subgroup size value (" << checkInternalData->requiredSubgroupSize << ")" << tcu::TestLog::EndMessage;
+                       return DE_FALSE;
+               }
+       }
+
+       return DE_TRUE;
+}
+
+static bool checkFragmentPipelineStages (const void* internalData, std::vector<const void*> datas,
+                                                                                deUint32 width, deUint32 height, deUint32)
+{
+       const struct internalDataStruct *checkInternalData = reinterpret_cast<const struct internalDataStruct *>(internalData);
+       const Context *context = checkInternalData->context;
+       tcu::TestLog& log               = context->getTestContext().getLog();
+
+       VkPhysicalDeviceSubgroupSizeControlPropertiesEXT subgroupSizeControlProperties;
+       subgroupSizeControlProperties.sType = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBGROUP_SIZE_CONTROL_PROPERTIES_EXT;
+       subgroupSizeControlProperties.pNext = DE_NULL;
+       VkPhysicalDeviceProperties2 properties;
+       properties.sType = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROPERTIES_2;
+       properties.pNext = &subgroupSizeControlProperties;
+       context->getInstanceInterface().getPhysicalDeviceProperties2(context->getPhysicalDevice(), &properties);
+
+       const deUint32* data = reinterpret_cast<const deUint32*>(datas[0]);
+
+       for (deUint32 x = 0u; x < width; ++x)
+       {
+               for (deUint32 y = 0u; y < height; ++y)
+               {
+                       const deUint32 ndx = (x * height + y);
+
+                       if (data[ndx] > subgroupSizeControlProperties.maxSubgroupSize ||
+                               data[ndx] < subgroupSizeControlProperties.minSubgroupSize)
+                       {
+                               log << tcu::TestLog::Message << "gl_SubgroupSize (" << data[ndx] << ") value is outside limits (" << subgroupSizeControlProperties.minSubgroupSize << ", " << subgroupSizeControlProperties.maxSubgroupSize << ")" << tcu::TestLog::EndMessage;
+                               return DE_FALSE;
+                       }
+
+                       if (checkInternalData->caseDef.requiredSubgroupSizeMode != REQUIRED_SUBGROUP_SIZE_NONE &&
+                               data[ndx] != checkInternalData->requiredSubgroupSize)
+                       {
+                               log << tcu::TestLog::Message << "gl_SubgroupSize (" << data[ndx] << ") is not equal to the required subgroup size value (" << checkInternalData->requiredSubgroupSize << ")" << tcu::TestLog::EndMessage;
+                               return DE_FALSE;
+                       }
+               }
+       }
+       return true;
+}
+
+static bool checkCompute (const void* internalData, std::vector<const void*> datas,
+                                                 const deUint32 numWorkgroups[3], const deUint32 localSize[3],
+                                                 deUint32)
+{
+       const struct internalDataStruct *checkInternalData = reinterpret_cast<const struct internalDataStruct *>(internalData);
+       const Context *context = checkInternalData->context;
+       tcu::TestLog& log               = context->getTestContext().getLog();
+
+       VkPhysicalDeviceSubgroupSizeControlPropertiesEXT subgroupSizeControlProperties;
+       subgroupSizeControlProperties.sType = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBGROUP_SIZE_CONTROL_PROPERTIES_EXT;
+       subgroupSizeControlProperties.pNext = DE_NULL;
+       VkPhysicalDeviceProperties2 properties;
+       properties.sType = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROPERTIES_2;
+       properties.pNext = &subgroupSizeControlProperties;
+       context->getInstanceInterface().getPhysicalDeviceProperties2(context->getPhysicalDevice(), &properties);
+
+       const deUint32 globalSizeX = numWorkgroups[0] * localSize[0];
+       const deUint32 globalSizeY = numWorkgroups[1] * localSize[1];
+       const deUint32 globalSizeZ = numWorkgroups[2] * localSize[2];
+       const deUint32 width = globalSizeX * globalSizeY * globalSizeZ;
+       const deUint32* data = reinterpret_cast<const deUint32*>(datas[0]);
+
+       for (deUint32 i = 0; i < width; i++)
+       {
+               if (data[i] > subgroupSizeControlProperties.maxSubgroupSize ||
+                       data[i] < subgroupSizeControlProperties.minSubgroupSize)
+               {
+                       log << tcu::TestLog::Message << "[" << localSize[0] << ", " << localSize[1] << ", " << localSize[2] << "] "
+                               << "gl_SubgroupSize (" << data[i] << ") value is outside limits (" << subgroupSizeControlProperties.minSubgroupSize << ", " << subgroupSizeControlProperties.maxSubgroupSize << ")" << tcu::TestLog::EndMessage;
+                       return DE_FALSE;
+               }
+
+               if (checkInternalData->caseDef.requiredSubgroupSizeMode != REQUIRED_SUBGROUP_SIZE_NONE &&
+                       data[i] != checkInternalData->requiredSubgroupSize)
+               {
+                       log << tcu::TestLog::Message << "[" << localSize[0] << ", " << localSize[1] << ", " << localSize[2] << "] "
+                               << "gl_SubgroupSize (" << data[i] << ") is not equal to the required subgroup size value (" << checkInternalData->requiredSubgroupSize << ")" << tcu::TestLog::EndMessage;
+                       return DE_FALSE;
+               }
+       }
+
+       return DE_TRUE;
+}
+
+static bool checkComputeRequireFull (const void* internalData, std::vector<const void*> datas,
+                                                                        const deUint32 numWorkgroups[3], const deUint32 localSize[3],
+                                                                        deUint32)
+{
+       const struct internalDataStruct *checkInternalData = reinterpret_cast<const struct internalDataStruct *>(internalData);
+       const Context *context = checkInternalData->context;
+       tcu::TestLog& log               = context->getTestContext().getLog();
+
+       VkPhysicalDeviceSubgroupSizeControlPropertiesEXT subgroupSizeControlProperties;
+       subgroupSizeControlProperties.sType = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBGROUP_SIZE_CONTROL_PROPERTIES_EXT;
+       subgroupSizeControlProperties.pNext = DE_NULL;
+
+       VkPhysicalDeviceSubgroupProperties subgroupProperties;
+       subgroupProperties.sType = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBGROUP_PROPERTIES;
+       subgroupProperties.pNext = &subgroupSizeControlProperties;
+
+       VkPhysicalDeviceProperties2 properties;
+       properties.sType = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROPERTIES_2;
+       properties.pNext = &subgroupProperties;
+
+       context->getInstanceInterface().getPhysicalDeviceProperties2(context->getPhysicalDevice(), &properties);
+
+       const deUint32 globalSizeX = numWorkgroups[0] * localSize[0];
+       const deUint32 globalSizeY = numWorkgroups[1] * localSize[1];
+       const deUint32 globalSizeZ = numWorkgroups[2] * localSize[2];
+       const deUint32 width = globalSizeX * globalSizeY * globalSizeZ;
+       const UVec4* data = reinterpret_cast<const UVec4*>(datas[0]);
+
+       deUint32 numSubgroups = (localSize[0] * localSize[1] * localSize[2]) / checkInternalData->requiredSubgroupSize;
+
+       for (deUint32 i = 0; i < width; i++)
+       {
+               if (data[i].x() > subgroupSizeControlProperties.maxSubgroupSize ||
+                       data[i].x() < subgroupSizeControlProperties.minSubgroupSize)
+               {
+                       log << tcu::TestLog::Message << "[" << localSize[0] << ", " << localSize[1] << ", " << localSize[2] << "] "
+                               << "gl_SubgroupSize value ( " << data[i].x() << ") is outside limits [" << subgroupSizeControlProperties.minSubgroupSize << ", " << subgroupSizeControlProperties.maxSubgroupSize << "]" << tcu::TestLog::EndMessage;
+                       return DE_FALSE;
+               }
+
+               if (data[i].x() != data[i].y())
+               {
+                       log << tcu::TestLog::Message << "[" << localSize[0] << ", " << localSize[1] << ", " << localSize[2] << "] "
+                               << "gl_SubgroupSize ( " << data[i].x() << ") does not match the active number of subgroup invocations (" << data[i].y() << ")" << tcu::TestLog::EndMessage;
+                       return DE_FALSE;
+               }
+
+               if (checkInternalData->caseDef.pipelineShaderStageCreateFlags == VK_PIPELINE_SHADER_STAGE_CREATE_REQUIRE_FULL_SUBGROUPS_BIT_EXT &&
+                       data[i].x() != checkInternalData->requiredSubgroupSize)
+               {
+                       log << tcu::TestLog::Message << "[" << localSize[0] << ", " << localSize[1] << ", " << localSize[2] << "] "
+                               << "expected subgroupSize (" << checkInternalData->requiredSubgroupSize << ") doesn't match gl_SubgroupSize ( " << data[i].x() << ")" << tcu::TestLog::EndMessage;
+                       return DE_FALSE;
+               }
+
+               if (checkInternalData->caseDef.pipelineShaderStageCreateFlags == VK_PIPELINE_SHADER_STAGE_CREATE_REQUIRE_FULL_SUBGROUPS_BIT_EXT && data[i].z() != numSubgroups)
+               {
+                       log << tcu::TestLog::Message << "[" << localSize[0] << ", " << localSize[1] << ", " << localSize[2] << "] "
+                               << "expected number of subgroups dispatched (" << numSubgroups << ") doesn't match gl_NumSubgroups (" << data[i].z() << ")";
+                       return DE_FALSE;
+               }
+       }
+
+       return DE_TRUE;
+}
+
+void initFrameBufferPrograms (SourceCollections& programCollection, CaseDefinition caseDef)
+{
+       const vk::ShaderBuildOptions    buildOptions    (programCollection.usedVulkanVersion, vk::SPIRV_VERSION_1_3, 0u);
+
+       if (VK_SHADER_STAGE_FRAGMENT_BIT != caseDef.shaderStage)
+               subgroups::setFragmentShaderFrameBuffer(programCollection);
+
+       if (VK_SHADER_STAGE_VERTEX_BIT != caseDef.shaderStage && VK_SHADER_STAGE_FRAGMENT_BIT != caseDef.shaderStage)
+               subgroups::setVertexShaderFrameBuffer(programCollection);
+
+       std::string bdyStr = "uint tempResult = gl_SubgroupSize;\n";
+
+       if (VK_SHADER_STAGE_VERTEX_BIT == caseDef.shaderStage)
+       {
+               std::ostringstream                              vertex;
+               vertex << glu::getGLSLVersionDeclaration(glu::GLSL_VERSION_450)<<"\n"
+                       << "#extension GL_KHR_shader_subgroup_basic: enable\n"
+                       << "layout(location = 0) in highp vec4 in_position;\n"
+                       << "layout(location = 0) out float out_color;\n"
+                       << "\n"
+                       << "void main (void)\n"
+                       << "{\n"
+                       << bdyStr
+                       << "  out_color = float(tempResult);\n"
+                       << "  gl_Position = in_position;\n"
+                       << "  gl_PointSize = 1.0f;\n"
+                       << "}\n";
+               programCollection.glslSources.add("vert")
+                       << glu::VertexSource(vertex.str()) << buildOptions;
+       }
+       else if (VK_SHADER_STAGE_GEOMETRY_BIT == caseDef.shaderStage)
+       {
+               std::ostringstream geometry;
+
+               geometry << glu::getGLSLVersionDeclaration(glu::GLSL_VERSION_450)<<"\n"
+                       << "#extension GL_KHR_shader_subgroup_basic: enable\n"
+                       << "layout(points) in;\n"
+                       << "layout(points, max_vertices = 1) out;\n"
+                       << "layout(location = 0) out float out_color;\n"
+                       << "void main (void)\n"
+                       << "{\n"
+                       << bdyStr
+                       << "  out_color = float(tempResult);\n"
+                       << "  gl_Position = gl_in[0].gl_Position;\n"
+                       << "  gl_PointSize = 1.0f;"
+                       << "  EmitVertex();\n"
+                       << "  EndPrimitive();\n"
+                       << "}\n";
+
+               programCollection.glslSources.add("geometry")
+                       << glu::GeometrySource(geometry.str()) << buildOptions;
+       }
+       else if (VK_SHADER_STAGE_TESSELLATION_CONTROL_BIT == caseDef.shaderStage)
+       {
+               std::ostringstream controlSource;
+
+               controlSource << glu::getGLSLVersionDeclaration(glu::GLSL_VERSION_450)<<"\n"
+                       << "#extension GL_KHR_shader_subgroup_basic: enable\n"
+                       << "layout(vertices = 2) out;\n"
+                       << "layout(location = 0) out float out_color[];\n"
+                       << "\n"
+                       << "void main (void)\n"
+                       << "{\n"
+                       << "  if (gl_InvocationID == 0)\n"
+                       << "  {\n"
+                       << "    gl_TessLevelOuter[0] = 1.0f;\n"
+                       << "    gl_TessLevelOuter[1] = 1.0f;\n"
+                       << "  }\n"
+                       << bdyStr
+                       << "  out_color[gl_InvocationID ] = float(tempResult);\n"
+                       << "  gl_out[gl_InvocationID].gl_Position = gl_in[gl_InvocationID].gl_Position;\n"
+                       << "}\n";
+
+               programCollection.glslSources.add("tesc")
+                       << glu::TessellationControlSource(controlSource.str()) << buildOptions;
+               subgroups::setTesEvalShaderFrameBuffer(programCollection);
+       }
+       else if (VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT == caseDef.shaderStage)
+       {
+               std::ostringstream evaluationSource;
+               evaluationSource << glu::getGLSLVersionDeclaration(glu::GLSL_VERSION_450)<<"\n"
+                       << "#extension GL_KHR_shader_subgroup_basic: enable\n"
+                       << "layout(isolines, equal_spacing, ccw ) in;\n"
+                       << "layout(location = 0) out float out_color;\n"
+                       << "void main (void)\n"
+                       << "{\n"
+                       << bdyStr
+                       << "  out_color  = float(tempResult);\n"
+                       << "  gl_Position = mix(gl_in[0].gl_Position, gl_in[1].gl_Position, gl_TessCoord.x);\n"
+                       << "}\n";
+
+               subgroups::setTesCtrlShaderFrameBuffer(programCollection);
+               programCollection.glslSources.add("tese")
+                       << glu::TessellationEvaluationSource(evaluationSource.str()) << buildOptions;
+       }
+       else if (VK_SHADER_STAGE_FRAGMENT_BIT == caseDef.shaderStage)
+       {
+               const string vertex     = string(glu::getGLSLVersionDeclaration(glu::GLSL_VERSION_450)) + "\n"
+                       "void main (void)\n"
+                       "{\n"
+                       "  vec2 uv = vec2(float(gl_VertexIndex & 1), float((gl_VertexIndex >> 1) & 1));\n"
+                       "  gl_Position = vec4(uv * 4.0f -2.0f, 0.0f, 1.0f);\n"
+                       "  gl_PointSize = 1.0f;\n"
+                       "}\n";
+               programCollection.glslSources.add("vert") << glu::VertexSource(vertex) << buildOptions;
+
+               std::ostringstream fragmentSource;
+               fragmentSource << glu::getGLSLVersionDeclaration(glu::GLSL_VERSION_450)<<"\n"
+                                          << "precision highp int;\n"
+                                               << "#extension GL_KHR_shader_subgroup_basic: enable\n"
+                                          << "layout(location = 0) out uint out_color;\n"
+                                          << "void main()\n"
+                                          << "{\n"
+                                          << bdyStr
+                                          << "  out_color = tempResult;\n"
+                                          << "}\n";
+               programCollection.glslSources.add("fragment")
+                       << glu::FragmentSource(fragmentSource.str()) << buildOptions;
+       }
+       else
+       {
+               DE_FATAL("Unsupported shader stage");
+       }
+}
+
+void initPrograms (SourceCollections& programCollection, CaseDefinition caseDef)
+{
+       std::string bdyStr = "  uint tempResult = gl_SubgroupSize;\n";
+
+       if (VK_SHADER_STAGE_COMPUTE_BIT == caseDef.shaderStage)
+       {
+               std::ostringstream src;
+
+               src << "#version 450\n"
+                       << "#extension GL_KHR_shader_subgroup_basic: enable\n"
+                       << "layout (local_size_x_id = 0, local_size_y_id = 1, "
+                       "local_size_z_id = 2) in;\n"
+                       << "layout(set = 0, binding = 0, std430) buffer Buffer1\n"
+                       << "{\n"
+                       << "  uint result[];\n"
+                       << "};\n"
+                       << "\n"
+                       << "void main (void)\n"
+                       << "{\n"
+                       << "  uvec3 globalSize = gl_NumWorkGroups * gl_WorkGroupSize;\n"
+                       << "  highp uint offset = globalSize.x * ((globalSize.y * "
+                       "gl_GlobalInvocationID.z) + gl_GlobalInvocationID.y) + "
+                       "gl_GlobalInvocationID.x;\n"
+                       << bdyStr
+                       << "  result[offset] = tempResult;\n"
+                       << "}\n";
+
+               programCollection.glslSources.add("comp")
+                               << glu::ComputeSource(src.str()) << vk::ShaderBuildOptions(programCollection.usedVulkanVersion, vk::SPIRV_VERSION_1_3, 0u);
+       }
+       else
+       {
+               const string vertex =
+                       "#version 450\n"
+                       "#extension GL_KHR_shader_subgroup_basic: enable\n"
+                       "layout(set = 0, binding = 0, std430) buffer Buffer1\n"
+                       "{\n"
+                       "  uint result[];\n"
+                       "};\n"
+                       "\n"
+                       "void main (void)\n"
+                       "{\n"
+                       + bdyStr +
+                       "  result[gl_VertexIndex] = tempResult;\n"
+                       "  float pixelSize = 2.0f/1024.0f;\n"
+                       "  float pixelPosition = pixelSize/2.0f - 1.0f;\n"
+                       "  gl_Position = vec4(float(gl_VertexIndex) * pixelSize + pixelPosition, 0.0f, 0.0f, 1.0f);\n"
+                       "  gl_PointSize = 1.0f;\n"
+                       "}\n";
+
+               const string tesc =
+                       "#version 450\n"
+                       "#extension GL_KHR_shader_subgroup_basic: enable\n"
+                       "layout(vertices=1) out;\n"
+                       "layout(set = 0, binding = 1, std430) buffer Buffer1\n"
+                       "{\n"
+                       "  uint result[];\n"
+                       "};\n"
+                       "\n"
+                       "void main (void)\n"
+                       "{\n"
+                       + bdyStr +
+                       "  result[gl_PrimitiveID] = tempResult;\n"
+                       "  if (gl_InvocationID == 0)\n"
+                       "  {\n"
+                       "    gl_TessLevelOuter[0] = 1.0f;\n"
+                       "    gl_TessLevelOuter[1] = 1.0f;\n"
+                       "  }\n"
+                       "  gl_out[gl_InvocationID].gl_Position = gl_in[gl_InvocationID].gl_Position;\n"
+                       "}\n";
+
+               const string tese =
+                       "#version 450\n"
+                       "#extension GL_KHR_shader_subgroup_basic: enable\n"
+                       "layout(isolines) in;\n"
+                       "layout(set = 0, binding = 2, std430) buffer Buffer1\n"
+                       "{\n"
+                       "  uint result[];\n"
+                       "};\n"
+                       "\n"
+                       "void main (void)\n"
+                       "{\n"
+                       + bdyStr +
+                       "  result[gl_PrimitiveID * 2 + uint(gl_TessCoord.x + 0.5)] = tempResult;\n"
+                       "  float pixelSize = 2.0f/1024.0f;\n"
+                       "  gl_Position = gl_in[0].gl_Position + gl_TessCoord.x * pixelSize / 2.0f;\n"
+                       "}\n";
+
+               const string geometry =
+                       "#version 450\n"
+                       "#extension GL_KHR_shader_subgroup_basic: enable\n"
+                       "layout(${TOPOLOGY}) in;\n"
+                       "layout(points, max_vertices = 1) out;\n"
+                       "layout(set = 0, binding = 3, std430) buffer Buffer1\n"
+                       "{\n"
+                       "  uint result[];\n"
+                       "};\n"
+                       "\n"
+                       "void main (void)\n"
+                       "{\n"
+                       + bdyStr +
+                       "  result[gl_PrimitiveIDIn] = tempResult;\n"
+                       "  gl_Position = gl_in[0].gl_Position;\n"
+                       "  gl_PointSize = 1.0f;\n"
+                       "  EmitVertex();\n"
+                       "  EndPrimitive();\n"
+                       "}\n";
+
+               const string fragment =
+                       "#version 450\n"
+                       "#extension GL_KHR_shader_subgroup_basic: enable\n"
+                       "layout(location = 0) out uint result;\n"
+                       "void main (void)\n"
+                       "{\n"
+                       + bdyStr +
+                       "  result = tempResult;\n"
+                       "}\n";
+
+               subgroups::addNoSubgroupShader(programCollection);
+
+               programCollection.glslSources.add("vert")
+                               << glu::VertexSource(vertex) << vk::ShaderBuildOptions(programCollection.usedVulkanVersion, vk::SPIRV_VERSION_1_3, 0u);
+               programCollection.glslSources.add("tesc")
+                               << glu::TessellationControlSource(tesc) << vk::ShaderBuildOptions(programCollection.usedVulkanVersion, vk::SPIRV_VERSION_1_3, 0u);
+               programCollection.glslSources.add("tese")
+                               << glu::TessellationEvaluationSource(tese) << vk::ShaderBuildOptions(programCollection.usedVulkanVersion, vk::SPIRV_VERSION_1_3, 0u);
+               subgroups::addGeometryShadersFromTemplate(geometry, vk::ShaderBuildOptions(programCollection.usedVulkanVersion, vk::SPIRV_VERSION_1_3, 0u),
+                                                                                                 programCollection.glslSources);
+               programCollection.glslSources.add("fragment")
+                               << glu::FragmentSource(fragment)<< vk::ShaderBuildOptions(programCollection.usedVulkanVersion, vk::SPIRV_VERSION_1_3, 0u);
+       }
+}
+
+void initProgramsRequireFull (SourceCollections& programCollection, CaseDefinition caseDef)
+{
+       if (VK_SHADER_STAGE_COMPUTE_BIT != caseDef.shaderStage)
+               DE_FATAL("Unsupported shader stage");
+
+       std::string bdyStr = "  uint tempResult = gl_SubgroupSize;\n";
+
+       std::ostringstream src;
+
+       src << "#version 450\n"
+               << "#extension GL_KHR_shader_subgroup_basic: enable\n"
+               << "#extension GL_KHR_shader_subgroup_ballot: enable\n"
+               << "layout (local_size_x_id = 0, local_size_y_id = 1, "
+               "local_size_z_id = 2) in;\n"
+               << "layout(set = 0, binding = 0, std430) buffer Buffer1\n"
+               << "{\n"
+               << "  uvec4 result[];\n"
+               << "};\n"
+               << "\n"
+               << "void main (void)\n"
+               << "{\n"
+               << "  uvec3 globalSize = gl_NumWorkGroups * gl_WorkGroupSize;\n"
+               << "  highp uint offset = globalSize.x * ((globalSize.y * "
+               "gl_GlobalInvocationID.z) + gl_GlobalInvocationID.y) + "
+               "gl_GlobalInvocationID.x;\n"
+               << "   result[offset].x = gl_SubgroupSize;" // save the subgroup size value
+               << "   uint numActive = subgroupBallotBitCount(subgroupBallot(true));\n"
+               << "   result[offset].y = numActive;\n" // save the number of active subgroup invocations
+               << "   result[offset].z = gl_NumSubgroups;" // save the number of subgroups dispatched.
+               << "}\n";
+
+       programCollection.glslSources.add("comp")
+               << glu::ComputeSource(src.str()) << vk::ShaderBuildOptions(programCollection.usedVulkanVersion, vk::SPIRV_VERSION_1_3, 0u);
+}
+
+void supportedCheck (Context& context)
+{
+       if (!subgroups::isSubgroupSupported(context))
+               TCU_THROW(NotSupportedError, "Subgroup operations are not supported");
+
+       if (!context.requireDeviceFunctionality("VK_EXT_subgroup_size_control"))
+       {
+               TCU_THROW(NotSupportedError, "Device does not support VK_EXT_subgroups_size_control extension");
+       }
+}
+
+void supportedCheckFeatures (Context& context, CaseDefinition caseDef)
+{
+       supportedCheck(context);
+
+       if (!subgroups::areSubgroupOperationsSupportedForStage(context, caseDef.shaderStage))
+       {
+               TCU_THROW(NotSupportedError, "Shader stage is required to support subgroup operations!");
+       }
+
+       if (caseDef.shaderStage == VK_SHADER_STAGE_ALL_GRAPHICS)
+       {
+               VkPhysicalDeviceFeatures features;
+               context.getInstanceInterface().getPhysicalDeviceFeatures(context.getPhysicalDevice(), &features);
+               if (!features.tessellationShader || !features.geometryShader)
+                       TCU_THROW(NotSupportedError, "Device does not support tessellation or geometry shaders");
+       }
+
+       if (caseDef.requiresBallot && !subgroups::isSubgroupFeatureSupportedForDevice(context, VK_SUBGROUP_FEATURE_BALLOT_BIT))
+       {
+               TCU_THROW(NotSupportedError, "Device does not support subgroup ballot operations");
+       }
+
+       if (caseDef.requiredSubgroupSizeMode != REQUIRED_SUBGROUP_SIZE_NONE ||
+               caseDef.pipelineShaderStageCreateFlags == VK_PIPELINE_SHADER_STAGE_CREATE_ALLOW_VARYING_SUBGROUP_SIZE_BIT_EXT)
+       {
+               VkPhysicalDeviceSubgroupSizeControlFeaturesEXT subgroupSizeControlFeatures;
+               subgroupSizeControlFeatures.sType = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBGROUP_SIZE_CONTROL_FEATURES_EXT;
+               subgroupSizeControlFeatures.pNext = DE_NULL;
+
+               VkPhysicalDeviceFeatures2 features;
+               features.sType = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FEATURES_2;
+               features.pNext = &subgroupSizeControlFeatures;
+
+               context.getInstanceInterface().getPhysicalDeviceFeatures2(context.getPhysicalDevice(), &features);
+
+               if (subgroupSizeControlFeatures.subgroupSizeControl == DE_FALSE)
+                       TCU_THROW(NotSupportedError, "Device does not support varying subgroup sizes nor required subgroup size");
+
+               if (caseDef.requiredSubgroupSizeMode != REQUIRED_SUBGROUP_SIZE_NONE)
+               {
+                       VkPhysicalDeviceSubgroupSizeControlPropertiesEXT subgroupSizeControlProperties;
+                       subgroupSizeControlProperties.sType = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBGROUP_SIZE_CONTROL_PROPERTIES_EXT;
+                       subgroupSizeControlProperties.pNext = DE_NULL;
+
+                       VkPhysicalDeviceProperties2 properties;
+                       properties.sType = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROPERTIES_2;
+                       properties.pNext = &subgroupSizeControlProperties;
+
+                       context.getInstanceInterface().getPhysicalDeviceProperties2(context.getPhysicalDevice(), &properties);
+
+                       if ((subgroupSizeControlProperties.requiredSubgroupSizeStages & caseDef.shaderStage) != caseDef.shaderStage)
+                               TCU_THROW(NotSupportedError, "Device does not support setting required subgroup size for the stages selected");
+               }
+       }
+
+       if (caseDef.pipelineShaderStageCreateFlags == VK_PIPELINE_SHADER_STAGE_CREATE_REQUIRE_FULL_SUBGROUPS_BIT_EXT)
+       {
+               VkPhysicalDeviceSubgroupSizeControlFeaturesEXT subgroupSizeControlFeatures;
+               subgroupSizeControlFeatures.sType = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBGROUP_SIZE_CONTROL_FEATURES_EXT;
+               subgroupSizeControlFeatures.pNext = DE_NULL;
+
+               VkPhysicalDeviceFeatures2 features;
+               features.sType = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FEATURES_2;
+               features.pNext = &subgroupSizeControlFeatures;
+
+               context.getInstanceInterface().getPhysicalDeviceFeatures2(context.getPhysicalDevice(), &features);
+
+               if (subgroupSizeControlFeatures.computeFullSubgroups == DE_FALSE)
+                       TCU_THROW(NotSupportedError, "Device does not support full subgroups in compute shaders");
+       }
+}
+
+tcu::TestStatus noSSBOtest (Context& context, const CaseDefinition caseDef)
+{
+       struct internalDataStruct internalData =
+       {
+               &context,
+               caseDef,
+               0u,
+       };
+
+       if (VK_SHADER_STAGE_VERTEX_BIT == caseDef.shaderStage)
+               return subgroups::makeVertexFrameBufferTestRequiredSubgroupSize(context, VK_FORMAT_R32_UINT, DE_NULL, 0, &internalData, checkVertexPipelineStages, caseDef.pipelineShaderStageCreateFlags, 0u);
+       else if (VK_SHADER_STAGE_GEOMETRY_BIT == caseDef.shaderStage)
+               return subgroups::makeGeometryFrameBufferTestRequiredSubgroupSize(context, VK_FORMAT_R32_UINT, DE_NULL, 0, &internalData, checkVertexPipelineStages, caseDef.pipelineShaderStageCreateFlags, 0u);
+       else if ((VK_SHADER_STAGE_TESSELLATION_CONTROL_BIT | VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT) & caseDef.shaderStage)
+               return subgroups::makeTessellationEvaluationFrameBufferTestRequiredSubgroupSize(context, VK_FORMAT_R32_UINT, DE_NULL, 0, &internalData, checkVertexPipelineStages, caseDef.shaderStage, caseDef.pipelineShaderStageCreateFlags, 0u);
+       else if (VK_SHADER_STAGE_FRAGMENT_BIT == caseDef.shaderStage)
+               return subgroups::makeFragmentFrameBufferTestRequiredSubgroupSize(context, VK_FORMAT_R32_UINT, DE_NULL, 0, &internalData, checkFragmentPipelineStages, caseDef.pipelineShaderStageCreateFlags, 0u);
+
+       else
+               TCU_THROW(InternalError, "Unhandled shader stage");
+}
+
+tcu::TestStatus test (Context& context, const CaseDefinition caseDef)
+{
+       if (VK_SHADER_STAGE_COMPUTE_BIT == caseDef.shaderStage)
+       {
+               const deUint32 numWorkgroups[3] = {1, 1, 1};
+               deUint32 subgroupSize = vkt::subgroups::getSubgroupSize(context);
+
+               VkPhysicalDeviceProperties physicalDeviceProperties;
+               context.getInstanceInterface().getPhysicalDeviceProperties(context.getPhysicalDevice(), &physicalDeviceProperties);
+               deUint32 localSizeX, localSizeY, localSizeZ;
+               // Calculate the local workgroup sizes to exercise the maximum supported by the driver
+               getLocalSizes(physicalDeviceProperties, physicalDeviceProperties.limits.maxComputeWorkGroupInvocations, localSizeX, localSizeY, localSizeZ);
+
+               const deUint32 localSizesToTestCount = 16;
+               deUint32 localSizesToTest[localSizesToTestCount][3] =
+               {
+                       {1, 1, 1},
+                       {32, 4, 1},
+                       {32, 1, 4},
+                       {1, 32, 4},
+                       {1, 4, 32},
+                       {4, 1, 32},
+                       {4, 32, 1},
+                       {subgroupSize, 1, 1},
+                       {1, subgroupSize, 1},
+                       {1, 1, subgroupSize},
+                       {3, 5, 7},
+                       {128, 1, 1},
+                       {1, 128, 1},
+                       {1, 1, 64},
+                       {localSizeX, localSizeY, localSizeZ},
+                       {1, 1, 1} // Isn't used, just here to make double buffering checks easier
+               };
+
+               struct internalDataStruct internalData =
+               {
+                       &context,
+                       caseDef,
+                       subgroupSize,
+               };
+
+               return subgroups::makeComputeTestRequiredSubgroupSize(context, VK_FORMAT_R32_UINT, DE_NULL, 0, &internalData, checkCompute,
+                                                                                                                         caseDef.pipelineShaderStageCreateFlags, numWorkgroups, DE_FALSE, subgroupSize,
+                                                                                                                         localSizesToTest, localSizesToTestCount);
+       }
+       else
+       {
+               VkPhysicalDeviceSubgroupProperties subgroupProperties;
+               subgroupProperties.sType = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBGROUP_PROPERTIES;
+               subgroupProperties.pNext = DE_NULL;
+
+               VkPhysicalDeviceProperties2 properties;
+               properties.sType = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROPERTIES_2;
+               properties.pNext = &subgroupProperties;
+
+               context.getInstanceInterface().getPhysicalDeviceProperties2(context.getPhysicalDevice(), &properties);
+
+               VkShaderStageFlagBits stages = (VkShaderStageFlagBits)(caseDef.shaderStage  & subgroupProperties.supportedStages);
+
+               if ( VK_SHADER_STAGE_FRAGMENT_BIT != stages && !subgroups::isVertexSSBOSupportedForDevice(context))
+               {
+                       if ( (stages & VK_SHADER_STAGE_FRAGMENT_BIT) == 0)
+                               TCU_THROW(NotSupportedError, "Device does not support vertex stage SSBO writes");
+                       else
+                               stages = VK_SHADER_STAGE_FRAGMENT_BIT;
+               }
+
+               if ((VkShaderStageFlagBits)0u == stages)
+                       TCU_THROW(NotSupportedError, "Subgroup operations are not supported for any graphic shader");
+
+               struct internalDataStruct internalData =
+               {
+                       &context,
+                       caseDef,
+                       0u,
+               };
+
+               return subgroups::allStagesRequiredSubgroupSize(context, VK_FORMAT_R32_UINT, DE_NULL, 0, &internalData, checkVertexPipelineStages, stages,
+                                                                                                               caseDef.pipelineShaderStageCreateFlags, caseDef.pipelineShaderStageCreateFlags, caseDef.pipelineShaderStageCreateFlags,
+                                                                                                               caseDef.pipelineShaderStageCreateFlags, caseDef.pipelineShaderStageCreateFlags, DE_NULL);
+       }
+       return tcu::TestStatus::pass("OK");
+}
+
+tcu::TestStatus testRequireFullSubgroups (Context& context, const CaseDefinition caseDef)
+{
+       DE_ASSERT(VK_SHADER_STAGE_COMPUTE_BIT == caseDef.shaderStage);
+       DE_ASSERT(caseDef.requiredSubgroupSizeMode == REQUIRED_SUBGROUP_SIZE_NONE);
+
+       const deUint32 numWorkgroups[3] = {1, 1, 1};
+
+       VkPhysicalDeviceSubgroupSizeControlPropertiesEXT subgroupSizeControlProperties;
+       subgroupSizeControlProperties.sType = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBGROUP_SIZE_CONTROL_PROPERTIES_EXT;
+       subgroupSizeControlProperties.pNext = DE_NULL;
+
+       VkPhysicalDeviceProperties2 properties;
+       properties.sType = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROPERTIES_2;
+       properties.pNext = &subgroupSizeControlProperties;
+
+       context.getInstanceInterface().getPhysicalDeviceProperties2(context.getPhysicalDevice(), &properties);
+
+       VkPhysicalDeviceProperties physicalDeviceProperties;
+       context.getInstanceInterface().getPhysicalDeviceProperties(context.getPhysicalDevice(), &physicalDeviceProperties);
+
+       deUint32 localSizeX, localSizeY, localSizeZ;
+       // Calculate the local workgroup sizes to exercise the maximum supported by the driver
+       getLocalSizes(physicalDeviceProperties, physicalDeviceProperties.limits.maxComputeWorkGroupInvocations, localSizeX, localSizeY, localSizeZ);
+
+       const deUint32 subgroupSize = vkt::subgroups::getSubgroupSize(context);
+
+       // For full subgroups and allow varying subgroup size, localsize X must be a multiple of maxSubgroupSize.
+       // We set local size X for this test to the maximum, regardless if allow varying subgroup size is enabled or not.
+       const deUint32 localSizesToTestCount = 7;
+       deUint32 localSizesToTest[localSizesToTestCount][3] =
+       {
+               {subgroupSizeControlProperties.maxSubgroupSize, 1, 1},
+               {subgroupSizeControlProperties.maxSubgroupSize, 4, 1},
+               {subgroupSizeControlProperties.maxSubgroupSize, 1, 4},
+               {subgroupSizeControlProperties.maxSubgroupSize * 2, 1, 2},
+               {subgroupSizeControlProperties.maxSubgroupSize * 4, 1, 1},
+               {localSizeX, localSizeY, localSizeZ},
+               {1, 1, 1} // Isn't used, just here to make double buffering checks easier
+       };
+
+       struct internalDataStruct internalData =
+       {
+               &context,
+               caseDef,
+               subgroupSize,
+       };
+
+       return subgroups::makeComputeTestRequiredSubgroupSize(context, VK_FORMAT_R32G32B32A32_UINT, DE_NULL, 0, &internalData, checkComputeRequireFull,
+                                                                                                                 caseDef.pipelineShaderStageCreateFlags, numWorkgroups, DE_FALSE, subgroupSize,
+                                                                                                                 localSizesToTest, localSizesToTestCount);
+}
+
+tcu::TestStatus testRequireSubgroupSize (Context& context, const CaseDefinition caseDef)
+{
+       if (VK_SHADER_STAGE_COMPUTE_BIT == caseDef.shaderStage)
+       {
+               const deUint32 numWorkgroups[3] = {1, 1, 1};
+
+               VkPhysicalDeviceSubgroupSizeControlPropertiesEXT subgroupSizeControlProperties;
+               subgroupSizeControlProperties.sType = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBGROUP_SIZE_CONTROL_PROPERTIES_EXT;
+               subgroupSizeControlProperties.pNext = DE_NULL;
+
+               VkPhysicalDeviceProperties2 properties2;
+               properties2.sType = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROPERTIES_2;
+               properties2.pNext = &subgroupSizeControlProperties;
+               context.getInstanceInterface().getPhysicalDeviceProperties2(context.getPhysicalDevice(), &properties2);
+
+               VkPhysicalDeviceProperties physicalDeviceProperties;
+               context.getInstanceInterface().getPhysicalDeviceProperties(context.getPhysicalDevice(), &physicalDeviceProperties);
+
+               deUint32 requiredSubgroupSize = getRequiredSubgroupSizeFromMode(context, caseDef, subgroupSizeControlProperties);
+
+               const deUint32 maxTotalLocalSize = deMin32(requiredSubgroupSize * subgroupSizeControlProperties.maxComputeWorkgroupSubgroups, physicalDeviceProperties.limits.maxComputeWorkGroupInvocations);
+               deUint32 localSizeX, localSizeY, localSizeZ;
+               getLocalSizes(physicalDeviceProperties, maxTotalLocalSize, localSizeX, localSizeY, localSizeZ);
+
+               const deUint32 localSizesToTestCount = 5;
+               deUint32 localSizesToTest[localSizesToTestCount][3] =
+               {
+                       {requiredSubgroupSize, 1, 1},
+                       {1, requiredSubgroupSize, 1},
+                       {1, 1, requiredSubgroupSize},
+                       {localSizeX, localSizeY, localSizeZ},
+                       {1, 1, 1} // Isn't used, just here to make double buffering checks easier
+               };
+
+               struct internalDataStruct internalData =
+               {
+                       &context,
+                       caseDef,
+                       requiredSubgroupSize,
+               };
+
+               // Depending on the flag we need to run one verification function or another.
+               return subgroups::makeComputeTestRequiredSubgroupSize(context, VK_FORMAT_R32G32B32A32_UINT, DE_NULL, 0, &internalData,
+                                                                                                                         caseDef.pipelineShaderStageCreateFlags == VK_PIPELINE_SHADER_STAGE_CREATE_REQUIRE_FULL_SUBGROUPS_BIT_EXT ? checkComputeRequireFull : checkCompute,
+                                                                                                                         caseDef.pipelineShaderStageCreateFlags, numWorkgroups, DE_TRUE, requiredSubgroupSize,
+                                                                                                                         localSizesToTest, localSizesToTestCount);
+       }
+       else
+       {
+               VkPhysicalDeviceSubgroupSizeControlPropertiesEXT subgroupSizeControlProperties;
+               subgroupSizeControlProperties.sType = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBGROUP_SIZE_CONTROL_PROPERTIES_EXT;
+               subgroupSizeControlProperties.pNext = DE_NULL;
+
+               VkPhysicalDeviceSubgroupProperties subgroupProperties;
+               subgroupProperties.sType = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBGROUP_PROPERTIES;
+               subgroupProperties.pNext = &subgroupSizeControlProperties;
+
+               VkPhysicalDeviceProperties2 properties;
+               properties.sType = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROPERTIES_2;
+               properties.pNext = &subgroupProperties;
+
+               context.getInstanceInterface().getPhysicalDeviceProperties2(context.getPhysicalDevice(), &properties);
+
+               VkShaderStageFlagBits stages = (VkShaderStageFlagBits)(caseDef.shaderStage  & subgroupProperties.supportedStages);
+
+               if ( VK_SHADER_STAGE_FRAGMENT_BIT != stages && !subgroups::isVertexSSBOSupportedForDevice(context))
+               {
+                       if ( (stages & VK_SHADER_STAGE_FRAGMENT_BIT) == 0)
+                               TCU_THROW(NotSupportedError, "Device does not support vertex stage SSBO writes");
+                       else
+                               stages = VK_SHADER_STAGE_FRAGMENT_BIT;
+               }
+
+               if ((VkShaderStageFlagBits)0u == stages)
+                       TCU_THROW(NotSupportedError, "Subgroup operations are not supported for any graphic shader");
+
+               deUint32 requiredSubgroupSize = getRequiredSubgroupSizeFromMode(context, caseDef, subgroupSizeControlProperties);
+               const deUint32 requiredSubgroupSizes[5] = { requiredSubgroupSize, requiredSubgroupSize, requiredSubgroupSize, requiredSubgroupSize, requiredSubgroupSize};
+               struct internalDataStruct internalData =
+               {
+                       &context,
+                       caseDef,
+                       requiredSubgroupSize,
+               };
+               return subgroups::allStagesRequiredSubgroupSize(context, VK_FORMAT_R32_UINT, DE_NULL, 0, &internalData, checkVertexPipelineStages, stages,
+                                                                                                               caseDef.pipelineShaderStageCreateFlags, caseDef.pipelineShaderStageCreateFlags, caseDef.pipelineShaderStageCreateFlags,
+                                                                                                               caseDef.pipelineShaderStageCreateFlags, caseDef.pipelineShaderStageCreateFlags, requiredSubgroupSizes);
+       }
+       return tcu::TestStatus::pass("OK");
+}
+
+tcu::TestStatus noSSBOtestRequireSubgroupSize (Context& context, const CaseDefinition caseDef)
+{
+       VkPhysicalDeviceSubgroupSizeControlPropertiesEXT subgroupSizeControlProperties;
+       subgroupSizeControlProperties.sType = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBGROUP_SIZE_CONTROL_PROPERTIES_EXT;
+       subgroupSizeControlProperties.pNext = DE_NULL;
+
+       VkPhysicalDeviceSubgroupProperties subgroupProperties;
+       subgroupProperties.sType = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBGROUP_PROPERTIES;
+       subgroupProperties.pNext = &subgroupSizeControlProperties;
+
+       VkPhysicalDeviceProperties2 properties;
+       properties.sType = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROPERTIES_2;
+       properties.pNext = &subgroupProperties;
+
+       context.getInstanceInterface().getPhysicalDeviceProperties2(context.getPhysicalDevice(), &properties);
+
+       VkShaderStageFlagBits stages = (VkShaderStageFlagBits)(caseDef.shaderStage  & subgroupProperties.supportedStages);
+       if ((VkShaderStageFlagBits)0u == stages)
+               TCU_THROW(NotSupportedError, "Subgroup operations are not supported for any graphic shader");
+
+       deUint32 requiredSubgroupSize = getRequiredSubgroupSizeFromMode(context, caseDef, subgroupSizeControlProperties);
+       struct internalDataStruct internalData =
+       {
+               &context,
+               caseDef,
+               requiredSubgroupSize,
+       };
+
+       if (VK_SHADER_STAGE_VERTEX_BIT == caseDef.shaderStage)
+               return subgroups::makeVertexFrameBufferTestRequiredSubgroupSize(context, VK_FORMAT_R32_UINT, DE_NULL, 0, &internalData, checkVertexPipelineStages, caseDef.pipelineShaderStageCreateFlags, requiredSubgroupSize);
+       else if (VK_SHADER_STAGE_GEOMETRY_BIT == caseDef.shaderStage)
+               return subgroups::makeGeometryFrameBufferTestRequiredSubgroupSize(context, VK_FORMAT_R32_UINT, DE_NULL, 0, &internalData, checkVertexPipelineStages, caseDef.pipelineShaderStageCreateFlags, requiredSubgroupSize);
+       else if ((VK_SHADER_STAGE_TESSELLATION_CONTROL_BIT | VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT) & caseDef.shaderStage)
+               return subgroups::makeTessellationEvaluationFrameBufferTestRequiredSubgroupSize(context, VK_FORMAT_R32_UINT, DE_NULL, 0, &internalData, checkVertexPipelineStages, caseDef.shaderStage, caseDef.pipelineShaderStageCreateFlags, requiredSubgroupSize);
+       else if (VK_SHADER_STAGE_FRAGMENT_BIT & caseDef.shaderStage)
+               return subgroups::makeFragmentFrameBufferTestRequiredSubgroupSize(context, VK_FORMAT_R32_UINT, DE_NULL, 0, &internalData, checkFragmentPipelineStages, caseDef.pipelineShaderStageCreateFlags, requiredSubgroupSize);
+       else
+               TCU_THROW(InternalError, "Unhandled shader stage");
+}
+
+tcu::TestStatus testSanitySubgroupSizeProperties (Context& context)
+{
+       VkPhysicalDeviceSubgroupSizeControlPropertiesEXT subgroupSizeControlProperties;
+       subgroupSizeControlProperties.sType = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBGROUP_SIZE_CONTROL_PROPERTIES_EXT;
+       subgroupSizeControlProperties.pNext = DE_NULL;
+
+       VkPhysicalDeviceSubgroupProperties subgroupProperties;
+       subgroupProperties.sType = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBGROUP_PROPERTIES;
+       subgroupProperties.pNext = &subgroupSizeControlProperties;
+
+       VkPhysicalDeviceProperties2 properties;
+       properties.sType = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROPERTIES_2;
+       properties.pNext = &subgroupProperties;
+
+       context.getInstanceInterface().getPhysicalDeviceProperties2(context.getPhysicalDevice(), &properties);
+
+       if (subgroupProperties.subgroupSize > subgroupSizeControlProperties.maxSubgroupSize ||
+               subgroupProperties.subgroupSize < subgroupSizeControlProperties.minSubgroupSize)
+       {
+               std::ostringstream error;
+               error << "subgroupSize (" << subgroupProperties.subgroupSize << ") is not between maxSubgroupSize (";
+               error << subgroupSizeControlProperties.maxSubgroupSize << ") and minSubgroupSize (";
+               error << subgroupSizeControlProperties.minSubgroupSize << ")";
+               return tcu::TestStatus::fail(error.str().c_str());
+       }
+
+       return tcu::TestStatus::pass("OK");
+}
+}
+
+namespace vkt
+{
+namespace subgroups
+{
+tcu::TestCaseGroup* createSubgroupsSizeControlTests (tcu::TestContext& testCtx)
+{
+       const VkShaderStageFlags stages[] =
+       {
+               VK_SHADER_STAGE_VERTEX_BIT,
+               VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT,
+               VK_SHADER_STAGE_TESSELLATION_CONTROL_BIT,
+               VK_SHADER_STAGE_GEOMETRY_BIT,
+               VK_SHADER_STAGE_FRAGMENT_BIT,
+       };
+
+       de::MovePtr<tcu::TestCaseGroup> group(new tcu::TestCaseGroup(
+               testCtx, "size_control", "VK_EXT_subgroup_size_control tests"));
+
+       de::MovePtr<tcu::TestCaseGroup> framebufferGroup(new tcu::TestCaseGroup(
+               testCtx, "framebuffer", "Subgroup size control category tests: framebuffer"));
+
+       de::MovePtr<tcu::TestCaseGroup> computeGroup(new tcu::TestCaseGroup(
+               testCtx, "compute", "Subgroup size control category tests: compute"));
+
+       de::MovePtr<tcu::TestCaseGroup> graphicsGroup(new tcu::TestCaseGroup(
+               testCtx, "graphics", "Subgroup size control category tests: graphics"));
+
+       de::MovePtr<tcu::TestCaseGroup> genericGroup(new tcu::TestCaseGroup(
+               testCtx, "generic", "Subgroup size control category tests: generic"));
+
+       // Test sanity of the subgroup size properties.
+       {
+               addFunctionCase(genericGroup.get(), "subgroup_size_properties", "", supportedCheck, testSanitySubgroupSizeProperties);
+       }
+
+       // Allow varying subgroup case.
+       {
+               const CaseDefinition caseDefCompute = {VK_PIPELINE_SHADER_STAGE_CREATE_ALLOW_VARYING_SUBGROUP_SIZE_BIT_EXT, VK_SHADER_STAGE_COMPUTE_BIT, DE_FALSE, REQUIRED_SUBGROUP_SIZE_NONE};
+               addFunctionCaseWithPrograms(computeGroup.get(), "allow_varying_subgroup_size", "", supportedCheckFeatures, initPrograms, test, caseDefCompute);
+               const CaseDefinition caseDefAllGraphics = {VK_PIPELINE_SHADER_STAGE_CREATE_ALLOW_VARYING_SUBGROUP_SIZE_BIT_EXT, VK_SHADER_STAGE_ALL_GRAPHICS, DE_FALSE, REQUIRED_SUBGROUP_SIZE_NONE};
+               addFunctionCaseWithPrograms(graphicsGroup.get(), "allow_varying_subgroup_size", "", supportedCheckFeatures, initPrograms, test, caseDefAllGraphics);
+
+               for (int stageIndex = 0; stageIndex < DE_LENGTH_OF_ARRAY(stages); ++stageIndex)
+               {
+                       const CaseDefinition caseDefStage = {VK_PIPELINE_SHADER_STAGE_CREATE_ALLOW_VARYING_SUBGROUP_SIZE_BIT_EXT, stages[stageIndex], DE_FALSE, REQUIRED_SUBGROUP_SIZE_NONE};
+                       addFunctionCaseWithPrograms(framebufferGroup.get(),  getShaderStageName(caseDefStage.shaderStage) + "_allow_varying_subgroup_size", "", supportedCheckFeatures, initFrameBufferPrograms, noSSBOtest, caseDefStage);
+               }
+       }
+
+       // Require full subgroups case (only compute shaders).
+       {
+               const CaseDefinition caseDef = {VK_PIPELINE_SHADER_STAGE_CREATE_REQUIRE_FULL_SUBGROUPS_BIT_EXT, VK_SHADER_STAGE_COMPUTE_BIT, DE_TRUE, REQUIRED_SUBGROUP_SIZE_NONE};
+               addFunctionCaseWithPrograms(computeGroup.get(), "require_full_subgroups", "", supportedCheckFeatures, initProgramsRequireFull, testRequireFullSubgroups, caseDef);
+       }
+
+       // Require full subgroups together with allow varying subgroup (only compute shaders).
+       {
+               deUint32 flags = VK_PIPELINE_SHADER_STAGE_CREATE_REQUIRE_FULL_SUBGROUPS_BIT_EXT | VK_PIPELINE_SHADER_STAGE_CREATE_ALLOW_VARYING_SUBGROUP_SIZE_BIT_EXT;
+               const CaseDefinition caseDef = {flags, VK_SHADER_STAGE_COMPUTE_BIT, DE_TRUE, REQUIRED_SUBGROUP_SIZE_NONE};
+               addFunctionCaseWithPrograms(computeGroup.get(), "require_full_subgroups_allow_varying_subgroup_size", "", supportedCheckFeatures, initProgramsRequireFull, testRequireFullSubgroups, caseDef);
+       }
+
+       // Tests to check setting a required subgroup size value.
+       {
+               const CaseDefinition caseDefAllGraphicsMax = {0u, VK_SHADER_STAGE_ALL_GRAPHICS, DE_FALSE, REQUIRED_SUBGROUP_SIZE_MAX};
+               addFunctionCaseWithPrograms(graphicsGroup.get(), "required_subgroup_size_max", "", supportedCheckFeatures, initPrograms, testRequireSubgroupSize, caseDefAllGraphicsMax);
+               const CaseDefinition caseDefComputeMax = {0u, VK_SHADER_STAGE_COMPUTE_BIT, DE_FALSE, REQUIRED_SUBGROUP_SIZE_MAX};
+               addFunctionCaseWithPrograms(computeGroup.get(), "required_subgroup_size_max", "", supportedCheckFeatures, initPrograms, testRequireSubgroupSize, caseDefComputeMax);
+
+               const CaseDefinition caseDefAllGraphicsMin = {0u, VK_SHADER_STAGE_ALL_GRAPHICS, DE_FALSE, REQUIRED_SUBGROUP_SIZE_MIN};
+               addFunctionCaseWithPrograms(graphicsGroup.get(), "required_subgroup_size_min", "", supportedCheckFeatures, initPrograms, testRequireSubgroupSize, caseDefAllGraphicsMin);
+               const CaseDefinition caseDefComputeMin = {0u, VK_SHADER_STAGE_COMPUTE_BIT, DE_FALSE, REQUIRED_SUBGROUP_SIZE_MIN};
+               addFunctionCaseWithPrograms(computeGroup.get(), "required_subgroup_size_min", "", supportedCheckFeatures, initPrograms, testRequireSubgroupSize, caseDefComputeMin);
+               for (int stageIndex = 0; stageIndex < DE_LENGTH_OF_ARRAY(stages); ++stageIndex)
+               {
+                       const CaseDefinition caseDefStageMax = {0u, stages[stageIndex], DE_FALSE, REQUIRED_SUBGROUP_SIZE_MAX};
+                       addFunctionCaseWithPrograms(framebufferGroup.get(),  getShaderStageName(caseDefStageMax.shaderStage) + "_required_subgroup_size_max", "", supportedCheckFeatures, initFrameBufferPrograms, noSSBOtestRequireSubgroupSize, caseDefStageMax);
+                       const CaseDefinition caseDefStageMin = {0u, stages[stageIndex], DE_FALSE, REQUIRED_SUBGROUP_SIZE_MIN};
+                       addFunctionCaseWithPrograms(framebufferGroup.get(),  getShaderStageName(caseDefStageMin.shaderStage) + "_required_subgroup_size_min", "", supportedCheckFeatures, initFrameBufferPrograms, noSSBOtestRequireSubgroupSize, caseDefStageMin);
+               }
+       }
+
+       // Tests to check setting a required subgroup size value, together with require full subgroups (only compute shaders).
+       {
+               deUint32 flags = VK_PIPELINE_SHADER_STAGE_CREATE_REQUIRE_FULL_SUBGROUPS_BIT_EXT;
+               const CaseDefinition caseDefMax = {flags, VK_SHADER_STAGE_COMPUTE_BIT, DE_TRUE, REQUIRED_SUBGROUP_SIZE_MAX};
+               addFunctionCaseWithPrograms(computeGroup.get(), "required_subgroup_size_max_require_full_subgroups", "", supportedCheckFeatures, initProgramsRequireFull, testRequireSubgroupSize, caseDefMax);
+               const CaseDefinition caseDefMin = {flags, VK_SHADER_STAGE_COMPUTE_BIT, DE_TRUE, REQUIRED_SUBGROUP_SIZE_MIN};
+               addFunctionCaseWithPrograms(computeGroup.get(), "required_subgroup_size_min_require_full_subgroups", "", supportedCheckFeatures, initProgramsRequireFull, testRequireSubgroupSize, caseDefMin);
+       }
+
+       group->addChild(genericGroup.release());
+       group->addChild(graphicsGroup.release());
+       group->addChild(computeGroup.release());
+       group->addChild(framebufferGroup.release());
+
+       return group.release();
+}
+
+} // subgroups
+} // vkt
diff --git a/external/vulkancts/modules/vulkan/subgroups/vktSubgroupsSizeControlTests.hpp b/external/vulkancts/modules/vulkan/subgroups/vktSubgroupsSizeControlTests.hpp
new file mode 100644 (file)
index 0000000..01dd5be
--- /dev/null
@@ -0,0 +1,40 @@
+#ifndef _VKTSUBGROUPSSIZECONTROLTESTS_HPP
+#define _VKTSUBGROUPSSIZECONTROLTESTS_HPP
+/*------------------------------------------------------------------------
+ * Vulkan Conformance Tests
+ * ------------------------
+ *
+ * Copyright (c) 2019 The Khronos Group Inc.
+ * Copyright (c) 2019 Valve Corporation.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ *
+ */ /*!
+ * \file
+ * \brief VK_EXT_subgroup_size_control Tests
+ */ /*--------------------------------------------------------------------*/
+
+#include "tcuDefs.hpp"
+#include "vktTestCase.hpp"
+
+namespace vkt
+{
+namespace subgroups
+{
+
+tcu::TestCaseGroup* createSubgroupsSizeControlTests(tcu::TestContext& testCtx);
+
+} // subgroups
+} // vkt
+
+#endif // _VKTSUBGROUPSSIZECONTROLTESTS_HPP
index 3b7c5d9..d327005 100755 (executable)
@@ -37,6 +37,7 @@
 #include "vktSubgroupsQuadTests.hpp"
 #include "vktSubgroupsShapeTests.hpp"
 #include "vktSubgroupsBallotMasksTests.hpp"
+#include "vktSubgroupsSizeControlTests.hpp"
 #include "vktTestGroupUtil.hpp"
 
 namespace vkt
@@ -65,6 +66,7 @@ void createChildren(tcu::TestCaseGroup* subgroupsTests)
        subgroupsTests->addChild(createSubgroupsQuadTests(testCtx));
        subgroupsTests->addChild(createSubgroupsShapeTests(testCtx));
        subgroupsTests->addChild(createSubgroupsBallotMasksTests(testCtx));
+       subgroupsTests->addChild(createSubgroupsSizeControlTests(testCtx));
 }
 
 } // anonymous
index 8e31326..604e781 100644 (file)
@@ -191,6 +191,303 @@ Move<VkRenderPass> makeRenderPass(Context& context, VkFormat format)
                                                        &renderPassCreateInfo);
 }
 
+Move<VkPipeline> makeGraphicsPipeline(const DeviceInterface&                                           vk,
+                                                                         const VkDevice                                                                device,
+                                                                         const VkPipelineLayout                                                pipelineLayout,
+                                                                         const VkShaderModule                                                  vertexShaderModule,
+                                                                         const VkShaderModule                                                  tessellationControlShaderModule,
+                                                                         const VkShaderModule                                                  tessellationEvalShaderModule,
+                                                                         const VkShaderModule                                                  geometryShaderModule,
+                                                                         const VkShaderModule                                                  fragmentShaderModule,
+                                                                         const VkRenderPass                                                    renderPass,
+                                                                         const std::vector<VkViewport>&                                viewports,
+                                                                         const std::vector<VkRect2D>&                                  scissors,
+                                                                         const VkPrimitiveTopology                                             topology,
+                                                                         const deUint32                                                                subpass,
+                                                                         const deUint32                                                                patchControlPoints,
+                                                                         const VkPipelineVertexInputStateCreateInfo*   vertexInputStateCreateInfo,
+                                                                         const VkPipelineRasterizationStateCreateInfo* rasterizationStateCreateInfo,
+                                                                         const VkPipelineMultisampleStateCreateInfo*   multisampleStateCreateInfo,
+                                                                         const VkPipelineDepthStencilStateCreateInfo*  depthStencilStateCreateInfo,
+                                                                         const VkPipelineColorBlendStateCreateInfo*    colorBlendStateCreateInfo,
+                                                                         const VkPipelineDynamicStateCreateInfo*               dynamicStateCreateInfo,
+                                                                         const deUint32                                                                vertexShaderStageCreateFlags,
+                                                                         const deUint32                                                                tessellationControlShaderStageCreateFlags,
+                                                                         const deUint32                                                                tessellationEvalShaderStageCreateFlags,
+                                                                         const deUint32                                                                geometryShaderStageCreateFlags,
+                                                                         const deUint32                                                                fragmentShaderStageCreateFlags,
+                                                                         const deUint32                                                                requiredSubgroupSize[5])
+{
+       const VkBool32                                                                  disableRasterization                            = (fragmentShaderModule == DE_NULL);
+       const bool                                                                              hasTessellation                                         = (tessellationControlShaderModule != DE_NULL || tessellationEvalShaderModule != DE_NULL);
+
+       VkPipelineShaderStageCreateInfo                                 stageCreateInfo                                         =
+       {
+               VK_STRUCTURE_TYPE_PIPELINE_SHADER_STAGE_CREATE_INFO,    // VkStructureType                     sType
+               DE_NULL,                                                                                                // const void*                         pNext
+               0u,                                                                                                             // VkPipelineShaderStageCreateFlags    flags
+               VK_SHADER_STAGE_VERTEX_BIT,                                                             // VkShaderStageFlagBits               stage
+               DE_NULL,                                                                                                // VkShaderModule                      module
+               "main",                                                                                                 // const char*                         pName
+               DE_NULL                                                                                                 // const VkSpecializationInfo*         pSpecializationInfo
+       };
+
+       std::vector<VkPipelineShaderStageCreateInfo>    pipelineShaderStageParams;
+
+       const VkPipelineShaderStageRequiredSubgroupSizeCreateInfoEXT requiredSubgroupSizeCreateInfo[5] =
+               {
+                       {
+                               VK_STRUCTURE_TYPE_PIPELINE_SHADER_STAGE_REQUIRED_SUBGROUP_SIZE_CREATE_INFO_EXT,
+                               DE_NULL,
+                               requiredSubgroupSize != DE_NULL ? requiredSubgroupSize[0] : 0u,
+                       },
+                       {
+                               VK_STRUCTURE_TYPE_PIPELINE_SHADER_STAGE_REQUIRED_SUBGROUP_SIZE_CREATE_INFO_EXT,
+                               DE_NULL,
+                               requiredSubgroupSize != DE_NULL ? requiredSubgroupSize[1] : 0u,
+                       },
+                       {
+                               VK_STRUCTURE_TYPE_PIPELINE_SHADER_STAGE_REQUIRED_SUBGROUP_SIZE_CREATE_INFO_EXT,
+                               DE_NULL,
+                               requiredSubgroupSize != DE_NULL ? requiredSubgroupSize[2] : 0u,
+                       },
+                       {
+                               VK_STRUCTURE_TYPE_PIPELINE_SHADER_STAGE_REQUIRED_SUBGROUP_SIZE_CREATE_INFO_EXT,
+                               DE_NULL,
+                               requiredSubgroupSize != DE_NULL ? requiredSubgroupSize[3] : 0u,
+                       },
+                       {
+                               VK_STRUCTURE_TYPE_PIPELINE_SHADER_STAGE_REQUIRED_SUBGROUP_SIZE_CREATE_INFO_EXT,
+                               DE_NULL,
+                               requiredSubgroupSize != DE_NULL ? requiredSubgroupSize[4] : 0u,
+                       },
+               };
+       {
+               stageCreateInfo.pNext   = (requiredSubgroupSizeCreateInfo[0].requiredSubgroupSize != 0u) ? &requiredSubgroupSizeCreateInfo[0] : DE_NULL;
+               stageCreateInfo.flags   = vertexShaderStageCreateFlags;
+               stageCreateInfo.stage   = VK_SHADER_STAGE_VERTEX_BIT;
+               stageCreateInfo.module  = vertexShaderModule;
+               pipelineShaderStageParams.push_back(stageCreateInfo);
+       }
+
+       if (tessellationControlShaderModule != DE_NULL)
+       {
+               stageCreateInfo.pNext   = (requiredSubgroupSizeCreateInfo[1].requiredSubgroupSize != 0u) ? &requiredSubgroupSizeCreateInfo[1] : DE_NULL;
+               stageCreateInfo.flags   = tessellationControlShaderStageCreateFlags;
+               stageCreateInfo.stage   = VK_SHADER_STAGE_TESSELLATION_CONTROL_BIT;
+               stageCreateInfo.module  = tessellationControlShaderModule;
+               pipelineShaderStageParams.push_back(stageCreateInfo);
+       }
+
+       if (tessellationEvalShaderModule != DE_NULL)
+       {
+               stageCreateInfo.pNext   = (requiredSubgroupSize != DE_NULL && requiredSubgroupSizeCreateInfo[2].requiredSubgroupSize != 0u) ? &requiredSubgroupSizeCreateInfo[2] : DE_NULL;
+               stageCreateInfo.flags   = tessellationEvalShaderStageCreateFlags;
+               stageCreateInfo.stage   = VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT;
+               stageCreateInfo.module  = tessellationEvalShaderModule;
+               pipelineShaderStageParams.push_back(stageCreateInfo);
+       }
+
+       if (geometryShaderModule != DE_NULL)
+       {
+               stageCreateInfo.pNext   = (requiredSubgroupSizeCreateInfo[3].requiredSubgroupSize != 0u) ? &requiredSubgroupSizeCreateInfo[3] : DE_NULL;
+               stageCreateInfo.flags   = geometryShaderStageCreateFlags;
+               stageCreateInfo.stage   = VK_SHADER_STAGE_GEOMETRY_BIT;
+               stageCreateInfo.module  = geometryShaderModule;
+               pipelineShaderStageParams.push_back(stageCreateInfo);
+       }
+
+       if (fragmentShaderModule != DE_NULL)
+       {
+               stageCreateInfo.pNext   = (requiredSubgroupSizeCreateInfo[4].requiredSubgroupSize != 0u) ? &requiredSubgroupSizeCreateInfo[4] : DE_NULL;
+               stageCreateInfo.flags   = fragmentShaderStageCreateFlags;
+               stageCreateInfo.stage   = VK_SHADER_STAGE_FRAGMENT_BIT;
+               stageCreateInfo.module  = fragmentShaderModule;
+               pipelineShaderStageParams.push_back(stageCreateInfo);
+       }
+
+       const VkVertexInputBindingDescription                   vertexInputBindingDescription           =
+       {
+               0u,                                                             // deUint32             binding
+               sizeof(tcu::Vec4),                              // deUint32             stride
+               VK_VERTEX_INPUT_RATE_VERTEX,    // VkVertexInputRate    inputRate
+       };
+
+       const VkVertexInputAttributeDescription                 vertexInputAttributeDescription         =
+       {
+               0u,                                                             // deUint32    location
+               0u,                                                             // deUint32    binding
+               VK_FORMAT_R32G32B32A32_SFLOAT,  // VkFormat    format
+               0u                                                              // deUint32    offset
+       };
+
+       const VkPipelineVertexInputStateCreateInfo              vertexInputStateCreateInfoDefault       =
+       {
+               VK_STRUCTURE_TYPE_PIPELINE_VERTEX_INPUT_STATE_CREATE_INFO,      // VkStructureType                             sType
+               DE_NULL,                                                                                                        // const void*                                 pNext
+               (VkPipelineVertexInputStateCreateFlags)0,                                       // VkPipelineVertexInputStateCreateFlags       flags
+               1u,                                                                                                                     // deUint32                                    vertexBindingDescriptionCount
+               &vertexInputBindingDescription,                                                         // const VkVertexInputBindingDescription*      pVertexBindingDescriptions
+               1u,                                                                                                                     // deUint32                                    vertexAttributeDescriptionCount
+               &vertexInputAttributeDescription                                                        // const VkVertexInputAttributeDescription*    pVertexAttributeDescriptions
+       };
+
+       const VkPipelineInputAssemblyStateCreateInfo    inputAssemblyStateCreateInfo            =
+       {
+               VK_STRUCTURE_TYPE_PIPELINE_INPUT_ASSEMBLY_STATE_CREATE_INFO,    // VkStructureType                            sType
+               DE_NULL,                                                                                                                // const void*                                pNext
+               0u,                                                                                                                             // VkPipelineInputAssemblyStateCreateFlags    flags
+               topology,                                                                                                               // VkPrimitiveTopology                        topology
+               VK_FALSE                                                                                                                // VkBool32                                   primitiveRestartEnable
+       };
+
+       const VkPipelineTessellationStateCreateInfo             tessStateCreateInfo                                     =
+       {
+               VK_STRUCTURE_TYPE_PIPELINE_TESSELLATION_STATE_CREATE_INFO,      // VkStructureType                           sType
+               DE_NULL,                                                                                                        // const void*                               pNext
+               0u,                                                                                                                     // VkPipelineTessellationStateCreateFlags    flags
+               patchControlPoints                                                                                      // deUint32                                  patchControlPoints
+       };
+
+       const VkPipelineViewportStateCreateInfo                 viewportStateCreateInfo                         =
+       {
+               VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_STATE_CREATE_INFO,  // VkStructureType                             sType
+               DE_NULL,                                                                                                // const void*                                 pNext
+               (VkPipelineViewportStateCreateFlags)0,                                  // VkPipelineViewportStateCreateFlags          flags
+               viewports.empty() ? 1u : (deUint32)viewports.size(),    // deUint32                                    viewportCount
+               viewports.empty() ? DE_NULL : &viewports[0],                    // const VkViewport*                           pViewports
+               viewports.empty() ? 1u : (deUint32)scissors.size(),             // deUint32                                    scissorCount
+               scissors.empty() ? DE_NULL : &scissors[0]                               // const VkRect2D*                             pScissors
+       };
+
+       const VkPipelineRasterizationStateCreateInfo    rasterizationStateCreateInfoDefault     =
+       {
+               VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_STATE_CREATE_INFO,     // VkStructureType                            sType
+               DE_NULL,                                                                                                        // const void*                                pNext
+               0u,                                                                                                                     // VkPipelineRasterizationStateCreateFlags    flags
+               VK_FALSE,                                                                                                       // VkBool32                                   depthClampEnable
+               disableRasterization,                                                                           // VkBool32                                   rasterizerDiscardEnable
+               VK_POLYGON_MODE_FILL,                                                                           // VkPolygonMode                              polygonMode
+               VK_CULL_MODE_NONE,                                                                                      // VkCullModeFlags                            cullMode
+               VK_FRONT_FACE_COUNTER_CLOCKWISE,                                                        // VkFrontFace                                frontFace
+               VK_FALSE,                                                                                                       // VkBool32                                   depthBiasEnable
+               0.0f,                                                                                                           // float                                      depthBiasConstantFactor
+               0.0f,                                                                                                           // float                                      depthBiasClamp
+               0.0f,                                                                                                           // float                                      depthBiasSlopeFactor
+               1.0f                                                                                                            // float                                      lineWidth
+       };
+
+       const VkPipelineMultisampleStateCreateInfo              multisampleStateCreateInfoDefault       =
+       {
+               VK_STRUCTURE_TYPE_PIPELINE_MULTISAMPLE_STATE_CREATE_INFO,       // VkStructureType                          sType
+               DE_NULL,                                                                                                        // const void*                              pNext
+               0u,                                                                                                                     // VkPipelineMultisampleStateCreateFlags    flags
+               VK_SAMPLE_COUNT_1_BIT,                                                                          // VkSampleCountFlagBits                    rasterizationSamples
+               VK_FALSE,                                                                                                       // VkBool32                                 sampleShadingEnable
+               1.0f,                                                                                                           // float                                    minSampleShading
+               DE_NULL,                                                                                                        // const VkSampleMask*                      pSampleMask
+               VK_FALSE,                                                                                                       // VkBool32                                 alphaToCoverageEnable
+               VK_FALSE                                                                                                        // VkBool32                                 alphaToOneEnable
+       };
+
+       const VkStencilOpState                                                  stencilOpState                                          =
+       {
+               VK_STENCIL_OP_KEEP,             // VkStencilOp    failOp
+               VK_STENCIL_OP_KEEP,             // VkStencilOp    passOp
+               VK_STENCIL_OP_KEEP,             // VkStencilOp    depthFailOp
+               VK_COMPARE_OP_NEVER,    // VkCompareOp    compareOp
+               0,                                              // deUint32       compareMask
+               0,                                              // deUint32       writeMask
+               0                                               // deUint32       reference
+       };
+
+       const VkPipelineDepthStencilStateCreateInfo             depthStencilStateCreateInfoDefault      =
+       {
+               VK_STRUCTURE_TYPE_PIPELINE_DEPTH_STENCIL_STATE_CREATE_INFO,     // VkStructureType                          sType
+               DE_NULL,                                                                                                        // const void*                              pNext
+               0u,                                                                                                                     // VkPipelineDepthStencilStateCreateFlags   flags
+               VK_FALSE,                                                                                                       // VkBool32                                 depthTestEnable
+               VK_FALSE,                                                                                                       // VkBool32                                 depthWriteEnable
+               VK_COMPARE_OP_LESS_OR_EQUAL,                                                            // VkCompareOp                              depthCompareOp
+               VK_FALSE,                                                                                                       // VkBool32                                 depthBoundsTestEnable
+               VK_FALSE,                                                                                                       // VkBool32                                 stencilTestEnable
+               stencilOpState,                                                                                         // VkStencilOpState                         front
+               stencilOpState,                                                                                         // VkStencilOpState                         back
+               0.0f,                                                                                                           // float                                    minDepthBounds
+               1.0f,                                                                                                           // float                                    maxDepthBounds
+       };
+
+       const VkPipelineColorBlendAttachmentState               colorBlendAttachmentState                       =
+       {
+               VK_FALSE,                                       // VkBool32                 blendEnable
+               VK_BLEND_FACTOR_ZERO,           // VkBlendFactor            srcColorBlendFactor
+               VK_BLEND_FACTOR_ZERO,           // VkBlendFactor            dstColorBlendFactor
+               VK_BLEND_OP_ADD,                        // VkBlendOp                colorBlendOp
+               VK_BLEND_FACTOR_ZERO,           // VkBlendFactor            srcAlphaBlendFactor
+               VK_BLEND_FACTOR_ZERO,           // VkBlendFactor            dstAlphaBlendFactor
+               VK_BLEND_OP_ADD,                        // VkBlendOp                alphaBlendOp
+               VK_COLOR_COMPONENT_R_BIT        // VkColorComponentFlags    colorWriteMask
+               | VK_COLOR_COMPONENT_G_BIT
+               | VK_COLOR_COMPONENT_B_BIT
+               | VK_COLOR_COMPONENT_A_BIT
+       };
+
+       const VkPipelineColorBlendStateCreateInfo               colorBlendStateCreateInfoDefault        =
+       {
+               VK_STRUCTURE_TYPE_PIPELINE_COLOR_BLEND_STATE_CREATE_INFO,       // VkStructureType                               sType
+               DE_NULL,                                                                                                        // const void*                                   pNext
+               0u,                                                                                                                     // VkPipelineColorBlendStateCreateFlags          flags
+               VK_FALSE,                                                                                                       // VkBool32                                      logicOpEnable
+               VK_LOGIC_OP_CLEAR,                                                                                      // VkLogicOp                                     logicOp
+               1u,                                                                                                                     // deUint32                                      attachmentCount
+               &colorBlendAttachmentState,                                                                     // const VkPipelineColorBlendAttachmentState*    pAttachments
+               { 0.0f, 0.0f, 0.0f, 0.0f }                                                                      // float                                         blendConstants[4]
+       };
+
+       std::vector<VkDynamicState>                                             dynamicStates;
+
+       if (viewports.empty())
+               dynamicStates.push_back(VK_DYNAMIC_STATE_VIEWPORT);
+       if (scissors.empty())
+               dynamicStates.push_back(VK_DYNAMIC_STATE_SCISSOR);
+
+       const VkPipelineDynamicStateCreateInfo                  dynamicStateCreateInfoDefault           =
+       {
+               VK_STRUCTURE_TYPE_PIPELINE_DYNAMIC_STATE_CREATE_INFO,   // VkStructureType                      sType
+               DE_NULL,                                                                                                // const void*                          pNext
+               0u,                                                                                                             // VkPipelineDynamicStateCreateFlags    flags
+               (deUint32)dynamicStates.size(),                                                 // deUint32                             dynamicStateCount
+               dynamicStates.empty() ? DE_NULL : &dynamicStates[0]             // const VkDynamicState*                pDynamicStates
+       };
+
+       const VkPipelineDynamicStateCreateInfo*                 dynamicStateCreateInfoDefaultPtr        = dynamicStates.empty() ? DE_NULL : &dynamicStateCreateInfoDefault;
+
+       const VkGraphicsPipelineCreateInfo                              pipelineCreateInfo                                      =
+       {
+               VK_STRUCTURE_TYPE_GRAPHICS_PIPELINE_CREATE_INFO,                                                                                                                // VkStructureType                                  sType
+               DE_NULL,                                                                                                                                                                                                // const void*                                      pNext
+               0u,                                                                                                                                                                                                             // VkPipelineCreateFlags                            flags
+               (deUint32)pipelineShaderStageParams.size(),                                                                                                                             // deUint32                                         stageCount
+               &pipelineShaderStageParams[0],                                                                                                                                                  // const VkPipelineShaderStageCreateInfo*           pStages
+               vertexInputStateCreateInfo ? vertexInputStateCreateInfo : &vertexInputStateCreateInfoDefault,                   // const VkPipelineVertexInputStateCreateInfo*      pVertexInputState
+               &inputAssemblyStateCreateInfo,                                                                                                                                                  // const VkPipelineInputAssemblyStateCreateInfo*    pInputAssemblyState
+               hasTessellation ? &tessStateCreateInfo : DE_NULL,                                                                                                               // const VkPipelineTessellationStateCreateInfo*     pTessellationState
+               &viewportStateCreateInfo,                                                                                                                                                               // const VkPipelineViewportStateCreateInfo*         pViewportState
+               rasterizationStateCreateInfo ? rasterizationStateCreateInfo : &rasterizationStateCreateInfoDefault,             // const VkPipelineRasterizationStateCreateInfo*    pRasterizationState
+               multisampleStateCreateInfo ? multisampleStateCreateInfo: &multisampleStateCreateInfoDefault,                    // const VkPipelineMultisampleStateCreateInfo*      pMultisampleState
+               depthStencilStateCreateInfo ? depthStencilStateCreateInfo : &depthStencilStateCreateInfoDefault,                // const VkPipelineDepthStencilStateCreateInfo*     pDepthStencilState
+               colorBlendStateCreateInfo ? colorBlendStateCreateInfo : &colorBlendStateCreateInfoDefault,                              // const VkPipelineColorBlendStateCreateInfo*       pColorBlendState
+               dynamicStateCreateInfo ? dynamicStateCreateInfo : dynamicStateCreateInfoDefaultPtr,                                             // const VkPipelineDynamicStateCreateInfo*          pDynamicState
+               pipelineLayout,                                                                                                                                                                                 // VkPipelineLayout                                 layout
+               renderPass,                                                                                                                                                                                             // VkRenderPass                                     renderPass
+               subpass,                                                                                                                                                                                                // deUint32                                         subpass
+               DE_NULL,                                                                                                                                                                                                // VkPipeline                                       basePipelineHandle
+               0                                                                                                                                                                                                               // deInt32                                          basePipelineIndex;
+       };
+
+       return createGraphicsPipeline(vk, device, DE_NULL, &pipelineCreateInfo);
+}
+
 Move<VkPipeline> makeGraphicsPipeline(Context&                                                                 context,
                                                                          const VkPipelineLayout                                        pipelineLayout,
                                                                          const VkShaderStageFlags                                      stages,
@@ -204,7 +501,13 @@ Move<VkPipeline> makeGraphicsPipeline(Context&                                                                     context,
                                                                          const VkVertexInputBindingDescription*        vertexInputBindingDescription = DE_NULL,
                                                                          const VkVertexInputAttributeDescription*      vertexInputAttributeDescriptions = DE_NULL,
                                                                          const bool                                                            frameBufferTests = false,
-                                                                         const vk::VkFormat                                            attachmentFormat = VK_FORMAT_R32G32B32A32_SFLOAT)
+                                                                         const vk::VkFormat                                            attachmentFormat = VK_FORMAT_R32G32B32A32_SFLOAT,
+                                                                         const deUint32                                                        vertexShaderStageCreateFlags = 0u,
+                                                                         const deUint32                                                        tessellationControlShaderStageCreateFlags = 0u,
+                                                                         const deUint32                                                        tessellationEvalShaderStageCreateFlags = 0u,
+                                                                         const deUint32                                                        geometryShaderStageCreateFlags = 0u,
+                                                                         const deUint32                                                        fragmentShaderStageCreateFlags = 0u,
+                                                                         const deUint32                                                        requiredSubgroupSize[5] = DE_NULL)
 {
        std::vector<VkViewport> noViewports;
        std::vector<VkRect2D>   noScissors;
@@ -243,73 +546,32 @@ Move<VkPipeline> makeGraphicsPipeline(Context&                                                                    context,
 
        const deUint32 patchControlPoints = (VK_SHADER_STAGE_FRAGMENT_BIT & stages && frameBufferTests) ? 2u : 1u;
 
-       return vk::makeGraphicsPipeline(context.getDeviceInterface(),   // const DeviceInterface&                        vk
-                                                                       context.getDevice(),                    // const VkDevice                                device
-                                                                       pipelineLayout,                                 // const VkPipelineLayout                        pipelineLayout
-                                                                       vertexShaderModule,                             // const VkShaderModule                          vertexShaderModule
-                                                                       tessellationControlModule,              // const VkShaderModule                          tessellationControlShaderModule
-                                                                       tessellationEvaluationModule,   // const VkShaderModule                          tessellationEvalShaderModule
-                                                                       geometryShaderModule,                   // const VkShaderModule                          geometryShaderModule
-                                                                       fragmentShaderModule,                   // const VkShaderModule                          fragmentShaderModule
-                                                                       renderPass,                                             // const VkRenderPass                            renderPass
-                                                                       noViewports,                                    // const std::vector<VkViewport>&                viewports
-                                                                       noScissors,                                             // const std::vector<VkRect2D>&                  scissors
-                                                                       topology,                                               // const VkPrimitiveTopology                     topology
-                                                                       0u,                                                             // const deUint32                                subpass
-                                                                       patchControlPoints,                             // const deUint32                                patchControlPoints
-                                                                       &vertexInputStateCreateInfo,    // const VkPipelineVertexInputStateCreateInfo*   vertexInputStateCreateInfo
-                                                                       DE_NULL,                                                // const VkPipelineRasterizationStateCreateInfo* rasterizationStateCreateInfo
-                                                                       DE_NULL,                                                // const VkPipelineMultisampleStateCreateInfo*   multisampleStateCreateInfo
-                                                                       DE_NULL,                                                // const VkPipelineDepthStencilStateCreateInfo*  depthStencilStateCreateInfo
-                                                                       &colorBlendStateCreateInfo);    // const VkPipelineColorBlendStateCreateInfo*    colorBlendStateCreateInfo
-}
-
-Move<VkPipeline> makeComputePipeline(Context& context,
-                                                                        const VkPipelineLayout pipelineLayout, const VkShaderModule shaderModule,
-                                                                        const deUint32 pipelineCreateFlags, VkPipeline basePipelineHandle,
-                                                                        deUint32 localSizeX, deUint32 localSizeY, deUint32 localSizeZ)
-{
-       const deUint32 localSize[3] = {localSizeX, localSizeY, localSizeZ};
-
-       const vk::VkSpecializationMapEntry entries[3] =
-       {
-               {0, sizeof(deUint32) * 0, sizeof(deUint32)},
-               {1, sizeof(deUint32) * 1, sizeof(deUint32)},
-               {2, static_cast<deUint32>(sizeof(deUint32) * 2), sizeof(deUint32)},
-       };
-
-       const vk::VkSpecializationInfo info =
-       {
-               /* mapEntryCount = */ 3,
-               /* pMapEntries   = */ entries,
-               /* dataSize      = */ sizeof(localSize),
-               /* pData         = */ localSize
-       };
-
-       const vk::VkPipelineShaderStageCreateInfo pipelineShaderStageParams =
-       {
-               VK_STRUCTURE_TYPE_PIPELINE_SHADER_STAGE_CREATE_INFO,                            // VkStructureType                                      sType;
-               DE_NULL,                                                                                                                        // const void*                                          pNext;
-               0u,                                                                                                                                     // VkPipelineShaderStageCreateFlags     flags;
-               VK_SHADER_STAGE_COMPUTE_BIT,                                                                            // VkShaderStageFlagBits                        stage;
-               shaderModule,                                                                                                           // VkShaderModule                                       module;
-               "main",                                                                                                                         // const char*                                          pName;
-               &info,                                                                                                                          // const VkSpecializationInfo*          pSpecializationInfo;
-       };
-
-       const vk::VkComputePipelineCreateInfo pipelineCreateInfo =
-       {
-               VK_STRUCTURE_TYPE_COMPUTE_PIPELINE_CREATE_INFO, // VkStructureType      sType;
-               DE_NULL,                                                                                // const void*                                          pNext;
-               pipelineCreateFlags,                                                    // VkPipelineCreateFlags                        flags;
-               pipelineShaderStageParams,                                              // VkPipelineShaderStageCreateInfo      stage;
-               pipelineLayout,                                                                 // VkPipelineLayout                                     layout;
-               basePipelineHandle,                                                             // VkPipeline                                           basePipelineHandle;
-               -1,                                                                                             // deInt32                                                      basePipelineIndex;
-       };
-
-       return createComputePipeline(context.getDeviceInterface(),
-                                                                context.getDevice(), DE_NULL, &pipelineCreateInfo);
+       return makeGraphicsPipeline(context.getDeviceInterface(),       // const DeviceInterface&                        vk
+                                                               context.getDevice(),                    // const VkDevice                                device
+                                                               pipelineLayout,                                 // const VkPipelineLayout                        pipelineLayout
+                                                               vertexShaderModule,                             // const VkShaderModule                          vertexShaderModule
+                                                               tessellationControlModule,              // const VkShaderModule                          tessellationControlShaderModule
+                                                               tessellationEvaluationModule,   // const VkShaderModule                          tessellationEvalShaderModule
+                                                               geometryShaderModule,                   // const VkShaderModule                          geometryShaderModule
+                                                               fragmentShaderModule,                   // const VkShaderModule                          fragmentShaderModule
+                                                               renderPass,                                             // const VkRenderPass                            renderPass
+                                                               noViewports,                                    // const std::vector<VkViewport>&                viewports
+                                                               noScissors,                                             // const std::vector<VkRect2D>&                  scissors
+                                                               topology,                                               // const VkPrimitiveTopology                     topology
+                                                               0u,                                                             // const deUint32                                subpass
+                                                               patchControlPoints,                             // const deUint32                                patchControlPoints
+                                                               &vertexInputStateCreateInfo,    // const VkPipelineVertexInputStateCreateInfo*   vertexInputStateCreateInfo
+                                                               DE_NULL,                                                // const VkPipelineRasterizationStateCreateInfo* rasterizationStateCreateInfo
+                                                               DE_NULL,                                                // const VkPipelineMultisampleStateCreateInfo*   multisampleStateCreateInfo
+                                                               DE_NULL,                                                // const VkPipelineDepthStencilStateCreateInfo*  depthStencilStateCreateInfo
+                                                               &colorBlendStateCreateInfo,             // const VkPipelineColorBlendStateCreateInfo*    colorBlendStateCreateInfo
+                                                               DE_NULL,                                                // const VkPipelineDynamicStateCreateInfo*
+                                                               vertexShaderStageCreateFlags,   // const deUint32                                                                vertexShaderStageCreateFlags,
+                                                               tessellationControlShaderStageCreateFlags,      // const deUint32                                        tessellationControlShaderStageCreateFlags
+                                                               tessellationEvalShaderStageCreateFlags,         // const deUint32                                        tessellationEvalShaderStageCreateFlags
+                                                               geometryShaderStageCreateFlags, // const deUint32                                                                geometryShaderStageCreateFlags
+                                                               fragmentShaderStageCreateFlags, // const deUint32                                                                fragmentShaderStageCreateFlags
+                                                               requiredSubgroupSize);                  // const deUint32                                                                requiredSubgroupSize[5]
 }
 
 Move<VkCommandBuffer> makeCommandBuffer(
@@ -2183,12 +2445,21 @@ deUint32 getResultBinding (const VkShaderStageFlagBits shaderStage)
        return -1;
 }
 
-tcu::TestStatus vkt::subgroups::makeTessellationEvaluationFrameBufferTest (
+tcu::TestStatus vkt::subgroups::makeTessellationEvaluationFrameBufferTest(
        Context& context, VkFormat format, SSBOData* extraData,
-       deUint32 extraDataCount,
-       bool (*checkResult)(std::vector<const void*> datas, deUint32 width, deUint32 subgroupSize),
+       deUint32 extraDataCount, const void* internalData,
+       bool (*checkResult)(const void* internalData, std::vector<const void*> datas, deUint32 width, deUint32 subgroupSize),
        const VkShaderStageFlags shaderStage)
 {
+       return makeTessellationEvaluationFrameBufferTestRequiredSubgroupSize(context, format, extraData, extraDataCount, internalData, checkResult, shaderStage, 0u, 0u);
+}
+
+tcu::TestStatus vkt::subgroups::makeTessellationEvaluationFrameBufferTestRequiredSubgroupSize(
+       Context& context, VkFormat format, SSBOData* extraData,
+       deUint32 extraDataCount, const void* internalData,
+       bool (*checkResult)(const void* internalData, std::vector<const void*> datas, deUint32 width, deUint32 subgroupSize),
+       const VkShaderStageFlags shaderStage, const deUint32 tessShaderStageCreateFlags, const deUint32 requiredSubgroupSize)
+{
        const DeviceInterface&                                  vk                                              = context.getDeviceInterface();
        const VkDevice                                                  device                                  = context.getDevice();
        const deUint32                                                  maxWidth                                = getMaxWidth();
@@ -2246,11 +2517,20 @@ tcu::TestStatus vkt::subgroups::makeTessellationEvaluationFrameBufferTest (
 
        const Unique<VkPipelineLayout>                  pipelineLayout                  (makePipelineLayout(vk, device, *descriptorSetLayout));
 
+       const deUint32 requiredSubgroupSizes[5] = {0u,
+                                                                                          ((shaderStage & VK_SHADER_STAGE_TESSELLATION_CONTROL_BIT) ? requiredSubgroupSize : 0u),
+                                                                                          ((shaderStage & VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT) ? requiredSubgroupSize : 0u),
+                                                                                          0u,
+                                                                                          0u};
+
        const Unique<VkPipeline>                                pipeline                                (makeGraphicsPipeline(context, *pipelineLayout,
-                                                                                                                                       VK_SHADER_STAGE_VERTEX_BIT | VK_SHADER_STAGE_FRAGMENT_BIT |
-                                                                                                                                       VK_SHADER_STAGE_TESSELLATION_CONTROL_BIT | VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT,
-                                                                                                                                       *vertexShaderModule, *fragmentShaderModule, DE_NULL, *teCtrlShaderModule, *teEvalShaderModule,
-                                                                                                                                       *renderPass, VK_PRIMITIVE_TOPOLOGY_PATCH_LIST, &vertexInputBinding, &vertexInputAttribute, true, format));
+                                                                                                                                                                                 VK_SHADER_STAGE_VERTEX_BIT | VK_SHADER_STAGE_FRAGMENT_BIT |
+                                                                                                                                                                                 VK_SHADER_STAGE_TESSELLATION_CONTROL_BIT | VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT,
+                                                                                                                                                                                 *vertexShaderModule, *fragmentShaderModule, DE_NULL, *teCtrlShaderModule, *teEvalShaderModule,
+                                                                                                                                                                                 *renderPass, VK_PRIMITIVE_TOPOLOGY_PATCH_LIST, &vertexInputBinding, &vertexInputAttribute, true, format,
+                                                                                                                                                                                 0u, ((shaderStage & VK_SHADER_STAGE_TESSELLATION_CONTROL_BIT) ? tessShaderStageCreateFlags : 0u),
+                                                                                                                                                                                 ((shaderStage & VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT) ? tessShaderStageCreateFlags : 0u),
+                                                                                                                                                                                 0u, 0u, requiredSubgroupSize != 0u ? requiredSubgroupSizes : DE_NULL));
 
        for (deUint32 ndx = 0u; ndx < extraDataCount; ndx++)
                poolBuilder.addType(inputBuffers[ndx]->getType());
@@ -2361,7 +2641,7 @@ tcu::TestStatus vkt::subgroups::makeTessellationEvaluationFrameBufferTest (
 
                        std::vector<const void*> datas;
                        datas.push_back(allocResult.getHostPtr());
-                       if (!checkResult(datas, width/2u, subgroupSize))
+                       if (!checkResult(internalData, datas, width/2u, subgroupSize))
                                failedIterations++;
                }
        }
@@ -2408,8 +2688,18 @@ bool vkt::subgroups::checkCompute(std::vector<const void*> datas,
 
 tcu::TestStatus vkt::subgroups::makeGeometryFrameBufferTest(
        Context& context, VkFormat format, SSBOData* extraData,
-       deUint32 extraDataCount,
-       bool (*checkResult)(std::vector<const void*> datas, deUint32 width, deUint32 subgroupSize))
+       deUint32 extraDataCount, const void* internalData,
+       bool (*checkResult)(const void* internalData, std::vector<const void*> datas, deUint32 width, deUint32 subgroupSize))
+{
+       return makeGeometryFrameBufferTestRequiredSubgroupSize(context, format, extraData, extraDataCount, internalData, checkResult,
+                                                                                                                  0u, 0u);
+}
+
+tcu::TestStatus vkt::subgroups::makeGeometryFrameBufferTestRequiredSubgroupSize(
+       Context& context, VkFormat format, SSBOData* extraData,
+       deUint32 extraDataCount, const void* internalData,
+       bool (*checkResult)(const void* internalData, std::vector<const void*> datas, deUint32 width, deUint32 subgroupSize),
+       const deUint32 geometryShaderStageCreateFlags, const deUint32 requiredSubgroupSize)
 {
        const DeviceInterface&                                  vk                                              = context.getDeviceInterface();
        const VkDevice                                                  device                                  = context.getDevice();
@@ -2462,10 +2752,14 @@ tcu::TestStatus vkt::subgroups::makeGeometryFrameBufferTest(
 
        const Unique<VkPipelineLayout>                  pipelineLayout                  (makePipelineLayout(vk, device, *descriptorSetLayout));
 
+       const deUint32 requiredSubgroupSizes[5] = {0u, 0u, 0u, requiredSubgroupSize, 0u};
+
        const Unique<VkPipeline>                                pipeline                                (makeGraphicsPipeline(context, *pipelineLayout,
-                                                                                                                                       VK_SHADER_STAGE_VERTEX_BIT | VK_SHADER_STAGE_FRAGMENT_BIT | VK_SHADER_STAGE_GEOMETRY_BIT,
-                                                                                                                                       *vertexShaderModule, *fragmentShaderModule, *geometryShaderModule, DE_NULL, DE_NULL,
-                                                                                                                                       *renderPass, VK_PRIMITIVE_TOPOLOGY_POINT_LIST, &vertexInputBinding, &vertexInputAttribute, true, format));
+                                                                                                                                                                                 VK_SHADER_STAGE_VERTEX_BIT | VK_SHADER_STAGE_FRAGMENT_BIT | VK_SHADER_STAGE_GEOMETRY_BIT,
+                                                                                                                                                                                 *vertexShaderModule, *fragmentShaderModule, *geometryShaderModule, DE_NULL, DE_NULL,
+                                                                                                                                                                                 *renderPass, VK_PRIMITIVE_TOPOLOGY_POINT_LIST, &vertexInputBinding, &vertexInputAttribute, true, format,
+                                                                                                                                                                                 0u, 0u, 0u, geometryShaderStageCreateFlags, 0u,
+                                                                                                                                                                                 requiredSubgroupSize != 0u ? requiredSubgroupSizes : DE_NULL));
 
        for (deUint32 ndx = 0u; ndx < extraDataCount; ndx++)
                poolBuilder.addType(inputBuffers[ndx]->getType());
@@ -2582,7 +2876,7 @@ tcu::TestStatus vkt::subgroups::makeGeometryFrameBufferTest(
 
                        std::vector<const void*> datas;
                        datas.push_back(allocResult.getHostPtr());
-                       if (!checkResult(datas, width, subgroupSize))
+                       if (!checkResult(internalData, datas, width, subgroupSize))
                                failedIterations++;
                }
        }
@@ -2601,12 +2895,27 @@ tcu::TestStatus vkt::subgroups::makeGeometryFrameBufferTest(
        return tcu::TestStatus::pass("OK");
 }
 
-
 tcu::TestStatus vkt::subgroups::allStages(
+       Context& context, VkFormat format, SSBOData* extraData,
+       deUint32 extraDataCount, const void* internalData,
+       bool (*checkResult)(const void* internalData, std::vector<const void*> datas, deUint32 width, deUint32 subgroupSize),
+       const vk::VkShaderStageFlags shaderStage)
+{
+       return vkt::subgroups::allStagesRequiredSubgroupSize(context, format, extraData, extraDataCount, internalData, checkResult, shaderStage,
+                                                                                                                0u, 0u, 0u, 0u, 0u, DE_NULL);
+}
+
+tcu::TestStatus vkt::subgroups::allStagesRequiredSubgroupSize(
        Context& context, VkFormat format, SSBOData* extraDatas,
-       deUint32 extraDatasCount,
-       bool (*checkResult)(std::vector<const void*> datas, deUint32 width, deUint32 subgroupSize),
-       const VkShaderStageFlags shaderStageTested)
+       deUint32 extraDatasCount, const void* internalData,
+       bool (*checkResult)(const void* internalData, std::vector<const void*> datas, deUint32 width, deUint32 subgroupSize),
+       const VkShaderStageFlags shaderStageTested,
+       const deUint32 vertexShaderStageCreateFlags,
+       const deUint32 tessellationControlShaderStageCreateFlags,
+       const deUint32 tessellationEvalShaderStageCreateFlags,
+       const deUint32 geometryShaderStageCreateFlags,
+       const deUint32 fragmentShaderStageCreateFlags,
+       const deUint32 requiredSubgroupSize[5])
 {
        const DeviceInterface&                  vk                                      = context.getDeviceInterface();
        const VkDevice                                  device                          = context.getDevice();
@@ -2717,10 +3026,13 @@ tcu::TestStatus vkt::subgroups::allStages(
 
        const Unique<VkRenderPass> renderPass(makeRenderPass(context, format));
        const Unique<VkPipeline> pipeline(makeGraphicsPipeline(context, *pipelineLayout,
-                                                                               shaderStageRequired,
-                                                                               *vertexShaderModule, *fragmentShaderModule, *geometryShaderModule, *teCtrlShaderModule, *teEvalShaderModule,
-                                                                               *renderPass,
-                                                                               (shaderStageRequired & VK_SHADER_STAGE_TESSELLATION_CONTROL_BIT) ? VK_PRIMITIVE_TOPOLOGY_PATCH_LIST : VK_PRIMITIVE_TOPOLOGY_POINT_LIST));
+                                                                                                                  shaderStageRequired,
+                                                                                                                  *vertexShaderModule, *fragmentShaderModule, *geometryShaderModule, *teCtrlShaderModule, *teEvalShaderModule,
+                                                                                                                  *renderPass,
+                                                                                                                  (shaderStageRequired & VK_SHADER_STAGE_TESSELLATION_CONTROL_BIT) ? VK_PRIMITIVE_TOPOLOGY_PATCH_LIST : VK_PRIMITIVE_TOPOLOGY_POINT_LIST,
+                                                                                                                  DE_NULL, DE_NULL, false, VK_FORMAT_R32G32B32A32_SFLOAT,
+                                                                                                                  vertexShaderStageCreateFlags, tessellationControlShaderStageCreateFlags, tessellationEvalShaderStageCreateFlags,
+                                                                                                                  geometryShaderStageCreateFlags, fragmentShaderStageCreateFlags, requiredSubgroupSize));
 
        Move <VkDescriptorPool> descriptorPool;
        Move <VkDescriptorSet>  descriptorSet;
@@ -2861,7 +3173,7 @@ tcu::TestStatus vkt::subgroups::allStages(
                                        }
                                }
 
-                               if (!checkResult(datas, (stagesVector[ndx] == VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT) ? width * 2 : width , subgroupSize))
+                               if (!checkResult(internalData, datas, (stagesVector[ndx] == VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT) ? width * 2 : width , subgroupSize))
                                        failedIterations++;
                        }
                        if (shaderStageTested & VK_SHADER_STAGE_FRAGMENT_BIT)
@@ -2885,7 +3197,7 @@ tcu::TestStatus vkt::subgroups::allStages(
                                        }
                                }
 
-                               if (!checkResult(datas, width, subgroupSize))
+                               if (!checkResult(internalData, datas, width, subgroupSize))
                                        failedIterations++;
                        }
 
@@ -2908,8 +3220,17 @@ tcu::TestStatus vkt::subgroups::allStages(
 }
 
 tcu::TestStatus vkt::subgroups::makeVertexFrameBufferTest(Context& context, vk::VkFormat format,
-       SSBOData* extraData, deUint32 extraDataCount,
-       bool (*checkResult)(std::vector<const void*> datas, deUint32 width, deUint32 subgroupSize))
+       SSBOData* extraData, deUint32 extraDataCount, const void* internalData,
+       bool (*checkResult)(const void* internalData, std::vector<const void*> datas, deUint32 width, deUint32 subgroupSize))
+{
+       return makeVertexFrameBufferTestRequiredSubgroupSize(context, format, extraData, extraDataCount, internalData, checkResult,
+                                                                                                                0u, 0u);
+}
+
+tcu::TestStatus vkt::subgroups::makeVertexFrameBufferTestRequiredSubgroupSize(Context& context, vk::VkFormat format,
+       SSBOData* extraData, deUint32 extraDataCount, const void* internalData,
+       bool (*checkResult)(const void* internalData, std::vector<const void*> datas, deUint32 width, deUint32 subgroupSize),
+       const deUint32 vertexShaderStageCreateFlags, const deUint32 requiredSubgroupSize)
 {
        const DeviceInterface&                                  vk                                              = context.getDeviceInterface();
        const VkDevice                                                  device                                  = context.getDevice();
@@ -2959,12 +3280,15 @@ tcu::TestStatus vkt::subgroups::makeVertexFrameBufferTest(Context& context, vk::
 
        const Unique<VkPipelineLayout>                  pipelineLayout                  (makePipelineLayout(vk, device, *descriptorSetLayout));
 
+       const deUint32 requiredSubgroupSizes[5] = {requiredSubgroupSize, 0u, 0u, 0u, 0u};
        const Unique<VkPipeline>                                pipeline                                (makeGraphicsPipeline(context, *pipelineLayout,
-                                                                                                                                               VK_SHADER_STAGE_VERTEX_BIT | VK_SHADER_STAGE_FRAGMENT_BIT,
-                                                                                                                                               *vertexShaderModule, *fragmentShaderModule,
-                                                                                                                                               DE_NULL, DE_NULL, DE_NULL,
-                                                                                                                                               *renderPass, VK_PRIMITIVE_TOPOLOGY_POINT_LIST,
-                                                                                                                                               &vertexInputBinding, &vertexInputAttribute, true, format));
+                                                                                                                                                                                 VK_SHADER_STAGE_VERTEX_BIT | VK_SHADER_STAGE_FRAGMENT_BIT,
+                                                                                                                                                                                 *vertexShaderModule, *fragmentShaderModule,
+                                                                                                                                                                                 DE_NULL, DE_NULL, DE_NULL,
+                                                                                                                                                                                 *renderPass, VK_PRIMITIVE_TOPOLOGY_POINT_LIST,
+                                                                                                                                                                                 &vertexInputBinding, &vertexInputAttribute, true, format,
+                                                                                                                                                                                 vertexShaderStageCreateFlags, 0u, 0u, 0u, 0u,
+                                                                                                                                                                                 requiredSubgroupSize != 0u ? requiredSubgroupSizes : DE_NULL));
        DescriptorPoolBuilder                                   poolBuilder;
        DescriptorSetUpdateBuilder                              updateBuilder;
 
@@ -3094,7 +3418,7 @@ tcu::TestStatus vkt::subgroups::makeVertexFrameBufferTest(Context& context, vk::
 
                        std::vector<const void*> datas;
                        datas.push_back(allocResult.getHostPtr());
-                       if (!checkResult(datas, width, subgroupSize))
+                       if (!checkResult(internalData, datas, width, subgroupSize))
                                failedIterations++;
                }
        }
@@ -3113,12 +3437,23 @@ tcu::TestStatus vkt::subgroups::makeVertexFrameBufferTest(Context& context, vk::
        return tcu::TestStatus::pass("OK");
 }
 
-
-tcu::TestStatus vkt::subgroups::makeFragmentFrameBufferTest    (Context& context, VkFormat format, SSBOData* extraDatas,
-       deUint32 extraDatasCount,
-       bool (*checkResult)(std::vector<const void*> datas, deUint32 width,
+tcu::TestStatus vkt::subgroups::makeFragmentFrameBufferTest(
+       Context& context, VkFormat format, SSBOData* extraDatas,
+       deUint32 extraDatasCount, const void* internalData,
+       bool (*checkResult)(const void* internalData, std::vector<const void*> datas, deUint32 width,
                                                deUint32 height, deUint32 subgroupSize))
 {
+       return makeFragmentFrameBufferTestRequiredSubgroupSize(context, format, extraDatas, extraDatasCount, internalData, checkResult,
+                                                                                                                  0u, 0u);
+}
+
+tcu::TestStatus vkt::subgroups::makeFragmentFrameBufferTestRequiredSubgroupSize(
+       Context& context, VkFormat format, SSBOData* extraDatas,
+       deUint32 extraDatasCount, const void* internalData,
+       bool (*checkResult)(const void* internalData, std::vector<const void*> datas, deUint32 width,
+                                               deUint32 height, deUint32 subgroupSize),
+       const deUint32 fragmentShaderStageCreateFlags, const deUint32 requiredSubgroupSize)
+{
        const DeviceInterface&                                  vk                                              = context.getDeviceInterface();
        const VkDevice                                                  device                                  = context.getDevice();
        const VkQueue                                                   queue                                   = context.getUniversalQueue();
@@ -3163,10 +3498,13 @@ tcu::TestStatus vkt::subgroups::makeFragmentFrameBufferTest     (Context& context, V
                makePipelineLayout(vk, device, *descriptorSetLayout));
 
        const Unique<VkRenderPass> renderPass(makeRenderPass(context, format));
+
+       const deUint32 requiredSubgroupSizes[5] = {0u, 0u, 0u, 0u, requiredSubgroupSize};
        const Unique<VkPipeline> pipeline(makeGraphicsPipeline(context, *pipelineLayout,
-                                                                         VK_SHADER_STAGE_VERTEX_BIT | VK_SHADER_STAGE_FRAGMENT_BIT,
-                                                                         *vertexShaderModule, *fragmentShaderModule, DE_NULL, DE_NULL, DE_NULL, *renderPass, VK_PRIMITIVE_TOPOLOGY_TRIANGLE_STRIP,
-                                                                         DE_NULL, DE_NULL, true));
+                                                                                                                  VK_SHADER_STAGE_VERTEX_BIT | VK_SHADER_STAGE_FRAGMENT_BIT,
+                                                                                                                  *vertexShaderModule, *fragmentShaderModule, DE_NULL, DE_NULL, DE_NULL, *renderPass, VK_PRIMITIVE_TOPOLOGY_TRIANGLE_STRIP,
+                                                                                                                  DE_NULL, DE_NULL, true, VK_FORMAT_R32G32B32A32_SFLOAT,
+                                                                                                                  0u, 0u, 0u, 0u, fragmentShaderStageCreateFlags, requiredSubgroupSize != 0u ? requiredSubgroupSizes : DE_NULL));
 
        DescriptorPoolBuilder poolBuilder;
 
@@ -3295,7 +3633,7 @@ tcu::TestStatus vkt::subgroups::makeFragmentFrameBufferTest       (Context& context, V
                                datas.push_back(resultAlloc.getHostPtr());
                        }
 
-                       if (!checkResult(datas, width, height, subgroupSize))
+                       if (!checkResult(internalData, datas, width, height, subgroupSize))
                        {
                                failedIterations++;
                        }
@@ -3318,11 +3656,68 @@ tcu::TestStatus vkt::subgroups::makeFragmentFrameBufferTest     (Context& context, V
        return tcu::TestStatus::pass("OK");
 }
 
-tcu::TestStatus vkt::subgroups::makeComputeTest(
-       Context& context, VkFormat format, SSBOData* inputs, deUint32 inputsCount,
-       bool (*checkResult)(std::vector<const void*> datas,
+Move<VkPipeline> makeComputePipeline(Context& context,
+                                                                        const VkPipelineLayout pipelineLayout, const VkShaderModule shaderModule,
+                                                                        const deUint32 pipelineShaderStageFlags, const deUint32 pipelineCreateFlags, VkPipeline basePipelineHandle,
+                                                                        deUint32 localSizeX, deUint32 localSizeY, deUint32 localSizeZ, deUint32 requiredSubgroupSize)
+{
+       const deUint32 localSize[3] = {localSizeX, localSizeY, localSizeZ};
+
+       const vk::VkSpecializationMapEntry entries[3] =
+       {
+               {0, sizeof(deUint32) * 0, sizeof(deUint32)},
+               {1, sizeof(deUint32) * 1, sizeof(deUint32)},
+               {2, static_cast<deUint32>(sizeof(deUint32) * 2), sizeof(deUint32)},
+       };
+
+       const vk::VkSpecializationInfo info =
+       {
+               /* mapEntryCount = */ 3,
+               /* pMapEntries   = */ entries,
+               /* dataSize      = */ sizeof(localSize),
+               /* pData         = */ localSize
+       };
+
+       const vk::VkPipelineShaderStageRequiredSubgroupSizeCreateInfoEXT subgroupSizeCreateInfo =
+       {
+               VK_STRUCTURE_TYPE_PIPELINE_SHADER_STAGE_REQUIRED_SUBGROUP_SIZE_CREATE_INFO_EXT, // VkStructureType    sType;
+               DE_NULL,                                                                                                                                                // void*              pNext;
+               requiredSubgroupSize                                                                                                                    // uint32_t           requiredSubgroupSize;
+       };
+
+       const vk::VkPipelineShaderStageCreateInfo pipelineShaderStageParams =
+       {
+               VK_STRUCTURE_TYPE_PIPELINE_SHADER_STAGE_CREATE_INFO,                            // VkStructureType                                      sType;
+               (requiredSubgroupSize != 0u ? &subgroupSizeCreateInfo : DE_NULL),       // const void*                                          pNext;
+               pipelineShaderStageFlags,                                                                                       // VkPipelineShaderStageCreateFlags     flags;
+               VK_SHADER_STAGE_COMPUTE_BIT,                                                                            // VkShaderStageFlagBits                        stage;
+               shaderModule,                                                                                                           // VkShaderModule                                       module;
+               "main",                                                                                                                         // const char*                                          pName;
+               &info,                                                                                                                          // const VkSpecializationInfo*          pSpecializationInfo;
+       };
+
+       const vk::VkComputePipelineCreateInfo pipelineCreateInfo =
+       {
+               VK_STRUCTURE_TYPE_COMPUTE_PIPELINE_CREATE_INFO, // VkStructureType      sType;
+               DE_NULL,                                                                                // const void*                                          pNext;
+               pipelineCreateFlags,                                                    // VkPipelineCreateFlags                        flags;
+               pipelineShaderStageParams,                                              // VkPipelineShaderStageCreateInfo      stage;
+               pipelineLayout,                                                                 // VkPipelineLayout                                     layout;
+               basePipelineHandle,                                                             // VkPipeline                                           basePipelineHandle;
+               0,                                                                                              // deInt32                                                      basePipelineIndex;
+       };
+
+       return createComputePipeline(context.getDeviceInterface(),
+                                                                context.getDevice(), DE_NULL, &pipelineCreateInfo);
+}
+
+tcu::TestStatus vkt::subgroups::makeComputeTestRequiredSubgroupSize(
+       Context& context, VkFormat format, SSBOData* inputs, deUint32 inputsCount, const void* internalData,
+       bool (*checkResult)(const void* internalData, std::vector<const void*> datas,
                                                const deUint32 numWorkgroups[3], const deUint32 localSize[3],
-                                               deUint32 subgroupSize))
+                                               deUint32 subgroupSize),
+       const deUint32 pipelineShaderStageCreateFlags, const deUint32 numWorkgroups[3],
+       const deBool isRequiredSubgroupSize, const deUint32 subgroupSize, const deUint32 localSizesToTest[][3], const deUint32 localSizesToTestCount)
 {
        const DeviceInterface&                                  vk                                              = context.getDeviceInterface();
        const VkDevice                                                  device                                  = context.getDevice();
@@ -3330,9 +3725,25 @@ tcu::TestStatus vkt::subgroups::makeComputeTest(
        const deUint32                                                  queueFamilyIndex                = context.getUniversalQueueFamilyIndex();
        VkDeviceSize                                                    elementSize                             = getFormatSizeInBytes(format);
 
-       const VkDeviceSize resultBufferSize = maxSupportedSubgroupSize() *
-                                                                                 maxSupportedSubgroupSize() *
-                                                                                 maxSupportedSubgroupSize();
+       VkDeviceSize maxSubgroupSize = maxSupportedSubgroupSize();
+
+       if (isRequiredSubgroupSize)
+       {
+               VkPhysicalDeviceSubgroupSizeControlPropertiesEXT subgroupSizeControlProperties;
+               subgroupSizeControlProperties.sType = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBGROUP_SIZE_CONTROL_PROPERTIES_EXT;
+               subgroupSizeControlProperties.pNext = DE_NULL;
+
+               VkPhysicalDeviceProperties2 properties2;
+               properties2.sType = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROPERTIES_2;
+               properties2.pNext = &subgroupSizeControlProperties;
+               context.getInstanceInterface().getPhysicalDeviceProperties2(context.getPhysicalDevice(), &properties2);
+               maxSubgroupSize = deMax32(subgroupSizeControlProperties.maxSubgroupSize, static_cast<deUint32>(maxSubgroupSize));
+       }
+
+       const VkDeviceSize resultBufferSize = maxSubgroupSize *
+                                                                                 maxSubgroupSize *
+                                                                                 maxSubgroupSize;
+
        const VkDeviceSize resultBufferSizeInBytes = resultBufferSize * elementSize;
 
        Buffer resultBuffer(
@@ -3435,31 +3846,15 @@ tcu::TestStatus vkt::subgroups::makeComputeTest(
        unsigned totalIterations = 0;
        unsigned failedIterations = 0;
 
-       const deUint32 subgroupSize = getSubgroupSize(context);
-
        const Unique<VkCommandBuffer> cmdBuffer(
                makeCommandBuffer(context, *cmdPool));
 
-       const deUint32 numWorkgroups[3] = {4, 2, 2};
-
-       const deUint32 localSizesToTestCount = 8;
-       deUint32 localSizesToTest[localSizesToTestCount][3] =
-       {
-               {1, 1, 1},
-               {subgroupSize, 1, 1},
-               {1, subgroupSize, 1},
-               {1, 1, subgroupSize},
-               {32, 4, 1},
-               {1, 4, 32},
-               {3, 5, 7},
-               {1, 1, 1} // Isn't used, just here to make double buffering checks easier
-       };
-
-       Move<VkPipeline> pipelines[localSizesToTestCount - 1];
+       Move<VkPipeline> *pipelines = new Move<VkPipeline>[localSizesToTestCount - 1];
        pipelines[0] =
                makeComputePipeline(context, *pipelineLayout, *shaderModule,
-                                                       VK_PIPELINE_CREATE_ALLOW_DERIVATIVES_BIT, (VkPipeline) DE_NULL,
-                                                       localSizesToTest[0][0], localSizesToTest[0][1], localSizesToTest[0][2]);
+                                                       pipelineShaderStageCreateFlags, VK_PIPELINE_CREATE_ALLOW_DERIVATIVES_BIT, (VkPipeline) DE_NULL,
+                                                       localSizesToTest[0][0], localSizesToTest[0][1], localSizesToTest[0][2],
+                                                       isRequiredSubgroupSize ? subgroupSize : 0u);
 
        for (deUint32 index = 1; index < (localSizesToTestCount - 1); index++)
        {
@@ -3469,8 +3864,9 @@ tcu::TestStatus vkt::subgroups::makeComputeTest(
 
                pipelines[index] =
                        makeComputePipeline(context, *pipelineLayout, *shaderModule,
-                                                               VK_PIPELINE_CREATE_DERIVATIVE_BIT, *pipelines[0],
-                                                               nextX, nextY, nextZ);
+                                                               pipelineShaderStageCreateFlags, VK_PIPELINE_CREATE_DERIVATIVE_BIT, *pipelines[0],
+                                                               nextX, nextY, nextZ,
+                                                               isRequiredSubgroupSize ? subgroupSize : 0u);
        }
 
        for (deUint32 index = 0; index < (localSizesToTestCount - 1); index++)
@@ -3515,7 +3911,7 @@ tcu::TestStatus vkt::subgroups::makeComputeTest(
                        }
                }
 
-               if (!checkResult(datas, numWorkgroups, localSizesToTest[index], subgroupSize))
+               if (!checkResult(internalData, datas, numWorkgroups, localSizesToTest[index], subgroupSize))
                {
                        failedIterations++;
                }
@@ -3523,6 +3919,8 @@ tcu::TestStatus vkt::subgroups::makeComputeTest(
                vk.resetCommandBuffer(*cmdBuffer, 0);
        }
 
+       delete[] pipelines;
+
        if (0 < failedIterations)
        {
                unsigned valuesPassed = (failedIterations > totalIterations) ? 0u : (totalIterations - failedIterations);
@@ -3536,3 +3934,33 @@ tcu::TestStatus vkt::subgroups::makeComputeTest(
 
        return tcu::TestStatus::pass("OK");
 }
+
+tcu::TestStatus vkt::subgroups::makeComputeTest(
+       Context& context, VkFormat format, SSBOData* inputs, deUint32 inputsCount, const void* internalData,
+       bool (*checkResult)(const void* internalData, std::vector<const void*> datas,
+                                               const deUint32 numWorkgroups[3], const deUint32 localSize[3],
+                                               deUint32 subgroupSize),
+       deUint32 requiredSubgroupSize, const deUint32 pipelineShaderStageCreateFlags)
+{
+       const deUint32 numWorkgroups[3] = {4, 2, 2};
+       deUint32 subgroupSize = requiredSubgroupSize;
+
+       if(requiredSubgroupSize == 0)
+               subgroupSize = vkt::subgroups::getSubgroupSize(context);
+
+       const deUint32 localSizesToTestCount = 8;
+       deUint32 localSizesToTest[localSizesToTestCount][3] =
+       {
+               {1, 1, 1},
+               {subgroupSize, 1, 1},
+               {1, subgroupSize, 1},
+               {1, 1, subgroupSize},
+               {32, 4, 1},
+               {1, 4, 32},
+               {3, 5, 7},
+               {1, 1, 1} // Isn't used, just here to make double buffering checks easier
+       };
+
+       return makeComputeTestRequiredSubgroupSize(context, format, inputs, inputsCount, internalData, checkResult, pipelineShaderStageCreateFlags,
+                                                                                          numWorkgroups, requiredSubgroupSize != 0u, subgroupSize, localSizesToTest, localSizesToTestCount);
+}
index 80e48e1..5c77148 100644 (file)
@@ -173,34 +173,78 @@ bool checkCompute(std::vector<const void*> datas,
        deUint32 ref);
 
 tcu::TestStatus makeTessellationEvaluationFrameBufferTest(Context& context, vk::VkFormat format,
-       SSBOData* extraData, deUint32 extraDataCount,
-       bool (*checkResult)(std::vector<const void*> datas, deUint32 width, deUint32 subgroupSize),
+       SSBOData* extraData, deUint32 extraDataCount, const void* internalData,
+       bool (*checkResult)(const void* internalData, std::vector<const void*> datas, deUint32 width, deUint32 subgroupSize),
        const vk::VkShaderStageFlags shaderStage = vk::VK_SHADER_STAGE_ALL_GRAPHICS);
 
 tcu::TestStatus makeGeometryFrameBufferTest(Context& context, vk::VkFormat format, SSBOData* extraData,
-       deUint32 extraDataCount,
-       bool (*checkResult)(std::vector<const void*> datas, deUint32 width, deUint32 subgroupSize));
+       deUint32 extraDataCount, const void* internalData,
+       bool (*checkResult)(const void* internalData, std::vector<const void*> datas, deUint32 width, deUint32 subgroupSize));
 
 tcu::TestStatus allStages(Context& context, vk::VkFormat format,
-       SSBOData* extraData, deUint32 extraDataCount,
-       bool (*checkResult)(std::vector<const void*> datas, deUint32 width, deUint32 subgroupSize),
+       SSBOData* extraData, deUint32 extraDataCount, const void* internalData,
+       bool (*checkResult)(const void* internalData, std::vector<const void*> datas, deUint32 width, deUint32 subgroupSize),
        const vk::VkShaderStageFlags shaderStage);
 
 tcu::TestStatus makeVertexFrameBufferTest(Context& context, vk::VkFormat format,
-       SSBOData* extraData, deUint32 extraDataCount,
-       bool (*checkResult)(std::vector<const void*> datas, deUint32 width, deUint32 subgroupSize));
+       SSBOData* extraData, deUint32 extraDataCount, const void* internalData,
+       bool (*checkResult)(const void* internalData, std::vector<const void*> datas, deUint32 width, deUint32 subgroupSize));
 
 tcu::TestStatus makeFragmentFrameBufferTest(Context& context, vk::VkFormat format,
-       SSBOData* extraData, deUint32 extraDataCount,
-       bool (*checkResult)(std::vector<const void*> datas, deUint32 width,
-                                                                        deUint32 height, deUint32 subgroupSize));
+       SSBOData* extraData, deUint32 extraDataCount, const void* internalData,
+       bool (*checkResult)(const void* internalData, std::vector<const void*> datas, deUint32 width,
+                                               deUint32 height, deUint32 subgroupSize));
 
 tcu::TestStatus makeComputeTest(
        Context& context, vk::VkFormat format, SSBOData* inputs,
-       deUint32 inputsCount,
-       bool (*checkResult)(std::vector<const void*> datas,
+       deUint32 inputsCount,const void* internalData,
+       bool (*checkResult)(const void* internalData, std::vector<const void*> datas,
                const deUint32 numWorkgroups[3], const deUint32 localSize[3],
-               deUint32 subgroupSize));
+               deUint32 subgroupSize),
+       deUint32 requiredSubgroupSize = 0u, const deUint32 pipelineShaderStageCreateFlags = 0u);
+
+/* Functions needed for VK_EXT_subgroup_size_control tests */
+tcu::TestStatus makeTessellationEvaluationFrameBufferTestRequiredSubgroupSize(Context& context, vk::VkFormat format,
+       SSBOData* extraData, deUint32 extraDataCount, const void* internalData,
+       bool (*checkResult)(const void* internalData, std::vector<const void*> datas, deUint32 width, deUint32 subgroupSize),
+       const vk::VkShaderStageFlags shaderStage = vk::VK_SHADER_STAGE_ALL_GRAPHICS,
+       const deUint32 tessShaderStageCreateFlags = 0u, const deUint32 requiredSubgroupSize = 0u);
+
+tcu::TestStatus makeGeometryFrameBufferTestRequiredSubgroupSize(Context& context, vk::VkFormat format, SSBOData* extraData,
+       deUint32 extraDataCount, const void* internalData,
+       bool (*checkResult)(const void* internalData, std::vector<const void*> datas, deUint32 width, deUint32 subgroupSize),
+       const deUint32 geometryShaderStageCreateFlags = 0u, const deUint32 requiredSubgroupSize = 0u);
+
+tcu::TestStatus allStagesRequiredSubgroupSize(Context& context, vk::VkFormat format,
+       SSBOData* extraData, deUint32 extraDataCount, const void* internalData,
+       bool (*checkResult)(const void* internalData, std::vector<const void*> datas, deUint32 width, deUint32 subgroupSize),
+       const vk::VkShaderStageFlags shaderStage,
+       const deUint32 vertexShaderStageCreateFlags,
+       const deUint32 tessellationControlShaderStageCreateFlags,
+       const deUint32 tessellationEvalShaderStageCreateFlags,
+       const deUint32 geometryShaderStageCreateFlags,
+       const deUint32 fragmentShaderStageCreateFlags,
+       const deUint32 requiredSubgroupSize[5]);
+
+tcu::TestStatus makeVertexFrameBufferTestRequiredSubgroupSize(Context& context, vk::VkFormat format,
+       SSBOData* extraData, deUint32 extraDataCount, const void* internalData,
+       bool (*checkResult)(const void* internalData, std::vector<const void*> datas, deUint32 width, deUint32 subgroupSize),
+       const deUint32 vertexShaderStageCreateFlags = 0u,
+       const deUint32 requiredSubgroupSize = 0u);
+
+tcu::TestStatus makeFragmentFrameBufferTestRequiredSubgroupSize(Context& context, vk::VkFormat format,
+       SSBOData* extraData, deUint32 extraDataCount, const void* internalData,
+       bool (*checkResult)(const void* internalData, std::vector<const void*> datas, deUint32 width,
+                                               deUint32 height, deUint32 subgroupSize),
+       const deUint32 fragmentShaderStageCreateFlags = 0u, const deUint32 requiredSubgroupSize = 0u);
+
+tcu::TestStatus makeComputeTestRequiredSubgroupSize(
+       Context& context, vk::VkFormat format, SSBOData* inputs, deUint32 inputsCount, const void* internalData,
+       bool (*checkResult)(const void* internalData, std::vector<const void*> datas,
+                                               const deUint32 numWorkgroups[3], const deUint32 localSize[3],
+                                               deUint32 subgroupSize),
+       const deUint32 pipelineShaderStageCreateFlags, const deUint32 numWorkgroups[3],
+       const deBool isRequiredSubgroupSize, const deUint32 subgroupSize, const deUint32 localSizesToTest[][3], const deUint32 localSizesToTestCount);
 } // subgroups
 } // vkt
 
index d4308b3..8479a40 100755 (executable)
@@ -48,15 +48,17 @@ enum OpType
        OPTYPE_LAST
 };
 
-static bool checkVertexPipelineStages(std::vector<const void*> datas,
+static bool checkVertexPipelineStages(const void* internalData, std::vector<const void*> datas,
                                                                          deUint32 width, deUint32)
 {
+       DE_UNREF(internalData);
        return vkt::subgroups::check(datas, width, 0x1F);
 }
 
-static bool checkFragmentPipelineStages(std::vector<const void*> datas,
+static bool checkFragmentPipelineStages(const void* internalData, std::vector<const void*> datas,
                                                                          deUint32 width, deUint32 height, deUint32)
 {
+       DE_UNREF(internalData);
        const deUint32* data =
                reinterpret_cast<const deUint32*>(datas[0]);
        for (deUint32 x = 0u; x < width; ++x)
@@ -81,10 +83,11 @@ static bool checkFragmentPipelineStages(std::vector<const void*> datas,
        return true;
 }
 
-static bool checkCompute(std::vector<const void*> datas,
+static bool checkCompute(const void* internalData, std::vector<const void*> datas,
                                                 const deUint32 numWorkgroups[3], const deUint32 localSize[3],
                                                 deUint32)
 {
+       DE_UNREF(internalData);
        return vkt::subgroups::checkCompute(datas, numWorkgroups, localSize, 0x1F);
 }
 
@@ -116,6 +119,7 @@ struct CaseDefinition
        VkShaderStageFlags      shaderStage;
        VkFormat                        format;
        de::SharedPtr<bool>     geometryPointSizeSupported;
+       deBool                          requiredSubgroupSize;
 };
 
 bool fmtIsBoolean(VkFormat format)
@@ -617,6 +621,27 @@ void supportedCheck (Context& context, CaseDefinition caseDef)
                context.requireDeviceFunctionality("VK_EXT_shader_subgroup_vote");
        }
 
+       if (caseDef.requiredSubgroupSize)
+       {
+               if (!context.requireDeviceFunctionality("VK_EXT_subgroup_size_control"))
+                       TCU_THROW(NotSupportedError, "Device does not support VK_EXT_subgroup_size_control extension");
+               VkPhysicalDeviceSubgroupSizeControlFeaturesEXT subgroupSizeControlFeatures;
+               subgroupSizeControlFeatures.sType = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBGROUP_SIZE_CONTROL_FEATURES_EXT;
+               subgroupSizeControlFeatures.pNext = DE_NULL;
+
+               VkPhysicalDeviceFeatures2 features;
+               features.sType = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FEATURES_2;
+               features.pNext = &subgroupSizeControlFeatures;
+
+               context.getInstanceInterface().getPhysicalDeviceFeatures2(context.getPhysicalDevice(), &features);
+
+               if (subgroupSizeControlFeatures.subgroupSizeControl == DE_FALSE)
+                       TCU_THROW(NotSupportedError, "Device does not support varying subgroup sizes nor required subgroup size");
+
+               if (subgroupSizeControlFeatures.computeFullSubgroups == DE_FALSE)
+                       TCU_THROW(NotSupportedError, "Device does not support full subgroups in compute shaders");
+       }
+
        *caseDef.geometryPointSizeSupported = subgroups::isTessellationAndGeometryPointSizeSupported(context);
 }
 
@@ -651,15 +676,15 @@ tcu::TestStatus noSSBOtest (Context& context, const CaseDefinition caseDef)
        inputData.initializeType = (OPTYPE_ALLEQUAL == caseDef.opType || OPTYPE_ALLEQUAL_ARB == caseDef.opType) ? subgroups::SSBOData::InitializeZero : subgroups::SSBOData::InitializeNonZero;
 
        if (VK_SHADER_STAGE_VERTEX_BIT == caseDef.shaderStage)
-               return subgroups::makeVertexFrameBufferTest(context, VK_FORMAT_R32_UINT, &inputData, 1, checkVertexPipelineStages);
+               return subgroups::makeVertexFrameBufferTest(context, VK_FORMAT_R32_UINT, &inputData, 1, DE_NULL, checkVertexPipelineStages);
        else if (VK_SHADER_STAGE_GEOMETRY_BIT == caseDef.shaderStage)
-               return subgroups::makeGeometryFrameBufferTest(context, VK_FORMAT_R32_UINT, &inputData, 1, checkVertexPipelineStages);
+               return subgroups::makeGeometryFrameBufferTest(context, VK_FORMAT_R32_UINT, &inputData, 1, DE_NULL, checkVertexPipelineStages);
        else if (VK_SHADER_STAGE_TESSELLATION_CONTROL_BIT == caseDef.shaderStage)
-               return subgroups::makeTessellationEvaluationFrameBufferTest(context, VK_FORMAT_R32_UINT, &inputData, 1, checkVertexPipelineStages, VK_SHADER_STAGE_TESSELLATION_CONTROL_BIT);
+               return subgroups::makeTessellationEvaluationFrameBufferTest(context, VK_FORMAT_R32_UINT, &inputData, 1, DE_NULL, checkVertexPipelineStages, VK_SHADER_STAGE_TESSELLATION_CONTROL_BIT);
        else if (VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT == caseDef.shaderStage)
-               return subgroups::makeTessellationEvaluationFrameBufferTest(context, VK_FORMAT_R32_UINT, &inputData, 1, checkVertexPipelineStages, VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT);
+               return subgroups::makeTessellationEvaluationFrameBufferTest(context, VK_FORMAT_R32_UINT, &inputData, 1, DE_NULL, checkVertexPipelineStages, VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT);
        else if (VK_SHADER_STAGE_FRAGMENT_BIT == caseDef.shaderStage)
-               return subgroups::makeFragmentFrameBufferTest(context, VK_FORMAT_R32_UINT, &inputData, 1, checkFragmentPipelineStages);
+               return subgroups::makeFragmentFrameBufferTest(context, VK_FORMAT_R32_UINT, &inputData, 1, DE_NULL, checkFragmentPipelineStages);
        else
                TCU_THROW(InternalError, "Unhandled shader stage");
 }
@@ -682,8 +707,35 @@ tcu::TestStatus test(Context& context, const CaseDefinition caseDef)
                inputData.numElements = subgroups::maxSupportedSubgroupSize();
                inputData.initializeType = (OPTYPE_ALLEQUAL == caseDef.opType || OPTYPE_ALLEQUAL_ARB == caseDef.opType) ? subgroups::SSBOData::InitializeZero : subgroups::SSBOData::InitializeNonZero;
 
-               return subgroups::makeComputeTest(context, VK_FORMAT_R32_UINT, &inputData,
-                                                                                 1, checkCompute);
+               if (caseDef.requiredSubgroupSize == DE_FALSE)
+                       return subgroups::makeComputeTest(context, VK_FORMAT_R32_UINT, &inputData,
+                                                                                         1, DE_NULL, checkCompute);
+
+               tcu::TestLog& log       = context.getTestContext().getLog();
+               VkPhysicalDeviceSubgroupSizeControlPropertiesEXT subgroupSizeControlProperties;
+               subgroupSizeControlProperties.sType = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBGROUP_SIZE_CONTROL_PROPERTIES_EXT;
+               subgroupSizeControlProperties.pNext = DE_NULL;
+               VkPhysicalDeviceProperties2 properties;
+               properties.sType = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROPERTIES_2;
+               properties.pNext = &subgroupSizeControlProperties;
+
+               context.getInstanceInterface().getPhysicalDeviceProperties2(context.getPhysicalDevice(), &properties);
+
+               log << tcu::TestLog::Message << "Testing required subgroup size range [" <<  subgroupSizeControlProperties.minSubgroupSize << ", "
+                       << subgroupSizeControlProperties.maxSubgroupSize << "]" << tcu::TestLog::EndMessage;
+
+               // According to the spec, requiredSubgroupSize must be a power-of-two integer.
+               for (deUint32 size = subgroupSizeControlProperties.minSubgroupSize; size <= subgroupSizeControlProperties.maxSubgroupSize; size *= 2)
+               {
+                       tcu::TestStatus result = subgroups::makeComputeTest(context, VK_FORMAT_R32_UINT, &inputData, 1, DE_NULL, checkCompute,
+                                                                                                                               size, VK_PIPELINE_SHADER_STAGE_CREATE_REQUIRE_FULL_SUBGROUPS_BIT_EXT);
+                       if (result.getCode() != QP_TEST_RESULT_PASS)
+                       {
+                               log << tcu::TestLog::Message << "subgroupSize " << size << " failed" << tcu::TestLog::EndMessage;
+                               return result;
+                       }
+               }
+               return tcu::TestStatus::pass("OK");
        }
        else
        {
@@ -718,7 +770,7 @@ tcu::TestStatus test(Context& context, const CaseDefinition caseDef)
                inputData.binding                       = 4u;
                inputData.stages                        = stages;
 
-               return subgroups::allStages(context, VK_FORMAT_R32_UINT, &inputData, 1, checkVertexPipelineStages, stages);
+               return subgroups::allStages(context, VK_FORMAT_R32_UINT, &inputData, 1, DE_NULL, checkVertexPipelineStages, stages);
        }
 }
 }
@@ -790,23 +842,31 @@ tcu::TestCaseGroup* createSubgroupsVoteTests(tcu::TestContext& testCtx)
                        const std::string op = de::toLower(getOpTypeName(opTypeIndex));
 
                        {
-                               const CaseDefinition caseDef = {opTypeIndex, VK_SHADER_STAGE_COMPUTE_BIT, format, de::SharedPtr<bool>(new bool)};
+                               CaseDefinition caseDef = {opTypeIndex, VK_SHADER_STAGE_COMPUTE_BIT, format, de::SharedPtr<bool>(new bool), DE_FALSE};
                                if (opTypeIndex < OPTYPE_LAST_NON_ARB)
                                {
                                        addFunctionCaseWithPrograms(computeGroup.get(),
                                                                                                op + "_" + subgroups::getFormatNameForGLSL(format),
                                                                                                "", supportedCheck, initPrograms, test, caseDef);
+                                       caseDef.requiredSubgroupSize = DE_TRUE;
+                                       addFunctionCaseWithPrograms(computeGroup.get(),
+                                                                                               op + "_" + subgroups::getFormatNameForGLSL(format) + "_requiredsubgroupsize",
+                                                                                               "", supportedCheck, initPrograms, test, caseDef);
                                }
                                else
                                {
                                        addFunctionCaseWithPrograms(computeGroupARB.get(),
                                                                                                op + "_" + subgroups::getFormatNameForGLSL(format),
                                                                                                "", supportedCheck, initPrograms, test, caseDef);
+                                       caseDef.requiredSubgroupSize = DE_TRUE;
+                                       addFunctionCaseWithPrograms(computeGroupARB.get(),
+                                                                                               op + "_" + subgroups::getFormatNameForGLSL(format) + "_requiredsubgroupsize",
+                                                                                               "", supportedCheck, initPrograms, test, caseDef);
                                }
                        }
 
                        {
-                               const CaseDefinition caseDef = {opTypeIndex, VK_SHADER_STAGE_ALL_GRAPHICS, format, de::SharedPtr<bool>(new bool)};
+                               const CaseDefinition caseDef = {opTypeIndex, VK_SHADER_STAGE_ALL_GRAPHICS, format, de::SharedPtr<bool>(new bool), DE_FALSE};
                                if (opTypeIndex < OPTYPE_LAST_NON_ARB)
                                {
                                        addFunctionCaseWithPrograms(graphicGroup.get(),
@@ -823,7 +883,7 @@ tcu::TestCaseGroup* createSubgroupsVoteTests(tcu::TestContext& testCtx)
 
                        for (int stageIndex = 0; stageIndex < DE_LENGTH_OF_ARRAY(stages); ++stageIndex)
                        {
-                               const CaseDefinition caseDef = {opTypeIndex, stages[stageIndex], format, de::SharedPtr<bool>(new bool)};
+                               const CaseDefinition caseDef = {opTypeIndex, stages[stageIndex], format, de::SharedPtr<bool>(new bool), DE_FALSE};
                                if (opTypeIndex < OPTYPE_LAST_NON_ARB)
                                {
                                        addFunctionCaseWithPrograms(framebufferGroup.get(),
@@ -842,7 +902,7 @@ tcu::TestCaseGroup* createSubgroupsVoteTests(tcu::TestContext& testCtx)
                                }
                        }
 
-                       const CaseDefinition caseDef = {opTypeIndex, VK_SHADER_STAGE_FRAGMENT_BIT, format, de::SharedPtr<bool>(new bool)};
+                       const CaseDefinition caseDef = {opTypeIndex, VK_SHADER_STAGE_FRAGMENT_BIT, format, de::SharedPtr<bool>(new bool), DE_FALSE};
                        if (opTypeIndex < OPTYPE_LAST_NON_ARB)
                        {
                                addFunctionCaseWithPrograms(fragHelperGroup.get(),
index 5e4b526..56566d2 100644 (file)
@@ -508168,9 +508168,13 @@ dEQP-VK.multiview.renderpass2.index.tesellation_shader.max_multi_view_view_count
 dEQP-VK.subgroups.builtin_var.graphics.subgroupsize
 dEQP-VK.subgroups.builtin_var.graphics.subgroupinvocationid
 dEQP-VK.subgroups.builtin_var.compute.subgroupsize_compute
+dEQP-VK.subgroups.builtin_var.compute.subgroupsize_compute_requiredsubgroupsize
 dEQP-VK.subgroups.builtin_var.compute.subgroupinvocationid_compute
+dEQP-VK.subgroups.builtin_var.compute.subgroupinvocationid_compute_requiredsubgroupsize
 dEQP-VK.subgroups.builtin_var.compute.numsubgroups
+dEQP-VK.subgroups.builtin_var.compute.numsubgroups_requiredsubgroupsize
 dEQP-VK.subgroups.builtin_var.compute.subgroupid
+dEQP-VK.subgroups.builtin_var.compute.subgroupid_requiredsubgroupsize
 dEQP-VK.subgroups.builtin_var.framebuffer.subgroupsize_vertex
 dEQP-VK.subgroups.builtin_var.framebuffer.subgroupsize_tess_eval
 dEQP-VK.subgroups.builtin_var.framebuffer.subgroupsize_tess_control
@@ -508185,10 +508189,15 @@ dEQP-VK.subgroups.builtin_mask_var.graphics.subgroupgtmask
 dEQP-VK.subgroups.builtin_mask_var.graphics.subgrouplemask
 dEQP-VK.subgroups.builtin_mask_var.graphics.subgroupltmask
 dEQP-VK.subgroups.builtin_mask_var.compute.subgroupeqmask
+dEQP-VK.subgroups.builtin_mask_var.compute.subgroupeqmask_requiredsubgroupsize
 dEQP-VK.subgroups.builtin_mask_var.compute.subgroupgemask
+dEQP-VK.subgroups.builtin_mask_var.compute.subgroupgemask_requiredsubgroupsize
 dEQP-VK.subgroups.builtin_mask_var.compute.subgroupgtmask
+dEQP-VK.subgroups.builtin_mask_var.compute.subgroupgtmask_requiredsubgroupsize
 dEQP-VK.subgroups.builtin_mask_var.compute.subgrouplemask
+dEQP-VK.subgroups.builtin_mask_var.compute.subgrouplemask_requiredsubgroupsize
 dEQP-VK.subgroups.builtin_mask_var.compute.subgroupltmask
+dEQP-VK.subgroups.builtin_mask_var.compute.subgroupltmask_requiredsubgroupsize
 dEQP-VK.subgroups.builtin_mask_var.framebuffer.subgroupeqmask_vertex
 dEQP-VK.subgroups.builtin_mask_var.framebuffer.subgroupeqmask_tess_eval
 dEQP-VK.subgroups.builtin_mask_var.framebuffer.subgroupeqmask_tess_control
@@ -508215,11 +508224,17 @@ dEQP-VK.subgroups.basic.graphics.subgroupmemorybarrier
 dEQP-VK.subgroups.basic.graphics.subgroupmemorybarrierbuffer
 dEQP-VK.subgroups.basic.graphics.subgroupmemorybarrierimage
 dEQP-VK.subgroups.basic.compute.subgroupelect
+dEQP-VK.subgroups.basic.compute.subgroupelect_requiredsubgroupsize
 dEQP-VK.subgroups.basic.compute.subgroupbarrier
+dEQP-VK.subgroups.basic.compute.subgroupbarrier_requiredsubgroupsize
 dEQP-VK.subgroups.basic.compute.subgroupmemorybarrier
+dEQP-VK.subgroups.basic.compute.subgroupmemorybarrier_requiredsubgroupsize
 dEQP-VK.subgroups.basic.compute.subgroupmemorybarrierbuffer
+dEQP-VK.subgroups.basic.compute.subgroupmemorybarrierbuffer_requiredsubgroupsize
 dEQP-VK.subgroups.basic.compute.subgroupmemorybarriershared
+dEQP-VK.subgroups.basic.compute.subgroupmemorybarriershared_requiredsubgroupsize
 dEQP-VK.subgroups.basic.compute.subgroupmemorybarrierimage
+dEQP-VK.subgroups.basic.compute.subgroupmemorybarrierimage_requiredsubgroupsize
 dEQP-VK.subgroups.basic.framebuffer.subgroupelect_vertex
 dEQP-VK.subgroups.basic.framebuffer.subgroupelect_tess_eval
 dEQP-VK.subgroups.basic.framebuffer.subgroupelect_tess_control
@@ -508295,55 +508310,105 @@ dEQP-VK.subgroups.vote.graphics.subgroupallequal_bvec2
 dEQP-VK.subgroups.vote.graphics.subgroupallequal_bvec3
 dEQP-VK.subgroups.vote.graphics.subgroupallequal_bvec4
 dEQP-VK.subgroups.vote.compute.subgroupallequal_int8_t
+dEQP-VK.subgroups.vote.compute.subgroupallequal_int8_t_requiredsubgroupsize
 dEQP-VK.subgroups.vote.compute.subgroupallequal_i8vec2
+dEQP-VK.subgroups.vote.compute.subgroupallequal_i8vec2_requiredsubgroupsize
 dEQP-VK.subgroups.vote.compute.subgroupallequal_i8vec3
+dEQP-VK.subgroups.vote.compute.subgroupallequal_i8vec3_requiredsubgroupsize
 dEQP-VK.subgroups.vote.compute.subgroupallequal_i8vec4
+dEQP-VK.subgroups.vote.compute.subgroupallequal_i8vec4_requiredsubgroupsize
 dEQP-VK.subgroups.vote.compute.subgroupallequal_uint8_t
+dEQP-VK.subgroups.vote.compute.subgroupallequal_uint8_t_requiredsubgroupsize
 dEQP-VK.subgroups.vote.compute.subgroupallequal_u8vec2
+dEQP-VK.subgroups.vote.compute.subgroupallequal_u8vec2_requiredsubgroupsize
 dEQP-VK.subgroups.vote.compute.subgroupallequal_u8vec3
+dEQP-VK.subgroups.vote.compute.subgroupallequal_u8vec3_requiredsubgroupsize
 dEQP-VK.subgroups.vote.compute.subgroupallequal_u8vec4
+dEQP-VK.subgroups.vote.compute.subgroupallequal_u8vec4_requiredsubgroupsize
 dEQP-VK.subgroups.vote.compute.subgroupallequal_int16_t
+dEQP-VK.subgroups.vote.compute.subgroupallequal_int16_t_requiredsubgroupsize
 dEQP-VK.subgroups.vote.compute.subgroupallequal_i16vec2
+dEQP-VK.subgroups.vote.compute.subgroupallequal_i16vec2_requiredsubgroupsize
 dEQP-VK.subgroups.vote.compute.subgroupallequal_i16vec3
+dEQP-VK.subgroups.vote.compute.subgroupallequal_i16vec3_requiredsubgroupsize
 dEQP-VK.subgroups.vote.compute.subgroupallequal_i16vec4
+dEQP-VK.subgroups.vote.compute.subgroupallequal_i16vec4_requiredsubgroupsize
 dEQP-VK.subgroups.vote.compute.subgroupallequal_uint16_t
+dEQP-VK.subgroups.vote.compute.subgroupallequal_uint16_t_requiredsubgroupsize
 dEQP-VK.subgroups.vote.compute.subgroupallequal_u16vec2
+dEQP-VK.subgroups.vote.compute.subgroupallequal_u16vec2_requiredsubgroupsize
 dEQP-VK.subgroups.vote.compute.subgroupallequal_u16vec3
+dEQP-VK.subgroups.vote.compute.subgroupallequal_u16vec3_requiredsubgroupsize
 dEQP-VK.subgroups.vote.compute.subgroupallequal_u16vec4
+dEQP-VK.subgroups.vote.compute.subgroupallequal_u16vec4_requiredsubgroupsize
 dEQP-VK.subgroups.vote.compute.subgroupallequal_int
+dEQP-VK.subgroups.vote.compute.subgroupallequal_int_requiredsubgroupsize
 dEQP-VK.subgroups.vote.compute.subgroupallequal_ivec2
+dEQP-VK.subgroups.vote.compute.subgroupallequal_ivec2_requiredsubgroupsize
 dEQP-VK.subgroups.vote.compute.subgroupallequal_ivec3
+dEQP-VK.subgroups.vote.compute.subgroupallequal_ivec3_requiredsubgroupsize
 dEQP-VK.subgroups.vote.compute.subgroupallequal_ivec4
+dEQP-VK.subgroups.vote.compute.subgroupallequal_ivec4_requiredsubgroupsize
 dEQP-VK.subgroups.vote.compute.subgroupall_uint
+dEQP-VK.subgroups.vote.compute.subgroupall_uint_requiredsubgroupsize
 dEQP-VK.subgroups.vote.compute.subgroupany_uint
+dEQP-VK.subgroups.vote.compute.subgroupany_uint_requiredsubgroupsize
 dEQP-VK.subgroups.vote.compute.subgroupallequal_uint
+dEQP-VK.subgroups.vote.compute.subgroupallequal_uint_requiredsubgroupsize
 dEQP-VK.subgroups.vote.compute.subgroupallequal_uvec2
+dEQP-VK.subgroups.vote.compute.subgroupallequal_uvec2_requiredsubgroupsize
 dEQP-VK.subgroups.vote.compute.subgroupallequal_uvec3
+dEQP-VK.subgroups.vote.compute.subgroupallequal_uvec3_requiredsubgroupsize
 dEQP-VK.subgroups.vote.compute.subgroupallequal_uvec4
+dEQP-VK.subgroups.vote.compute.subgroupallequal_uvec4_requiredsubgroupsize
 dEQP-VK.subgroups.vote.compute.subgroupallequal_int64_t
+dEQP-VK.subgroups.vote.compute.subgroupallequal_int64_t_requiredsubgroupsize
 dEQP-VK.subgroups.vote.compute.subgroupallequal_i64vec2
+dEQP-VK.subgroups.vote.compute.subgroupallequal_i64vec2_requiredsubgroupsize
 dEQP-VK.subgroups.vote.compute.subgroupallequal_i64vec3
+dEQP-VK.subgroups.vote.compute.subgroupallequal_i64vec3_requiredsubgroupsize
 dEQP-VK.subgroups.vote.compute.subgroupallequal_i64vec4
+dEQP-VK.subgroups.vote.compute.subgroupallequal_i64vec4_requiredsubgroupsize
 dEQP-VK.subgroups.vote.compute.subgroupallequal_uint64_t
+dEQP-VK.subgroups.vote.compute.subgroupallequal_uint64_t_requiredsubgroupsize
 dEQP-VK.subgroups.vote.compute.subgroupallequal_u64vec2
+dEQP-VK.subgroups.vote.compute.subgroupallequal_u64vec2_requiredsubgroupsize
 dEQP-VK.subgroups.vote.compute.subgroupallequal_u64vec3
+dEQP-VK.subgroups.vote.compute.subgroupallequal_u64vec3_requiredsubgroupsize
 dEQP-VK.subgroups.vote.compute.subgroupallequal_u64vec4
+dEQP-VK.subgroups.vote.compute.subgroupallequal_u64vec4_requiredsubgroupsize
 dEQP-VK.subgroups.vote.compute.subgroupallequal_float16_t
+dEQP-VK.subgroups.vote.compute.subgroupallequal_float16_t_requiredsubgroupsize
 dEQP-VK.subgroups.vote.compute.subgroupallequal_f16vec2
+dEQP-VK.subgroups.vote.compute.subgroupallequal_f16vec2_requiredsubgroupsize
 dEQP-VK.subgroups.vote.compute.subgroupallequal_f16vec3
+dEQP-VK.subgroups.vote.compute.subgroupallequal_f16vec3_requiredsubgroupsize
 dEQP-VK.subgroups.vote.compute.subgroupallequal_f16vec4
+dEQP-VK.subgroups.vote.compute.subgroupallequal_f16vec4_requiredsubgroupsize
 dEQP-VK.subgroups.vote.compute.subgroupallequal_float
+dEQP-VK.subgroups.vote.compute.subgroupallequal_float_requiredsubgroupsize
 dEQP-VK.subgroups.vote.compute.subgroupallequal_vec2
+dEQP-VK.subgroups.vote.compute.subgroupallequal_vec2_requiredsubgroupsize
 dEQP-VK.subgroups.vote.compute.subgroupallequal_vec3
+dEQP-VK.subgroups.vote.compute.subgroupallequal_vec3_requiredsubgroupsize
 dEQP-VK.subgroups.vote.compute.subgroupallequal_vec4
+dEQP-VK.subgroups.vote.compute.subgroupallequal_vec4_requiredsubgroupsize
 dEQP-VK.subgroups.vote.compute.subgroupallequal_double
+dEQP-VK.subgroups.vote.compute.subgroupallequal_double_requiredsubgroupsize
 dEQP-VK.subgroups.vote.compute.subgroupallequal_dvec2
+dEQP-VK.subgroups.vote.compute.subgroupallequal_dvec2_requiredsubgroupsize
 dEQP-VK.subgroups.vote.compute.subgroupallequal_dvec3
+dEQP-VK.subgroups.vote.compute.subgroupallequal_dvec3_requiredsubgroupsize
 dEQP-VK.subgroups.vote.compute.subgroupallequal_dvec4
+dEQP-VK.subgroups.vote.compute.subgroupallequal_dvec4_requiredsubgroupsize
 dEQP-VK.subgroups.vote.compute.subgroupallequal_bool
+dEQP-VK.subgroups.vote.compute.subgroupallequal_bool_requiredsubgroupsize
 dEQP-VK.subgroups.vote.compute.subgroupallequal_bvec2
+dEQP-VK.subgroups.vote.compute.subgroupallequal_bvec2_requiredsubgroupsize
 dEQP-VK.subgroups.vote.compute.subgroupallequal_bvec3
+dEQP-VK.subgroups.vote.compute.subgroupallequal_bvec3_requiredsubgroupsize
 dEQP-VK.subgroups.vote.compute.subgroupallequal_bvec4
+dEQP-VK.subgroups.vote.compute.subgroupallequal_bvec4_requiredsubgroupsize
 dEQP-VK.subgroups.vote.framebuffer.subgroupallequal_int8_t_vertex
 dEQP-VK.subgroups.vote.framebuffer.subgroupallequal_int8_t_tess_eval
 dEQP-VK.subgroups.vote.framebuffer.subgroupallequal_int8_t_tess_control
@@ -508598,8 +508663,11 @@ dEQP-VK.subgroups.vote.ext_shader_subgroup_vote.graphics.allinvocationsarb_uint
 dEQP-VK.subgroups.vote.ext_shader_subgroup_vote.graphics.anyinvocationarb_uint
 dEQP-VK.subgroups.vote.ext_shader_subgroup_vote.graphics.allinvocationsequalarb_bool
 dEQP-VK.subgroups.vote.ext_shader_subgroup_vote.compute.allinvocationsarb_uint
+dEQP-VK.subgroups.vote.ext_shader_subgroup_vote.compute.allinvocationsarb_uint_requiredsubgroupsize
 dEQP-VK.subgroups.vote.ext_shader_subgroup_vote.compute.anyinvocationarb_uint
+dEQP-VK.subgroups.vote.ext_shader_subgroup_vote.compute.anyinvocationarb_uint_requiredsubgroupsize
 dEQP-VK.subgroups.vote.ext_shader_subgroup_vote.compute.allinvocationsequalarb_bool
+dEQP-VK.subgroups.vote.ext_shader_subgroup_vote.compute.allinvocationsequalarb_bool_requiredsubgroupsize
 dEQP-VK.subgroups.vote.ext_shader_subgroup_vote.framebuffer.allinvocationsarb_uint_vertex
 dEQP-VK.subgroups.vote.ext_shader_subgroup_vote.framebuffer.allinvocationsarb_uint_tess_eval
 dEQP-VK.subgroups.vote.ext_shader_subgroup_vote.framebuffer.allinvocationsarb_uint_tess_control
@@ -508617,12 +508685,14 @@ dEQP-VK.subgroups.vote.ext_shader_subgroup_vote.frag_helper.anyinvocationarb_uin
 dEQP-VK.subgroups.vote.ext_shader_subgroup_vote.frag_helper.allinvocationsequalarb_bool_fragment
 dEQP-VK.subgroups.ballot.graphics.graphic
 dEQP-VK.subgroups.ballot.compute.compute
+dEQP-VK.subgroups.ballot.compute.compute_requiredsubgroupsize
 dEQP-VK.subgroups.ballot.framebuffer.tess_eval
 dEQP-VK.subgroups.ballot.framebuffer.tess_control
 dEQP-VK.subgroups.ballot.framebuffer.geometry
 dEQP-VK.subgroups.ballot.framebuffer.vertex
 dEQP-VK.subgroups.ballot.ext_shader_subgroup_ballot.graphics.graphic
 dEQP-VK.subgroups.ballot.ext_shader_subgroup_ballot.compute.compute
+dEQP-VK.subgroups.ballot.ext_shader_subgroup_ballot.compute.compute_requiredsubgroupsize
 dEQP-VK.subgroups.ballot.ext_shader_subgroup_ballot.framebuffer.tess_eval
 dEQP-VK.subgroups.ballot.ext_shader_subgroup_ballot.framebuffer.tess_control
 dEQP-VK.subgroups.ballot.ext_shader_subgroup_ballot.framebuffer.geometry
@@ -508772,149 +508842,293 @@ dEQP-VK.subgroups.ballot_broadcast.graphics.subgroupbroadcast_bvec4
 dEQP-VK.subgroups.ballot_broadcast.graphics.subgroupbroadcast_nonconst_bvec4
 dEQP-VK.subgroups.ballot_broadcast.graphics.subgroupbroadcastfirst_bvec4
 dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_int8_t
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_int8_t_requiredsubgroupsize
 dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_nonconst_int8_t
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_nonconst_int8_t_requiredsubgroupsize
 dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcastfirst_int8_t
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcastfirst_int8_t_requiredsubgroupsize
 dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_i8vec2
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_i8vec2_requiredsubgroupsize
 dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_nonconst_i8vec2
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_nonconst_i8vec2_requiredsubgroupsize
 dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcastfirst_i8vec2
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcastfirst_i8vec2_requiredsubgroupsize
 dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_i8vec3
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_i8vec3_requiredsubgroupsize
 dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_nonconst_i8vec3
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_nonconst_i8vec3_requiredsubgroupsize
 dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcastfirst_i8vec3
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcastfirst_i8vec3_requiredsubgroupsize
 dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_i8vec4
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_i8vec4_requiredsubgroupsize
 dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_nonconst_i8vec4
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_nonconst_i8vec4_requiredsubgroupsize
 dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcastfirst_i8vec4
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcastfirst_i8vec4_requiredsubgroupsize
 dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_uint8_t
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_uint8_t_requiredsubgroupsize
 dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_nonconst_uint8_t
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_nonconst_uint8_t_requiredsubgroupsize
 dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcastfirst_uint8_t
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcastfirst_uint8_t_requiredsubgroupsize
 dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_u8vec2
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_u8vec2_requiredsubgroupsize
 dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_nonconst_u8vec2
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_nonconst_u8vec2_requiredsubgroupsize
 dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcastfirst_u8vec2
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcastfirst_u8vec2_requiredsubgroupsize
 dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_u8vec3
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_u8vec3_requiredsubgroupsize
 dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_nonconst_u8vec3
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_nonconst_u8vec3_requiredsubgroupsize
 dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcastfirst_u8vec3
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcastfirst_u8vec3_requiredsubgroupsize
 dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_u8vec4
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_u8vec4_requiredsubgroupsize
 dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_nonconst_u8vec4
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_nonconst_u8vec4_requiredsubgroupsize
 dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcastfirst_u8vec4
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcastfirst_u8vec4_requiredsubgroupsize
 dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_int16_t
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_int16_t_requiredsubgroupsize
 dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_nonconst_int16_t
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_nonconst_int16_t_requiredsubgroupsize
 dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcastfirst_int16_t
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcastfirst_int16_t_requiredsubgroupsize
 dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_i16vec2
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_i16vec2_requiredsubgroupsize
 dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_nonconst_i16vec2
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_nonconst_i16vec2_requiredsubgroupsize
 dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcastfirst_i16vec2
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcastfirst_i16vec2_requiredsubgroupsize
 dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_i16vec3
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_i16vec3_requiredsubgroupsize
 dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_nonconst_i16vec3
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_nonconst_i16vec3_requiredsubgroupsize
 dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcastfirst_i16vec3
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcastfirst_i16vec3_requiredsubgroupsize
 dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_i16vec4
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_i16vec4_requiredsubgroupsize
 dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_nonconst_i16vec4
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_nonconst_i16vec4_requiredsubgroupsize
 dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcastfirst_i16vec4
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcastfirst_i16vec4_requiredsubgroupsize
 dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_uint16_t
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_uint16_t_requiredsubgroupsize
 dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_nonconst_uint16_t
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_nonconst_uint16_t_requiredsubgroupsize
 dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcastfirst_uint16_t
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcastfirst_uint16_t_requiredsubgroupsize
 dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_u16vec2
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_u16vec2_requiredsubgroupsize
 dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_nonconst_u16vec2
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_nonconst_u16vec2_requiredsubgroupsize
 dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcastfirst_u16vec2
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcastfirst_u16vec2_requiredsubgroupsize
 dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_u16vec3
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_u16vec3_requiredsubgroupsize
 dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_nonconst_u16vec3
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_nonconst_u16vec3_requiredsubgroupsize
 dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcastfirst_u16vec3
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcastfirst_u16vec3_requiredsubgroupsize
 dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_u16vec4
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_u16vec4_requiredsubgroupsize
 dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_nonconst_u16vec4
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_nonconst_u16vec4_requiredsubgroupsize
 dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcastfirst_u16vec4
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcastfirst_u16vec4_requiredsubgroupsize
 dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_int
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_int_requiredsubgroupsize
 dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_nonconst_int
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_nonconst_int_requiredsubgroupsize
 dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcastfirst_int
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcastfirst_int_requiredsubgroupsize
 dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_ivec2
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_ivec2_requiredsubgroupsize
 dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_nonconst_ivec2
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_nonconst_ivec2_requiredsubgroupsize
 dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcastfirst_ivec2
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcastfirst_ivec2_requiredsubgroupsize
 dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_ivec3
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_ivec3_requiredsubgroupsize
 dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_nonconst_ivec3
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_nonconst_ivec3_requiredsubgroupsize
 dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcastfirst_ivec3
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcastfirst_ivec3_requiredsubgroupsize
 dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_ivec4
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_ivec4_requiredsubgroupsize
 dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_nonconst_ivec4
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_nonconst_ivec4_requiredsubgroupsize
 dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcastfirst_ivec4
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcastfirst_ivec4_requiredsubgroupsize
 dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_uint
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_uint_requiredsubgroupsize
 dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_nonconst_uint
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_nonconst_uint_requiredsubgroupsize
 dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcastfirst_uint
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcastfirst_uint_requiredsubgroupsize
 dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_uvec2
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_uvec2_requiredsubgroupsize
 dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_nonconst_uvec2
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_nonconst_uvec2_requiredsubgroupsize
 dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcastfirst_uvec2
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcastfirst_uvec2_requiredsubgroupsize
 dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_uvec3
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_uvec3_requiredsubgroupsize
 dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_nonconst_uvec3
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_nonconst_uvec3_requiredsubgroupsize
 dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcastfirst_uvec3
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcastfirst_uvec3_requiredsubgroupsize
 dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_uvec4
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_uvec4_requiredsubgroupsize
 dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_nonconst_uvec4
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_nonconst_uvec4_requiredsubgroupsize
 dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcastfirst_uvec4
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcastfirst_uvec4_requiredsubgroupsize
 dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_int64_t
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_int64_t_requiredsubgroupsize
 dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_nonconst_int64_t
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_nonconst_int64_t_requiredsubgroupsize
 dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcastfirst_int64_t
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcastfirst_int64_t_requiredsubgroupsize
 dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_i64vec2
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_i64vec2_requiredsubgroupsize
 dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_nonconst_i64vec2
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_nonconst_i64vec2_requiredsubgroupsize
 dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcastfirst_i64vec2
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcastfirst_i64vec2_requiredsubgroupsize
 dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_i64vec3
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_i64vec3_requiredsubgroupsize
 dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_nonconst_i64vec3
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_nonconst_i64vec3_requiredsubgroupsize
 dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcastfirst_i64vec3
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcastfirst_i64vec3_requiredsubgroupsize
 dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_i64vec4
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_i64vec4_requiredsubgroupsize
 dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_nonconst_i64vec4
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_nonconst_i64vec4_requiredsubgroupsize
 dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcastfirst_i64vec4
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcastfirst_i64vec4_requiredsubgroupsize
 dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_uint64_t
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_uint64_t_requiredsubgroupsize
 dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_nonconst_uint64_t
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_nonconst_uint64_t_requiredsubgroupsize
 dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcastfirst_uint64_t
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcastfirst_uint64_t_requiredsubgroupsize
 dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_u64vec2
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_u64vec2_requiredsubgroupsize
 dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_nonconst_u64vec2
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_nonconst_u64vec2_requiredsubgroupsize
 dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcastfirst_u64vec2
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcastfirst_u64vec2_requiredsubgroupsize
 dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_u64vec3
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_u64vec3_requiredsubgroupsize
 dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_nonconst_u64vec3
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_nonconst_u64vec3_requiredsubgroupsize
 dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcastfirst_u64vec3
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcastfirst_u64vec3_requiredsubgroupsize
 dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_u64vec4
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_u64vec4_requiredsubgroupsize
 dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_nonconst_u64vec4
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_nonconst_u64vec4_requiredsubgroupsize
 dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcastfirst_u64vec4
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcastfirst_u64vec4_requiredsubgroupsize
 dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_float16_t
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_float16_t_requiredsubgroupsize
 dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_nonconst_float16_t
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_nonconst_float16_t_requiredsubgroupsize
 dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcastfirst_float16_t
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcastfirst_float16_t_requiredsubgroupsize
 dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_f16vec2
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_f16vec2_requiredsubgroupsize
 dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_nonconst_f16vec2
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_nonconst_f16vec2_requiredsubgroupsize
 dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcastfirst_f16vec2
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcastfirst_f16vec2_requiredsubgroupsize
 dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_f16vec3
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_f16vec3_requiredsubgroupsize
 dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_nonconst_f16vec3
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_nonconst_f16vec3_requiredsubgroupsize
 dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcastfirst_f16vec3
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcastfirst_f16vec3_requiredsubgroupsize
 dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_f16vec4
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_f16vec4_requiredsubgroupsize
 dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_nonconst_f16vec4
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_nonconst_f16vec4_requiredsubgroupsize
 dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcastfirst_f16vec4
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcastfirst_f16vec4_requiredsubgroupsize
 dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_float
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_float_requiredsubgroupsize
 dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_nonconst_float
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_nonconst_float_requiredsubgroupsize
 dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcastfirst_float
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcastfirst_float_requiredsubgroupsize
 dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_vec2
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_vec2_requiredsubgroupsize
 dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_nonconst_vec2
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_nonconst_vec2_requiredsubgroupsize
 dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcastfirst_vec2
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcastfirst_vec2_requiredsubgroupsize
 dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_vec3
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_vec3_requiredsubgroupsize
 dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_nonconst_vec3
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_nonconst_vec3_requiredsubgroupsize
 dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcastfirst_vec3
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcastfirst_vec3_requiredsubgroupsize
 dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_vec4
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_vec4_requiredsubgroupsize
 dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_nonconst_vec4
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_nonconst_vec4_requiredsubgroupsize
 dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcastfirst_vec4
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcastfirst_vec4_requiredsubgroupsize
 dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_double
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_double_requiredsubgroupsize
 dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_nonconst_double
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_nonconst_double_requiredsubgroupsize
 dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcastfirst_double
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcastfirst_double_requiredsubgroupsize
 dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_dvec2
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_dvec2_requiredsubgroupsize
 dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_nonconst_dvec2
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_nonconst_dvec2_requiredsubgroupsize
 dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcastfirst_dvec2
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcastfirst_dvec2_requiredsubgroupsize
 dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_dvec3
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_dvec3_requiredsubgroupsize
 dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_nonconst_dvec3
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_nonconst_dvec3_requiredsubgroupsize
 dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcastfirst_dvec3
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcastfirst_dvec3_requiredsubgroupsize
 dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_dvec4
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_dvec4_requiredsubgroupsize
 dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_nonconst_dvec4
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_nonconst_dvec4_requiredsubgroupsize
 dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcastfirst_dvec4
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcastfirst_dvec4_requiredsubgroupsize
 dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_bool
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_bool_requiredsubgroupsize
 dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_nonconst_bool
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_nonconst_bool_requiredsubgroupsize
 dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcastfirst_bool
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcastfirst_bool_requiredsubgroupsize
 dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_bvec2
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_bvec2_requiredsubgroupsize
 dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_nonconst_bvec2
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_nonconst_bvec2_requiredsubgroupsize
 dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcastfirst_bvec2
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcastfirst_bvec2_requiredsubgroupsize
 dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_bvec3
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_bvec3_requiredsubgroupsize
 dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_nonconst_bvec3
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_nonconst_bvec3_requiredsubgroupsize
 dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcastfirst_bvec3
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcastfirst_bvec3_requiredsubgroupsize
 dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_bvec4
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_bvec4_requiredsubgroupsize
 dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_nonconst_bvec4
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_nonconst_bvec4_requiredsubgroupsize
 dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcastfirst_bvec4
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcastfirst_bvec4_requiredsubgroupsize
 dEQP-VK.subgroups.ballot_broadcast.framebuffer.subgroupbroadcast_int8_tvertex
 dEQP-VK.subgroups.ballot_broadcast.framebuffer.subgroupbroadcast_int8_ttess_eval
 dEQP-VK.subgroups.ballot_broadcast.framebuffer.subgroupbroadcast_int8_ttess_control
@@ -509501,14 +509715,23 @@ dEQP-VK.subgroups.ballot_broadcast.ext_shader_subgroup_ballot.graphics.subgroupb
 dEQP-VK.subgroups.ballot_broadcast.ext_shader_subgroup_ballot.graphics.subgroupbroadcast_nonconst_float
 dEQP-VK.subgroups.ballot_broadcast.ext_shader_subgroup_ballot.graphics.subgroupbroadcastfirst_float
 dEQP-VK.subgroups.ballot_broadcast.ext_shader_subgroup_ballot.compute.subgroupbroadcast_int
+dEQP-VK.subgroups.ballot_broadcast.ext_shader_subgroup_ballot.compute.subgroupbroadcast_int_requiredsubgroupsize
 dEQP-VK.subgroups.ballot_broadcast.ext_shader_subgroup_ballot.compute.subgroupbroadcast_nonconst_int
+dEQP-VK.subgroups.ballot_broadcast.ext_shader_subgroup_ballot.compute.subgroupbroadcast_nonconst_int_requiredsubgroupsize
 dEQP-VK.subgroups.ballot_broadcast.ext_shader_subgroup_ballot.compute.subgroupbroadcastfirst_int
+dEQP-VK.subgroups.ballot_broadcast.ext_shader_subgroup_ballot.compute.subgroupbroadcastfirst_int_requiredsubgroupsize
 dEQP-VK.subgroups.ballot_broadcast.ext_shader_subgroup_ballot.compute.subgroupbroadcast_uint
+dEQP-VK.subgroups.ballot_broadcast.ext_shader_subgroup_ballot.compute.subgroupbroadcast_uint_requiredsubgroupsize
 dEQP-VK.subgroups.ballot_broadcast.ext_shader_subgroup_ballot.compute.subgroupbroadcast_nonconst_uint
+dEQP-VK.subgroups.ballot_broadcast.ext_shader_subgroup_ballot.compute.subgroupbroadcast_nonconst_uint_requiredsubgroupsize
 dEQP-VK.subgroups.ballot_broadcast.ext_shader_subgroup_ballot.compute.subgroupbroadcastfirst_uint
+dEQP-VK.subgroups.ballot_broadcast.ext_shader_subgroup_ballot.compute.subgroupbroadcastfirst_uint_requiredsubgroupsize
 dEQP-VK.subgroups.ballot_broadcast.ext_shader_subgroup_ballot.compute.subgroupbroadcast_float
+dEQP-VK.subgroups.ballot_broadcast.ext_shader_subgroup_ballot.compute.subgroupbroadcast_float_requiredsubgroupsize
 dEQP-VK.subgroups.ballot_broadcast.ext_shader_subgroup_ballot.compute.subgroupbroadcast_nonconst_float
+dEQP-VK.subgroups.ballot_broadcast.ext_shader_subgroup_ballot.compute.subgroupbroadcast_nonconst_float_requiredsubgroupsize
 dEQP-VK.subgroups.ballot_broadcast.ext_shader_subgroup_ballot.compute.subgroupbroadcastfirst_float
+dEQP-VK.subgroups.ballot_broadcast.ext_shader_subgroup_ballot.compute.subgroupbroadcastfirst_float_requiredsubgroupsize
 dEQP-VK.subgroups.ballot_broadcast.ext_shader_subgroup_ballot.framebuffer.subgroupbroadcast_intvertex
 dEQP-VK.subgroups.ballot_broadcast.ext_shader_subgroup_ballot.framebuffer.subgroupbroadcast_inttess_eval
 dEQP-VK.subgroups.ballot_broadcast.ext_shader_subgroup_ballot.framebuffer.subgroupbroadcast_inttess_control
@@ -509553,12 +509776,19 @@ dEQP-VK.subgroups.ballot_other.graphics.subgroupballotexclusivebitcount
 dEQP-VK.subgroups.ballot_other.graphics.subgroupballotfindlsb
 dEQP-VK.subgroups.ballot_other.graphics.subgroupballotfindmsb
 dEQP-VK.subgroups.ballot_other.compute.subgroupinverseballot
+dEQP-VK.subgroups.ballot_other.compute.subgroupinverseballot_requiredsubgroupSize
 dEQP-VK.subgroups.ballot_other.compute.subgroupballotbitextract
+dEQP-VK.subgroups.ballot_other.compute.subgroupballotbitextract_requiredsubgroupSize
 dEQP-VK.subgroups.ballot_other.compute.subgroupballotbitcount
+dEQP-VK.subgroups.ballot_other.compute.subgroupballotbitcount_requiredsubgroupSize
 dEQP-VK.subgroups.ballot_other.compute.subgroupballotinclusivebitcount
+dEQP-VK.subgroups.ballot_other.compute.subgroupballotinclusivebitcount_requiredsubgroupSize
 dEQP-VK.subgroups.ballot_other.compute.subgroupballotexclusivebitcount
+dEQP-VK.subgroups.ballot_other.compute.subgroupballotexclusivebitcount_requiredsubgroupSize
 dEQP-VK.subgroups.ballot_other.compute.subgroupballotfindlsb
+dEQP-VK.subgroups.ballot_other.compute.subgroupballotfindlsb_requiredsubgroupSize
 dEQP-VK.subgroups.ballot_other.compute.subgroupballotfindmsb
+dEQP-VK.subgroups.ballot_other.compute.subgroupballotfindmsb_requiredsubgroupSize
 dEQP-VK.subgroups.ballot_other.framebuffer.subgroupinverseballot_vertex
 dEQP-VK.subgroups.ballot_other.framebuffer.subgroupinverseballot_tess_eval
 dEQP-VK.subgroups.ballot_other.framebuffer.subgroupinverseballot_tess_control
@@ -510440,857 +510670,1709 @@ dEQP-VK.subgroups.arithmetic.graphics.subgroupexclusiveand_bvec4
 dEQP-VK.subgroups.arithmetic.graphics.subgroupexclusiveor_bvec4
 dEQP-VK.subgroups.arithmetic.graphics.subgroupexclusivexor_bvec4
 dEQP-VK.subgroups.arithmetic.compute.subgroupadd_int8_t
+dEQP-VK.subgroups.arithmetic.compute.subgroupadd_int8_t_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupmul_int8_t
+dEQP-VK.subgroups.arithmetic.compute.subgroupmul_int8_t_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupmin_int8_t
+dEQP-VK.subgroups.arithmetic.compute.subgroupmin_int8_t_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupmax_int8_t
+dEQP-VK.subgroups.arithmetic.compute.subgroupmax_int8_t_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupand_int8_t
+dEQP-VK.subgroups.arithmetic.compute.subgroupand_int8_t_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupor_int8_t
+dEQP-VK.subgroups.arithmetic.compute.subgroupor_int8_t_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupxor_int8_t
+dEQP-VK.subgroups.arithmetic.compute.subgroupxor_int8_t_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupinclusiveadd_int8_t
+dEQP-VK.subgroups.arithmetic.compute.subgroupinclusiveadd_int8_t_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivemul_int8_t
+dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivemul_int8_t_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivemin_int8_t
+dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivemin_int8_t_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivemax_int8_t
+dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivemax_int8_t_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupinclusiveand_int8_t
+dEQP-VK.subgroups.arithmetic.compute.subgroupinclusiveand_int8_t_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupinclusiveor_int8_t
+dEQP-VK.subgroups.arithmetic.compute.subgroupinclusiveor_int8_t_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivexor_int8_t
+dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivexor_int8_t_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupexclusiveadd_int8_t
+dEQP-VK.subgroups.arithmetic.compute.subgroupexclusiveadd_int8_t_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivemul_int8_t
+dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivemul_int8_t_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivemin_int8_t
+dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivemin_int8_t_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivemax_int8_t
+dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivemax_int8_t_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupexclusiveand_int8_t
+dEQP-VK.subgroups.arithmetic.compute.subgroupexclusiveand_int8_t_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupexclusiveor_int8_t
+dEQP-VK.subgroups.arithmetic.compute.subgroupexclusiveor_int8_t_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivexor_int8_t
+dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivexor_int8_t_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupadd_i8vec2
+dEQP-VK.subgroups.arithmetic.compute.subgroupadd_i8vec2_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupmul_i8vec2
+dEQP-VK.subgroups.arithmetic.compute.subgroupmul_i8vec2_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupmin_i8vec2
+dEQP-VK.subgroups.arithmetic.compute.subgroupmin_i8vec2_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupmax_i8vec2
+dEQP-VK.subgroups.arithmetic.compute.subgroupmax_i8vec2_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupand_i8vec2
+dEQP-VK.subgroups.arithmetic.compute.subgroupand_i8vec2_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupor_i8vec2
+dEQP-VK.subgroups.arithmetic.compute.subgroupor_i8vec2_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupxor_i8vec2
+dEQP-VK.subgroups.arithmetic.compute.subgroupxor_i8vec2_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupinclusiveadd_i8vec2
+dEQP-VK.subgroups.arithmetic.compute.subgroupinclusiveadd_i8vec2_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivemul_i8vec2
+dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivemul_i8vec2_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivemin_i8vec2
+dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivemin_i8vec2_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivemax_i8vec2
+dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivemax_i8vec2_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupinclusiveand_i8vec2
+dEQP-VK.subgroups.arithmetic.compute.subgroupinclusiveand_i8vec2_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupinclusiveor_i8vec2
+dEQP-VK.subgroups.arithmetic.compute.subgroupinclusiveor_i8vec2_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivexor_i8vec2
+dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivexor_i8vec2_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupexclusiveadd_i8vec2
+dEQP-VK.subgroups.arithmetic.compute.subgroupexclusiveadd_i8vec2_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivemul_i8vec2
+dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivemul_i8vec2_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivemin_i8vec2
+dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivemin_i8vec2_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivemax_i8vec2
+dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivemax_i8vec2_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupexclusiveand_i8vec2
+dEQP-VK.subgroups.arithmetic.compute.subgroupexclusiveand_i8vec2_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupexclusiveor_i8vec2
+dEQP-VK.subgroups.arithmetic.compute.subgroupexclusiveor_i8vec2_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivexor_i8vec2
+dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivexor_i8vec2_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupadd_i8vec3
+dEQP-VK.subgroups.arithmetic.compute.subgroupadd_i8vec3_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupmul_i8vec3
+dEQP-VK.subgroups.arithmetic.compute.subgroupmul_i8vec3_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupmin_i8vec3
+dEQP-VK.subgroups.arithmetic.compute.subgroupmin_i8vec3_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupmax_i8vec3
+dEQP-VK.subgroups.arithmetic.compute.subgroupmax_i8vec3_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupand_i8vec3
+dEQP-VK.subgroups.arithmetic.compute.subgroupand_i8vec3_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupor_i8vec3
+dEQP-VK.subgroups.arithmetic.compute.subgroupor_i8vec3_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupxor_i8vec3
+dEQP-VK.subgroups.arithmetic.compute.subgroupxor_i8vec3_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupinclusiveadd_i8vec3
+dEQP-VK.subgroups.arithmetic.compute.subgroupinclusiveadd_i8vec3_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivemul_i8vec3
+dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivemul_i8vec3_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivemin_i8vec3
+dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivemin_i8vec3_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivemax_i8vec3
+dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivemax_i8vec3_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupinclusiveand_i8vec3
+dEQP-VK.subgroups.arithmetic.compute.subgroupinclusiveand_i8vec3_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupinclusiveor_i8vec3
+dEQP-VK.subgroups.arithmetic.compute.subgroupinclusiveor_i8vec3_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivexor_i8vec3
+dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivexor_i8vec3_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupexclusiveadd_i8vec3
+dEQP-VK.subgroups.arithmetic.compute.subgroupexclusiveadd_i8vec3_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivemul_i8vec3
+dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivemul_i8vec3_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivemin_i8vec3
+dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivemin_i8vec3_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivemax_i8vec3
+dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivemax_i8vec3_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupexclusiveand_i8vec3
+dEQP-VK.subgroups.arithmetic.compute.subgroupexclusiveand_i8vec3_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupexclusiveor_i8vec3
+dEQP-VK.subgroups.arithmetic.compute.subgroupexclusiveor_i8vec3_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivexor_i8vec3
+dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivexor_i8vec3_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupadd_i8vec4
+dEQP-VK.subgroups.arithmetic.compute.subgroupadd_i8vec4_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupmul_i8vec4
+dEQP-VK.subgroups.arithmetic.compute.subgroupmul_i8vec4_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupmin_i8vec4
+dEQP-VK.subgroups.arithmetic.compute.subgroupmin_i8vec4_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupmax_i8vec4
+dEQP-VK.subgroups.arithmetic.compute.subgroupmax_i8vec4_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupand_i8vec4
+dEQP-VK.subgroups.arithmetic.compute.subgroupand_i8vec4_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupor_i8vec4
+dEQP-VK.subgroups.arithmetic.compute.subgroupor_i8vec4_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupxor_i8vec4
+dEQP-VK.subgroups.arithmetic.compute.subgroupxor_i8vec4_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupinclusiveadd_i8vec4
+dEQP-VK.subgroups.arithmetic.compute.subgroupinclusiveadd_i8vec4_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivemul_i8vec4
+dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivemul_i8vec4_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivemin_i8vec4
+dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivemin_i8vec4_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivemax_i8vec4
+dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivemax_i8vec4_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupinclusiveand_i8vec4
+dEQP-VK.subgroups.arithmetic.compute.subgroupinclusiveand_i8vec4_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupinclusiveor_i8vec4
+dEQP-VK.subgroups.arithmetic.compute.subgroupinclusiveor_i8vec4_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivexor_i8vec4
+dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivexor_i8vec4_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupexclusiveadd_i8vec4
+dEQP-VK.subgroups.arithmetic.compute.subgroupexclusiveadd_i8vec4_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivemul_i8vec4
+dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivemul_i8vec4_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivemin_i8vec4
+dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivemin_i8vec4_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivemax_i8vec4
+dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivemax_i8vec4_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupexclusiveand_i8vec4
+dEQP-VK.subgroups.arithmetic.compute.subgroupexclusiveand_i8vec4_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupexclusiveor_i8vec4
+dEQP-VK.subgroups.arithmetic.compute.subgroupexclusiveor_i8vec4_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivexor_i8vec4
+dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivexor_i8vec4_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupadd_uint8_t
+dEQP-VK.subgroups.arithmetic.compute.subgroupadd_uint8_t_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupmul_uint8_t
+dEQP-VK.subgroups.arithmetic.compute.subgroupmul_uint8_t_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupmin_uint8_t
+dEQP-VK.subgroups.arithmetic.compute.subgroupmin_uint8_t_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupmax_uint8_t
+dEQP-VK.subgroups.arithmetic.compute.subgroupmax_uint8_t_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupand_uint8_t
+dEQP-VK.subgroups.arithmetic.compute.subgroupand_uint8_t_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupor_uint8_t
+dEQP-VK.subgroups.arithmetic.compute.subgroupor_uint8_t_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupxor_uint8_t
+dEQP-VK.subgroups.arithmetic.compute.subgroupxor_uint8_t_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupinclusiveadd_uint8_t
+dEQP-VK.subgroups.arithmetic.compute.subgroupinclusiveadd_uint8_t_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivemul_uint8_t
+dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivemul_uint8_t_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivemin_uint8_t
+dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivemin_uint8_t_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivemax_uint8_t
+dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivemax_uint8_t_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupinclusiveand_uint8_t
+dEQP-VK.subgroups.arithmetic.compute.subgroupinclusiveand_uint8_t_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupinclusiveor_uint8_t
+dEQP-VK.subgroups.arithmetic.compute.subgroupinclusiveor_uint8_t_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivexor_uint8_t
+dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivexor_uint8_t_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupexclusiveadd_uint8_t
+dEQP-VK.subgroups.arithmetic.compute.subgroupexclusiveadd_uint8_t_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivemul_uint8_t
+dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivemul_uint8_t_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivemin_uint8_t
+dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivemin_uint8_t_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivemax_uint8_t
+dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivemax_uint8_t_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupexclusiveand_uint8_t
+dEQP-VK.subgroups.arithmetic.compute.subgroupexclusiveand_uint8_t_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupexclusiveor_uint8_t
+dEQP-VK.subgroups.arithmetic.compute.subgroupexclusiveor_uint8_t_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivexor_uint8_t
+dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivexor_uint8_t_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupadd_u8vec2
+dEQP-VK.subgroups.arithmetic.compute.subgroupadd_u8vec2_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupmul_u8vec2
+dEQP-VK.subgroups.arithmetic.compute.subgroupmul_u8vec2_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupmin_u8vec2
+dEQP-VK.subgroups.arithmetic.compute.subgroupmin_u8vec2_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupmax_u8vec2
+dEQP-VK.subgroups.arithmetic.compute.subgroupmax_u8vec2_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupand_u8vec2
+dEQP-VK.subgroups.arithmetic.compute.subgroupand_u8vec2_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupor_u8vec2
+dEQP-VK.subgroups.arithmetic.compute.subgroupor_u8vec2_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupxor_u8vec2
+dEQP-VK.subgroups.arithmetic.compute.subgroupxor_u8vec2_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupinclusiveadd_u8vec2
+dEQP-VK.subgroups.arithmetic.compute.subgroupinclusiveadd_u8vec2_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivemul_u8vec2
+dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivemul_u8vec2_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivemin_u8vec2
+dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivemin_u8vec2_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivemax_u8vec2
+dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivemax_u8vec2_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupinclusiveand_u8vec2
+dEQP-VK.subgroups.arithmetic.compute.subgroupinclusiveand_u8vec2_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupinclusiveor_u8vec2
+dEQP-VK.subgroups.arithmetic.compute.subgroupinclusiveor_u8vec2_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivexor_u8vec2
+dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivexor_u8vec2_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupexclusiveadd_u8vec2
+dEQP-VK.subgroups.arithmetic.compute.subgroupexclusiveadd_u8vec2_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivemul_u8vec2
+dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivemul_u8vec2_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivemin_u8vec2
+dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivemin_u8vec2_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivemax_u8vec2
+dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivemax_u8vec2_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupexclusiveand_u8vec2
+dEQP-VK.subgroups.arithmetic.compute.subgroupexclusiveand_u8vec2_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupexclusiveor_u8vec2
+dEQP-VK.subgroups.arithmetic.compute.subgroupexclusiveor_u8vec2_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivexor_u8vec2
+dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivexor_u8vec2_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupadd_u8vec3
+dEQP-VK.subgroups.arithmetic.compute.subgroupadd_u8vec3_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupmul_u8vec3
+dEQP-VK.subgroups.arithmetic.compute.subgroupmul_u8vec3_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupmin_u8vec3
+dEQP-VK.subgroups.arithmetic.compute.subgroupmin_u8vec3_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupmax_u8vec3
+dEQP-VK.subgroups.arithmetic.compute.subgroupmax_u8vec3_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupand_u8vec3
+dEQP-VK.subgroups.arithmetic.compute.subgroupand_u8vec3_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupor_u8vec3
+dEQP-VK.subgroups.arithmetic.compute.subgroupor_u8vec3_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupxor_u8vec3
+dEQP-VK.subgroups.arithmetic.compute.subgroupxor_u8vec3_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupinclusiveadd_u8vec3
+dEQP-VK.subgroups.arithmetic.compute.subgroupinclusiveadd_u8vec3_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivemul_u8vec3
+dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivemul_u8vec3_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivemin_u8vec3
+dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivemin_u8vec3_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivemax_u8vec3
+dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivemax_u8vec3_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupinclusiveand_u8vec3
+dEQP-VK.subgroups.arithmetic.compute.subgroupinclusiveand_u8vec3_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupinclusiveor_u8vec3
+dEQP-VK.subgroups.arithmetic.compute.subgroupinclusiveor_u8vec3_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivexor_u8vec3
+dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivexor_u8vec3_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupexclusiveadd_u8vec3
+dEQP-VK.subgroups.arithmetic.compute.subgroupexclusiveadd_u8vec3_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivemul_u8vec3
+dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivemul_u8vec3_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivemin_u8vec3
+dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivemin_u8vec3_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivemax_u8vec3
+dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivemax_u8vec3_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupexclusiveand_u8vec3
+dEQP-VK.subgroups.arithmetic.compute.subgroupexclusiveand_u8vec3_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupexclusiveor_u8vec3
+dEQP-VK.subgroups.arithmetic.compute.subgroupexclusiveor_u8vec3_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivexor_u8vec3
+dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivexor_u8vec3_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupadd_u8vec4
+dEQP-VK.subgroups.arithmetic.compute.subgroupadd_u8vec4_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupmul_u8vec4
+dEQP-VK.subgroups.arithmetic.compute.subgroupmul_u8vec4_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupmin_u8vec4
+dEQP-VK.subgroups.arithmetic.compute.subgroupmin_u8vec4_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupmax_u8vec4
+dEQP-VK.subgroups.arithmetic.compute.subgroupmax_u8vec4_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupand_u8vec4
+dEQP-VK.subgroups.arithmetic.compute.subgroupand_u8vec4_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupor_u8vec4
+dEQP-VK.subgroups.arithmetic.compute.subgroupor_u8vec4_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupxor_u8vec4
+dEQP-VK.subgroups.arithmetic.compute.subgroupxor_u8vec4_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupinclusiveadd_u8vec4
+dEQP-VK.subgroups.arithmetic.compute.subgroupinclusiveadd_u8vec4_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivemul_u8vec4
+dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivemul_u8vec4_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivemin_u8vec4
+dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivemin_u8vec4_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivemax_u8vec4
+dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivemax_u8vec4_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupinclusiveand_u8vec4
+dEQP-VK.subgroups.arithmetic.compute.subgroupinclusiveand_u8vec4_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupinclusiveor_u8vec4
+dEQP-VK.subgroups.arithmetic.compute.subgroupinclusiveor_u8vec4_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivexor_u8vec4
+dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivexor_u8vec4_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupexclusiveadd_u8vec4
+dEQP-VK.subgroups.arithmetic.compute.subgroupexclusiveadd_u8vec4_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivemul_u8vec4
+dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivemul_u8vec4_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivemin_u8vec4
+dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivemin_u8vec4_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivemax_u8vec4
+dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivemax_u8vec4_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupexclusiveand_u8vec4
+dEQP-VK.subgroups.arithmetic.compute.subgroupexclusiveand_u8vec4_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupexclusiveor_u8vec4
+dEQP-VK.subgroups.arithmetic.compute.subgroupexclusiveor_u8vec4_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivexor_u8vec4
+dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivexor_u8vec4_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupadd_int16_t
+dEQP-VK.subgroups.arithmetic.compute.subgroupadd_int16_t_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupmul_int16_t
+dEQP-VK.subgroups.arithmetic.compute.subgroupmul_int16_t_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupmin_int16_t
+dEQP-VK.subgroups.arithmetic.compute.subgroupmin_int16_t_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupmax_int16_t
+dEQP-VK.subgroups.arithmetic.compute.subgroupmax_int16_t_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupand_int16_t
+dEQP-VK.subgroups.arithmetic.compute.subgroupand_int16_t_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupor_int16_t
+dEQP-VK.subgroups.arithmetic.compute.subgroupor_int16_t_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupxor_int16_t
+dEQP-VK.subgroups.arithmetic.compute.subgroupxor_int16_t_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupinclusiveadd_int16_t
+dEQP-VK.subgroups.arithmetic.compute.subgroupinclusiveadd_int16_t_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivemul_int16_t
+dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivemul_int16_t_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivemin_int16_t
+dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivemin_int16_t_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivemax_int16_t
+dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivemax_int16_t_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupinclusiveand_int16_t
+dEQP-VK.subgroups.arithmetic.compute.subgroupinclusiveand_int16_t_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupinclusiveor_int16_t
+dEQP-VK.subgroups.arithmetic.compute.subgroupinclusiveor_int16_t_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivexor_int16_t
+dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivexor_int16_t_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupexclusiveadd_int16_t
+dEQP-VK.subgroups.arithmetic.compute.subgroupexclusiveadd_int16_t_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivemul_int16_t
+dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivemul_int16_t_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivemin_int16_t
+dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivemin_int16_t_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivemax_int16_t
+dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivemax_int16_t_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupexclusiveand_int16_t
+dEQP-VK.subgroups.arithmetic.compute.subgroupexclusiveand_int16_t_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupexclusiveor_int16_t
+dEQP-VK.subgroups.arithmetic.compute.subgroupexclusiveor_int16_t_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivexor_int16_t
+dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivexor_int16_t_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupadd_i16vec2
+dEQP-VK.subgroups.arithmetic.compute.subgroupadd_i16vec2_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupmul_i16vec2
+dEQP-VK.subgroups.arithmetic.compute.subgroupmul_i16vec2_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupmin_i16vec2
+dEQP-VK.subgroups.arithmetic.compute.subgroupmin_i16vec2_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupmax_i16vec2
+dEQP-VK.subgroups.arithmetic.compute.subgroupmax_i16vec2_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupand_i16vec2
+dEQP-VK.subgroups.arithmetic.compute.subgroupand_i16vec2_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupor_i16vec2
+dEQP-VK.subgroups.arithmetic.compute.subgroupor_i16vec2_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupxor_i16vec2
+dEQP-VK.subgroups.arithmetic.compute.subgroupxor_i16vec2_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupinclusiveadd_i16vec2
+dEQP-VK.subgroups.arithmetic.compute.subgroupinclusiveadd_i16vec2_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivemul_i16vec2
+dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivemul_i16vec2_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivemin_i16vec2
+dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivemin_i16vec2_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivemax_i16vec2
+dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivemax_i16vec2_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupinclusiveand_i16vec2
+dEQP-VK.subgroups.arithmetic.compute.subgroupinclusiveand_i16vec2_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupinclusiveor_i16vec2
+dEQP-VK.subgroups.arithmetic.compute.subgroupinclusiveor_i16vec2_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivexor_i16vec2
+dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivexor_i16vec2_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupexclusiveadd_i16vec2
+dEQP-VK.subgroups.arithmetic.compute.subgroupexclusiveadd_i16vec2_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivemul_i16vec2
+dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivemul_i16vec2_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivemin_i16vec2
+dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivemin_i16vec2_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivemax_i16vec2
+dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivemax_i16vec2_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupexclusiveand_i16vec2
+dEQP-VK.subgroups.arithmetic.compute.subgroupexclusiveand_i16vec2_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupexclusiveor_i16vec2
+dEQP-VK.subgroups.arithmetic.compute.subgroupexclusiveor_i16vec2_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivexor_i16vec2
+dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivexor_i16vec2_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupadd_i16vec3
+dEQP-VK.subgroups.arithmetic.compute.subgroupadd_i16vec3_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupmul_i16vec3
+dEQP-VK.subgroups.arithmetic.compute.subgroupmul_i16vec3_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupmin_i16vec3
+dEQP-VK.subgroups.arithmetic.compute.subgroupmin_i16vec3_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupmax_i16vec3
+dEQP-VK.subgroups.arithmetic.compute.subgroupmax_i16vec3_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupand_i16vec3
+dEQP-VK.subgroups.arithmetic.compute.subgroupand_i16vec3_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupor_i16vec3
+dEQP-VK.subgroups.arithmetic.compute.subgroupor_i16vec3_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupxor_i16vec3
+dEQP-VK.subgroups.arithmetic.compute.subgroupxor_i16vec3_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupinclusiveadd_i16vec3
+dEQP-VK.subgroups.arithmetic.compute.subgroupinclusiveadd_i16vec3_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivemul_i16vec3
+dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivemul_i16vec3_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivemin_i16vec3
+dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivemin_i16vec3_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivemax_i16vec3
+dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivemax_i16vec3_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupinclusiveand_i16vec3
+dEQP-VK.subgroups.arithmetic.compute.subgroupinclusiveand_i16vec3_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupinclusiveor_i16vec3
+dEQP-VK.subgroups.arithmetic.compute.subgroupinclusiveor_i16vec3_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivexor_i16vec3
+dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivexor_i16vec3_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupexclusiveadd_i16vec3
+dEQP-VK.subgroups.arithmetic.compute.subgroupexclusiveadd_i16vec3_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivemul_i16vec3
+dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivemul_i16vec3_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivemin_i16vec3
+dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivemin_i16vec3_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivemax_i16vec3
+dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivemax_i16vec3_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupexclusiveand_i16vec3
+dEQP-VK.subgroups.arithmetic.compute.subgroupexclusiveand_i16vec3_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupexclusiveor_i16vec3
+dEQP-VK.subgroups.arithmetic.compute.subgroupexclusiveor_i16vec3_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivexor_i16vec3
+dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivexor_i16vec3_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupadd_i16vec4
+dEQP-VK.subgroups.arithmetic.compute.subgroupadd_i16vec4_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupmul_i16vec4
+dEQP-VK.subgroups.arithmetic.compute.subgroupmul_i16vec4_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupmin_i16vec4
+dEQP-VK.subgroups.arithmetic.compute.subgroupmin_i16vec4_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupmax_i16vec4
+dEQP-VK.subgroups.arithmetic.compute.subgroupmax_i16vec4_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupand_i16vec4
+dEQP-VK.subgroups.arithmetic.compute.subgroupand_i16vec4_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupor_i16vec4
+dEQP-VK.subgroups.arithmetic.compute.subgroupor_i16vec4_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupxor_i16vec4
+dEQP-VK.subgroups.arithmetic.compute.subgroupxor_i16vec4_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupinclusiveadd_i16vec4
+dEQP-VK.subgroups.arithmetic.compute.subgroupinclusiveadd_i16vec4_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivemul_i16vec4
+dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivemul_i16vec4_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivemin_i16vec4
+dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivemin_i16vec4_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivemax_i16vec4
+dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivemax_i16vec4_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupinclusiveand_i16vec4
+dEQP-VK.subgroups.arithmetic.compute.subgroupinclusiveand_i16vec4_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupinclusiveor_i16vec4
+dEQP-VK.subgroups.arithmetic.compute.subgroupinclusiveor_i16vec4_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivexor_i16vec4
+dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivexor_i16vec4_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupexclusiveadd_i16vec4
+dEQP-VK.subgroups.arithmetic.compute.subgroupexclusiveadd_i16vec4_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivemul_i16vec4
+dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivemul_i16vec4_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivemin_i16vec4
+dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivemin_i16vec4_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivemax_i16vec4
+dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivemax_i16vec4_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupexclusiveand_i16vec4
+dEQP-VK.subgroups.arithmetic.compute.subgroupexclusiveand_i16vec4_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupexclusiveor_i16vec4
+dEQP-VK.subgroups.arithmetic.compute.subgroupexclusiveor_i16vec4_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivexor_i16vec4
+dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivexor_i16vec4_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupadd_uint16_t
+dEQP-VK.subgroups.arithmetic.compute.subgroupadd_uint16_t_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupmul_uint16_t
+dEQP-VK.subgroups.arithmetic.compute.subgroupmul_uint16_t_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupmin_uint16_t
+dEQP-VK.subgroups.arithmetic.compute.subgroupmin_uint16_t_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupmax_uint16_t
+dEQP-VK.subgroups.arithmetic.compute.subgroupmax_uint16_t_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupand_uint16_t
+dEQP-VK.subgroups.arithmetic.compute.subgroupand_uint16_t_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupor_uint16_t
+dEQP-VK.subgroups.arithmetic.compute.subgroupor_uint16_t_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupxor_uint16_t
+dEQP-VK.subgroups.arithmetic.compute.subgroupxor_uint16_t_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupinclusiveadd_uint16_t
+dEQP-VK.subgroups.arithmetic.compute.subgroupinclusiveadd_uint16_t_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivemul_uint16_t
+dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivemul_uint16_t_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivemin_uint16_t
+dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivemin_uint16_t_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivemax_uint16_t
+dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivemax_uint16_t_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupinclusiveand_uint16_t
+dEQP-VK.subgroups.arithmetic.compute.subgroupinclusiveand_uint16_t_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupinclusiveor_uint16_t
+dEQP-VK.subgroups.arithmetic.compute.subgroupinclusiveor_uint16_t_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivexor_uint16_t
+dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivexor_uint16_t_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupexclusiveadd_uint16_t
+dEQP-VK.subgroups.arithmetic.compute.subgroupexclusiveadd_uint16_t_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivemul_uint16_t
+dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivemul_uint16_t_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivemin_uint16_t
+dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivemin_uint16_t_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivemax_uint16_t
+dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivemax_uint16_t_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupexclusiveand_uint16_t
+dEQP-VK.subgroups.arithmetic.compute.subgroupexclusiveand_uint16_t_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupexclusiveor_uint16_t
+dEQP-VK.subgroups.arithmetic.compute.subgroupexclusiveor_uint16_t_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivexor_uint16_t
+dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivexor_uint16_t_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupadd_u16vec2
+dEQP-VK.subgroups.arithmetic.compute.subgroupadd_u16vec2_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupmul_u16vec2
+dEQP-VK.subgroups.arithmetic.compute.subgroupmul_u16vec2_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupmin_u16vec2
+dEQP-VK.subgroups.arithmetic.compute.subgroupmin_u16vec2_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupmax_u16vec2
+dEQP-VK.subgroups.arithmetic.compute.subgroupmax_u16vec2_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupand_u16vec2
+dEQP-VK.subgroups.arithmetic.compute.subgroupand_u16vec2_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupor_u16vec2
+dEQP-VK.subgroups.arithmetic.compute.subgroupor_u16vec2_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupxor_u16vec2
+dEQP-VK.subgroups.arithmetic.compute.subgroupxor_u16vec2_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupinclusiveadd_u16vec2
+dEQP-VK.subgroups.arithmetic.compute.subgroupinclusiveadd_u16vec2_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivemul_u16vec2
+dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivemul_u16vec2_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivemin_u16vec2
+dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivemin_u16vec2_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivemax_u16vec2
+dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivemax_u16vec2_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupinclusiveand_u16vec2
+dEQP-VK.subgroups.arithmetic.compute.subgroupinclusiveand_u16vec2_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupinclusiveor_u16vec2
+dEQP-VK.subgroups.arithmetic.compute.subgroupinclusiveor_u16vec2_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivexor_u16vec2
+dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivexor_u16vec2_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupexclusiveadd_u16vec2
+dEQP-VK.subgroups.arithmetic.compute.subgroupexclusiveadd_u16vec2_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivemul_u16vec2
+dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivemul_u16vec2_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivemin_u16vec2
+dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivemin_u16vec2_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivemax_u16vec2
+dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivemax_u16vec2_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupexclusiveand_u16vec2
+dEQP-VK.subgroups.arithmetic.compute.subgroupexclusiveand_u16vec2_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupexclusiveor_u16vec2
+dEQP-VK.subgroups.arithmetic.compute.subgroupexclusiveor_u16vec2_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivexor_u16vec2
+dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivexor_u16vec2_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupadd_u16vec3
+dEQP-VK.subgroups.arithmetic.compute.subgroupadd_u16vec3_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupmul_u16vec3
+dEQP-VK.subgroups.arithmetic.compute.subgroupmul_u16vec3_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupmin_u16vec3
+dEQP-VK.subgroups.arithmetic.compute.subgroupmin_u16vec3_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupmax_u16vec3
+dEQP-VK.subgroups.arithmetic.compute.subgroupmax_u16vec3_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupand_u16vec3
+dEQP-VK.subgroups.arithmetic.compute.subgroupand_u16vec3_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupor_u16vec3
+dEQP-VK.subgroups.arithmetic.compute.subgroupor_u16vec3_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupxor_u16vec3
+dEQP-VK.subgroups.arithmetic.compute.subgroupxor_u16vec3_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupinclusiveadd_u16vec3
+dEQP-VK.subgroups.arithmetic.compute.subgroupinclusiveadd_u16vec3_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivemul_u16vec3
+dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivemul_u16vec3_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivemin_u16vec3
+dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivemin_u16vec3_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivemax_u16vec3
+dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivemax_u16vec3_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupinclusiveand_u16vec3
+dEQP-VK.subgroups.arithmetic.compute.subgroupinclusiveand_u16vec3_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupinclusiveor_u16vec3
+dEQP-VK.subgroups.arithmetic.compute.subgroupinclusiveor_u16vec3_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivexor_u16vec3
+dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivexor_u16vec3_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupexclusiveadd_u16vec3
+dEQP-VK.subgroups.arithmetic.compute.subgroupexclusiveadd_u16vec3_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivemul_u16vec3
+dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivemul_u16vec3_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivemin_u16vec3
+dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivemin_u16vec3_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivemax_u16vec3
+dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivemax_u16vec3_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupexclusiveand_u16vec3
+dEQP-VK.subgroups.arithmetic.compute.subgroupexclusiveand_u16vec3_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupexclusiveor_u16vec3
+dEQP-VK.subgroups.arithmetic.compute.subgroupexclusiveor_u16vec3_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivexor_u16vec3
+dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivexor_u16vec3_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupadd_u16vec4
+dEQP-VK.subgroups.arithmetic.compute.subgroupadd_u16vec4_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupmul_u16vec4
+dEQP-VK.subgroups.arithmetic.compute.subgroupmul_u16vec4_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupmin_u16vec4
+dEQP-VK.subgroups.arithmetic.compute.subgroupmin_u16vec4_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupmax_u16vec4
+dEQP-VK.subgroups.arithmetic.compute.subgroupmax_u16vec4_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupand_u16vec4
+dEQP-VK.subgroups.arithmetic.compute.subgroupand_u16vec4_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupor_u16vec4
+dEQP-VK.subgroups.arithmetic.compute.subgroupor_u16vec4_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupxor_u16vec4
+dEQP-VK.subgroups.arithmetic.compute.subgroupxor_u16vec4_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupinclusiveadd_u16vec4
+dEQP-VK.subgroups.arithmetic.compute.subgroupinclusiveadd_u16vec4_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivemul_u16vec4
+dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivemul_u16vec4_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivemin_u16vec4
+dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivemin_u16vec4_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivemax_u16vec4
+dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivemax_u16vec4_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupinclusiveand_u16vec4
+dEQP-VK.subgroups.arithmetic.compute.subgroupinclusiveand_u16vec4_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupinclusiveor_u16vec4
+dEQP-VK.subgroups.arithmetic.compute.subgroupinclusiveor_u16vec4_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivexor_u16vec4
+dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivexor_u16vec4_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupexclusiveadd_u16vec4
+dEQP-VK.subgroups.arithmetic.compute.subgroupexclusiveadd_u16vec4_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivemul_u16vec4
+dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivemul_u16vec4_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivemin_u16vec4
+dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivemin_u16vec4_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivemax_u16vec4
+dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivemax_u16vec4_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupexclusiveand_u16vec4
+dEQP-VK.subgroups.arithmetic.compute.subgroupexclusiveand_u16vec4_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupexclusiveor_u16vec4
+dEQP-VK.subgroups.arithmetic.compute.subgroupexclusiveor_u16vec4_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivexor_u16vec4
+dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivexor_u16vec4_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupadd_int
+dEQP-VK.subgroups.arithmetic.compute.subgroupadd_int_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupmul_int
+dEQP-VK.subgroups.arithmetic.compute.subgroupmul_int_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupmin_int
+dEQP-VK.subgroups.arithmetic.compute.subgroupmin_int_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupmax_int
+dEQP-VK.subgroups.arithmetic.compute.subgroupmax_int_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupand_int
+dEQP-VK.subgroups.arithmetic.compute.subgroupand_int_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupor_int
+dEQP-VK.subgroups.arithmetic.compute.subgroupor_int_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupxor_int
+dEQP-VK.subgroups.arithmetic.compute.subgroupxor_int_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupinclusiveadd_int
+dEQP-VK.subgroups.arithmetic.compute.subgroupinclusiveadd_int_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivemul_int
+dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivemul_int_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivemin_int
+dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivemin_int_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivemax_int
+dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivemax_int_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupinclusiveand_int
+dEQP-VK.subgroups.arithmetic.compute.subgroupinclusiveand_int_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupinclusiveor_int
+dEQP-VK.subgroups.arithmetic.compute.subgroupinclusiveor_int_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivexor_int
+dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivexor_int_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupexclusiveadd_int
+dEQP-VK.subgroups.arithmetic.compute.subgroupexclusiveadd_int_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivemul_int
+dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivemul_int_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivemin_int
+dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivemin_int_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivemax_int
+dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivemax_int_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupexclusiveand_int
+dEQP-VK.subgroups.arithmetic.compute.subgroupexclusiveand_int_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupexclusiveor_int
+dEQP-VK.subgroups.arithmetic.compute.subgroupexclusiveor_int_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivexor_int
+dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivexor_int_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupadd_ivec2
+dEQP-VK.subgroups.arithmetic.compute.subgroupadd_ivec2_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupmul_ivec2
+dEQP-VK.subgroups.arithmetic.compute.subgroupmul_ivec2_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupmin_ivec2
+dEQP-VK.subgroups.arithmetic.compute.subgroupmin_ivec2_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupmax_ivec2
+dEQP-VK.subgroups.arithmetic.compute.subgroupmax_ivec2_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupand_ivec2
+dEQP-VK.subgroups.arithmetic.compute.subgroupand_ivec2_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupor_ivec2
+dEQP-VK.subgroups.arithmetic.compute.subgroupor_ivec2_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupxor_ivec2
+dEQP-VK.subgroups.arithmetic.compute.subgroupxor_ivec2_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupinclusiveadd_ivec2
+dEQP-VK.subgroups.arithmetic.compute.subgroupinclusiveadd_ivec2_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivemul_ivec2
+dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivemul_ivec2_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivemin_ivec2
+dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivemin_ivec2_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivemax_ivec2
+dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivemax_ivec2_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupinclusiveand_ivec2
+dEQP-VK.subgroups.arithmetic.compute.subgroupinclusiveand_ivec2_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupinclusiveor_ivec2
+dEQP-VK.subgroups.arithmetic.compute.subgroupinclusiveor_ivec2_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivexor_ivec2
+dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivexor_ivec2_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupexclusiveadd_ivec2
+dEQP-VK.subgroups.arithmetic.compute.subgroupexclusiveadd_ivec2_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivemul_ivec2
+dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivemul_ivec2_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivemin_ivec2
+dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivemin_ivec2_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivemax_ivec2
+dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivemax_ivec2_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupexclusiveand_ivec2
+dEQP-VK.subgroups.arithmetic.compute.subgroupexclusiveand_ivec2_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupexclusiveor_ivec2
+dEQP-VK.subgroups.arithmetic.compute.subgroupexclusiveor_ivec2_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivexor_ivec2
+dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivexor_ivec2_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupadd_ivec3
+dEQP-VK.subgroups.arithmetic.compute.subgroupadd_ivec3_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupmul_ivec3
+dEQP-VK.subgroups.arithmetic.compute.subgroupmul_ivec3_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupmin_ivec3
+dEQP-VK.subgroups.arithmetic.compute.subgroupmin_ivec3_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupmax_ivec3
+dEQP-VK.subgroups.arithmetic.compute.subgroupmax_ivec3_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupand_ivec3
+dEQP-VK.subgroups.arithmetic.compute.subgroupand_ivec3_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupor_ivec3
+dEQP-VK.subgroups.arithmetic.compute.subgroupor_ivec3_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupxor_ivec3
+dEQP-VK.subgroups.arithmetic.compute.subgroupxor_ivec3_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupinclusiveadd_ivec3
+dEQP-VK.subgroups.arithmetic.compute.subgroupinclusiveadd_ivec3_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivemul_ivec3
+dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivemul_ivec3_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivemin_ivec3
+dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivemin_ivec3_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivemax_ivec3
+dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivemax_ivec3_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupinclusiveand_ivec3
+dEQP-VK.subgroups.arithmetic.compute.subgroupinclusiveand_ivec3_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupinclusiveor_ivec3
+dEQP-VK.subgroups.arithmetic.compute.subgroupinclusiveor_ivec3_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivexor_ivec3
+dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivexor_ivec3_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupexclusiveadd_ivec3
+dEQP-VK.subgroups.arithmetic.compute.subgroupexclusiveadd_ivec3_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivemul_ivec3
+dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivemul_ivec3_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivemin_ivec3
+dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivemin_ivec3_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivemax_ivec3
+dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivemax_ivec3_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupexclusiveand_ivec3
+dEQP-VK.subgroups.arithmetic.compute.subgroupexclusiveand_ivec3_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupexclusiveor_ivec3
+dEQP-VK.subgroups.arithmetic.compute.subgroupexclusiveor_ivec3_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivexor_ivec3
+dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivexor_ivec3_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupadd_ivec4
+dEQP-VK.subgroups.arithmetic.compute.subgroupadd_ivec4_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupmul_ivec4
+dEQP-VK.subgroups.arithmetic.compute.subgroupmul_ivec4_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupmin_ivec4
+dEQP-VK.subgroups.arithmetic.compute.subgroupmin_ivec4_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupmax_ivec4
+dEQP-VK.subgroups.arithmetic.compute.subgroupmax_ivec4_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupand_ivec4
+dEQP-VK.subgroups.arithmetic.compute.subgroupand_ivec4_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupor_ivec4
+dEQP-VK.subgroups.arithmetic.compute.subgroupor_ivec4_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupxor_ivec4
+dEQP-VK.subgroups.arithmetic.compute.subgroupxor_ivec4_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupinclusiveadd_ivec4
+dEQP-VK.subgroups.arithmetic.compute.subgroupinclusiveadd_ivec4_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivemul_ivec4
+dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivemul_ivec4_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivemin_ivec4
+dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivemin_ivec4_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivemax_ivec4
+dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivemax_ivec4_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupinclusiveand_ivec4
+dEQP-VK.subgroups.arithmetic.compute.subgroupinclusiveand_ivec4_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupinclusiveor_ivec4
+dEQP-VK.subgroups.arithmetic.compute.subgroupinclusiveor_ivec4_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivexor_ivec4
+dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivexor_ivec4_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupexclusiveadd_ivec4
+dEQP-VK.subgroups.arithmetic.compute.subgroupexclusiveadd_ivec4_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivemul_ivec4
+dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivemul_ivec4_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivemin_ivec4
+dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivemin_ivec4_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivemax_ivec4
+dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivemax_ivec4_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupexclusiveand_ivec4
+dEQP-VK.subgroups.arithmetic.compute.subgroupexclusiveand_ivec4_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupexclusiveor_ivec4
+dEQP-VK.subgroups.arithmetic.compute.subgroupexclusiveor_ivec4_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivexor_ivec4
+dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivexor_ivec4_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupadd_uint
+dEQP-VK.subgroups.arithmetic.compute.subgroupadd_uint_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupmul_uint
+dEQP-VK.subgroups.arithmetic.compute.subgroupmul_uint_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupmin_uint
+dEQP-VK.subgroups.arithmetic.compute.subgroupmin_uint_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupmax_uint
+dEQP-VK.subgroups.arithmetic.compute.subgroupmax_uint_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupand_uint
+dEQP-VK.subgroups.arithmetic.compute.subgroupand_uint_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupor_uint
+dEQP-VK.subgroups.arithmetic.compute.subgroupor_uint_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupxor_uint
+dEQP-VK.subgroups.arithmetic.compute.subgroupxor_uint_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupinclusiveadd_uint
+dEQP-VK.subgroups.arithmetic.compute.subgroupinclusiveadd_uint_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivemul_uint
+dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivemul_uint_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivemin_uint
+dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivemin_uint_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivemax_uint
+dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivemax_uint_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupinclusiveand_uint
+dEQP-VK.subgroups.arithmetic.compute.subgroupinclusiveand_uint_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupinclusiveor_uint
+dEQP-VK.subgroups.arithmetic.compute.subgroupinclusiveor_uint_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivexor_uint
+dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivexor_uint_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupexclusiveadd_uint
+dEQP-VK.subgroups.arithmetic.compute.subgroupexclusiveadd_uint_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivemul_uint
+dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivemul_uint_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivemin_uint
+dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivemin_uint_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivemax_uint
+dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivemax_uint_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupexclusiveand_uint
+dEQP-VK.subgroups.arithmetic.compute.subgroupexclusiveand_uint_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupexclusiveor_uint
+dEQP-VK.subgroups.arithmetic.compute.subgroupexclusiveor_uint_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivexor_uint
+dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivexor_uint_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupadd_uvec2
+dEQP-VK.subgroups.arithmetic.compute.subgroupadd_uvec2_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupmul_uvec2
+dEQP-VK.subgroups.arithmetic.compute.subgroupmul_uvec2_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupmin_uvec2
+dEQP-VK.subgroups.arithmetic.compute.subgroupmin_uvec2_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupmax_uvec2
+dEQP-VK.subgroups.arithmetic.compute.subgroupmax_uvec2_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupand_uvec2
+dEQP-VK.subgroups.arithmetic.compute.subgroupand_uvec2_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupor_uvec2
+dEQP-VK.subgroups.arithmetic.compute.subgroupor_uvec2_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupxor_uvec2
+dEQP-VK.subgroups.arithmetic.compute.subgroupxor_uvec2_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupinclusiveadd_uvec2
+dEQP-VK.subgroups.arithmetic.compute.subgroupinclusiveadd_uvec2_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivemul_uvec2
+dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivemul_uvec2_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivemin_uvec2
+dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivemin_uvec2_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivemax_uvec2
+dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivemax_uvec2_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupinclusiveand_uvec2
+dEQP-VK.subgroups.arithmetic.compute.subgroupinclusiveand_uvec2_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupinclusiveor_uvec2
+dEQP-VK.subgroups.arithmetic.compute.subgroupinclusiveor_uvec2_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivexor_uvec2
+dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivexor_uvec2_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupexclusiveadd_uvec2
+dEQP-VK.subgroups.arithmetic.compute.subgroupexclusiveadd_uvec2_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivemul_uvec2
+dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivemul_uvec2_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivemin_uvec2
+dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivemin_uvec2_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivemax_uvec2
+dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivemax_uvec2_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupexclusiveand_uvec2
+dEQP-VK.subgroups.arithmetic.compute.subgroupexclusiveand_uvec2_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupexclusiveor_uvec2
+dEQP-VK.subgroups.arithmetic.compute.subgroupexclusiveor_uvec2_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivexor_uvec2
+dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivexor_uvec2_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupadd_uvec3
+dEQP-VK.subgroups.arithmetic.compute.subgroupadd_uvec3_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupmul_uvec3
+dEQP-VK.subgroups.arithmetic.compute.subgroupmul_uvec3_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupmin_uvec3
+dEQP-VK.subgroups.arithmetic.compute.subgroupmin_uvec3_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupmax_uvec3
+dEQP-VK.subgroups.arithmetic.compute.subgroupmax_uvec3_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupand_uvec3
+dEQP-VK.subgroups.arithmetic.compute.subgroupand_uvec3_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupor_uvec3
+dEQP-VK.subgroups.arithmetic.compute.subgroupor_uvec3_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupxor_uvec3
+dEQP-VK.subgroups.arithmetic.compute.subgroupxor_uvec3_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupinclusiveadd_uvec3
+dEQP-VK.subgroups.arithmetic.compute.subgroupinclusiveadd_uvec3_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivemul_uvec3
+dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivemul_uvec3_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivemin_uvec3
+dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivemin_uvec3_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivemax_uvec3
+dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivemax_uvec3_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupinclusiveand_uvec3
+dEQP-VK.subgroups.arithmetic.compute.subgroupinclusiveand_uvec3_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupinclusiveor_uvec3
+dEQP-VK.subgroups.arithmetic.compute.subgroupinclusiveor_uvec3_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivexor_uvec3
+dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivexor_uvec3_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupexclusiveadd_uvec3
+dEQP-VK.subgroups.arithmetic.compute.subgroupexclusiveadd_uvec3_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivemul_uvec3
+dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivemul_uvec3_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivemin_uvec3
+dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivemin_uvec3_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivemax_uvec3
+dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivemax_uvec3_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupexclusiveand_uvec3
+dEQP-VK.subgroups.arithmetic.compute.subgroupexclusiveand_uvec3_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupexclusiveor_uvec3
+dEQP-VK.subgroups.arithmetic.compute.subgroupexclusiveor_uvec3_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivexor_uvec3
+dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivexor_uvec3_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupadd_uvec4
+dEQP-VK.subgroups.arithmetic.compute.subgroupadd_uvec4_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupmul_uvec4
+dEQP-VK.subgroups.arithmetic.compute.subgroupmul_uvec4_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupmin_uvec4
+dEQP-VK.subgroups.arithmetic.compute.subgroupmin_uvec4_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupmax_uvec4
+dEQP-VK.subgroups.arithmetic.compute.subgroupmax_uvec4_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupand_uvec4
+dEQP-VK.subgroups.arithmetic.compute.subgroupand_uvec4_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupor_uvec4
+dEQP-VK.subgroups.arithmetic.compute.subgroupor_uvec4_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupxor_uvec4
+dEQP-VK.subgroups.arithmetic.compute.subgroupxor_uvec4_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupinclusiveadd_uvec4
+dEQP-VK.subgroups.arithmetic.compute.subgroupinclusiveadd_uvec4_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivemul_uvec4
+dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivemul_uvec4_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivemin_uvec4
+dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivemin_uvec4_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivemax_uvec4
+dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivemax_uvec4_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupinclusiveand_uvec4
+dEQP-VK.subgroups.arithmetic.compute.subgroupinclusiveand_uvec4_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupinclusiveor_uvec4
+dEQP-VK.subgroups.arithmetic.compute.subgroupinclusiveor_uvec4_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivexor_uvec4
+dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivexor_uvec4_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupexclusiveadd_uvec4
+dEQP-VK.subgroups.arithmetic.compute.subgroupexclusiveadd_uvec4_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivemul_uvec4
+dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivemul_uvec4_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivemin_uvec4
+dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivemin_uvec4_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivemax_uvec4
+dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivemax_uvec4_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupexclusiveand_uvec4
+dEQP-VK.subgroups.arithmetic.compute.subgroupexclusiveand_uvec4_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupexclusiveor_uvec4
+dEQP-VK.subgroups.arithmetic.compute.subgroupexclusiveor_uvec4_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivexor_uvec4
+dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivexor_uvec4_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupadd_int64_t
+dEQP-VK.subgroups.arithmetic.compute.subgroupadd_int64_t_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupmul_int64_t
+dEQP-VK.subgroups.arithmetic.compute.subgroupmul_int64_t_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupmin_int64_t
+dEQP-VK.subgroups.arithmetic.compute.subgroupmin_int64_t_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupmax_int64_t
+dEQP-VK.subgroups.arithmetic.compute.subgroupmax_int64_t_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupand_int64_t
+dEQP-VK.subgroups.arithmetic.compute.subgroupand_int64_t_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupor_int64_t
+dEQP-VK.subgroups.arithmetic.compute.subgroupor_int64_t_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupxor_int64_t
+dEQP-VK.subgroups.arithmetic.compute.subgroupxor_int64_t_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupinclusiveadd_int64_t
+dEQP-VK.subgroups.arithmetic.compute.subgroupinclusiveadd_int64_t_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivemul_int64_t
+dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivemul_int64_t_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivemin_int64_t
+dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivemin_int64_t_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivemax_int64_t
+dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivemax_int64_t_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupinclusiveand_int64_t
+dEQP-VK.subgroups.arithmetic.compute.subgroupinclusiveand_int64_t_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupinclusiveor_int64_t
+dEQP-VK.subgroups.arithmetic.compute.subgroupinclusiveor_int64_t_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivexor_int64_t
+dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivexor_int64_t_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupexclusiveadd_int64_t
+dEQP-VK.subgroups.arithmetic.compute.subgroupexclusiveadd_int64_t_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivemul_int64_t
+dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivemul_int64_t_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivemin_int64_t
+dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivemin_int64_t_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivemax_int64_t
+dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivemax_int64_t_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupexclusiveand_int64_t
+dEQP-VK.subgroups.arithmetic.compute.subgroupexclusiveand_int64_t_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupexclusiveor_int64_t
+dEQP-VK.subgroups.arithmetic.compute.subgroupexclusiveor_int64_t_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivexor_int64_t
+dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivexor_int64_t_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupadd_i64vec2
+dEQP-VK.subgroups.arithmetic.compute.subgroupadd_i64vec2_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupmul_i64vec2
+dEQP-VK.subgroups.arithmetic.compute.subgroupmul_i64vec2_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupmin_i64vec2
+dEQP-VK.subgroups.arithmetic.compute.subgroupmin_i64vec2_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupmax_i64vec2
+dEQP-VK.subgroups.arithmetic.compute.subgroupmax_i64vec2_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupand_i64vec2
+dEQP-VK.subgroups.arithmetic.compute.subgroupand_i64vec2_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupor_i64vec2
+dEQP-VK.subgroups.arithmetic.compute.subgroupor_i64vec2_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupxor_i64vec2
+dEQP-VK.subgroups.arithmetic.compute.subgroupxor_i64vec2_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupinclusiveadd_i64vec2
+dEQP-VK.subgroups.arithmetic.compute.subgroupinclusiveadd_i64vec2_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivemul_i64vec2
+dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivemul_i64vec2_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivemin_i64vec2
+dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivemin_i64vec2_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivemax_i64vec2
+dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivemax_i64vec2_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupinclusiveand_i64vec2
+dEQP-VK.subgroups.arithmetic.compute.subgroupinclusiveand_i64vec2_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupinclusiveor_i64vec2
+dEQP-VK.subgroups.arithmetic.compute.subgroupinclusiveor_i64vec2_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivexor_i64vec2
+dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivexor_i64vec2_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupexclusiveadd_i64vec2
+dEQP-VK.subgroups.arithmetic.compute.subgroupexclusiveadd_i64vec2_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivemul_i64vec2
+dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivemul_i64vec2_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivemin_i64vec2
+dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivemin_i64vec2_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivemax_i64vec2
+dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivemax_i64vec2_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupexclusiveand_i64vec2
+dEQP-VK.subgroups.arithmetic.compute.subgroupexclusiveand_i64vec2_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupexclusiveor_i64vec2
+dEQP-VK.subgroups.arithmetic.compute.subgroupexclusiveor_i64vec2_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivexor_i64vec2
+dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivexor_i64vec2_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupadd_i64vec3
+dEQP-VK.subgroups.arithmetic.compute.subgroupadd_i64vec3_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupmul_i64vec3
+dEQP-VK.subgroups.arithmetic.compute.subgroupmul_i64vec3_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupmin_i64vec3
+dEQP-VK.subgroups.arithmetic.compute.subgroupmin_i64vec3_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupmax_i64vec3
+dEQP-VK.subgroups.arithmetic.compute.subgroupmax_i64vec3_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupand_i64vec3
+dEQP-VK.subgroups.arithmetic.compute.subgroupand_i64vec3_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupor_i64vec3
+dEQP-VK.subgroups.arithmetic.compute.subgroupor_i64vec3_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupxor_i64vec3
+dEQP-VK.subgroups.arithmetic.compute.subgroupxor_i64vec3_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupinclusiveadd_i64vec3
+dEQP-VK.subgroups.arithmetic.compute.subgroupinclusiveadd_i64vec3_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivemul_i64vec3
+dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivemul_i64vec3_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivemin_i64vec3
+dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivemin_i64vec3_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivemax_i64vec3
+dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivemax_i64vec3_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupinclusiveand_i64vec3
+dEQP-VK.subgroups.arithmetic.compute.subgroupinclusiveand_i64vec3_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupinclusiveor_i64vec3
+dEQP-VK.subgroups.arithmetic.compute.subgroupinclusiveor_i64vec3_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivexor_i64vec3
+dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivexor_i64vec3_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupexclusiveadd_i64vec3
+dEQP-VK.subgroups.arithmetic.compute.subgroupexclusiveadd_i64vec3_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivemul_i64vec3
+dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivemul_i64vec3_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivemin_i64vec3
+dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivemin_i64vec3_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivemax_i64vec3
+dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivemax_i64vec3_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupexclusiveand_i64vec3
+dEQP-VK.subgroups.arithmetic.compute.subgroupexclusiveand_i64vec3_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupexclusiveor_i64vec3
+dEQP-VK.subgroups.arithmetic.compute.subgroupexclusiveor_i64vec3_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivexor_i64vec3
+dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivexor_i64vec3_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupadd_i64vec4
+dEQP-VK.subgroups.arithmetic.compute.subgroupadd_i64vec4_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupmul_i64vec4
+dEQP-VK.subgroups.arithmetic.compute.subgroupmul_i64vec4_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupmin_i64vec4
+dEQP-VK.subgroups.arithmetic.compute.subgroupmin_i64vec4_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupmax_i64vec4
+dEQP-VK.subgroups.arithmetic.compute.subgroupmax_i64vec4_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupand_i64vec4
+dEQP-VK.subgroups.arithmetic.compute.subgroupand_i64vec4_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupor_i64vec4
+dEQP-VK.subgroups.arithmetic.compute.subgroupor_i64vec4_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupxor_i64vec4
+dEQP-VK.subgroups.arithmetic.compute.subgroupxor_i64vec4_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupinclusiveadd_i64vec4
+dEQP-VK.subgroups.arithmetic.compute.subgroupinclusiveadd_i64vec4_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivemul_i64vec4
+dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivemul_i64vec4_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivemin_i64vec4
+dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivemin_i64vec4_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivemax_i64vec4
+dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivemax_i64vec4_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupinclusiveand_i64vec4
+dEQP-VK.subgroups.arithmetic.compute.subgroupinclusiveand_i64vec4_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupinclusiveor_i64vec4
+dEQP-VK.subgroups.arithmetic.compute.subgroupinclusiveor_i64vec4_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivexor_i64vec4
+dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivexor_i64vec4_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupexclusiveadd_i64vec4
+dEQP-VK.subgroups.arithmetic.compute.subgroupexclusiveadd_i64vec4_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivemul_i64vec4
+dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivemul_i64vec4_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivemin_i64vec4
+dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivemin_i64vec4_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivemax_i64vec4
+dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivemax_i64vec4_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupexclusiveand_i64vec4
+dEQP-VK.subgroups.arithmetic.compute.subgroupexclusiveand_i64vec4_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupexclusiveor_i64vec4
+dEQP-VK.subgroups.arithmetic.compute.subgroupexclusiveor_i64vec4_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivexor_i64vec4
+dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivexor_i64vec4_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupadd_uint64_t
+dEQP-VK.subgroups.arithmetic.compute.subgroupadd_uint64_t_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupmul_uint64_t
+dEQP-VK.subgroups.arithmetic.compute.subgroupmul_uint64_t_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupmin_uint64_t
+dEQP-VK.subgroups.arithmetic.compute.subgroupmin_uint64_t_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupmax_uint64_t
+dEQP-VK.subgroups.arithmetic.compute.subgroupmax_uint64_t_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupand_uint64_t
+dEQP-VK.subgroups.arithmetic.compute.subgroupand_uint64_t_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupor_uint64_t
+dEQP-VK.subgroups.arithmetic.compute.subgroupor_uint64_t_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupxor_uint64_t
+dEQP-VK.subgroups.arithmetic.compute.subgroupxor_uint64_t_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupinclusiveadd_uint64_t
+dEQP-VK.subgroups.arithmetic.compute.subgroupinclusiveadd_uint64_t_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivemul_uint64_t
+dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivemul_uint64_t_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivemin_uint64_t
+dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivemin_uint64_t_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivemax_uint64_t
+dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivemax_uint64_t_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupinclusiveand_uint64_t
+dEQP-VK.subgroups.arithmetic.compute.subgroupinclusiveand_uint64_t_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupinclusiveor_uint64_t
+dEQP-VK.subgroups.arithmetic.compute.subgroupinclusiveor_uint64_t_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivexor_uint64_t
+dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivexor_uint64_t_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupexclusiveadd_uint64_t
+dEQP-VK.subgroups.arithmetic.compute.subgroupexclusiveadd_uint64_t_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivemul_uint64_t
+dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivemul_uint64_t_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivemin_uint64_t
+dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivemin_uint64_t_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivemax_uint64_t
+dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivemax_uint64_t_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupexclusiveand_uint64_t
+dEQP-VK.subgroups.arithmetic.compute.subgroupexclusiveand_uint64_t_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupexclusiveor_uint64_t
+dEQP-VK.subgroups.arithmetic.compute.subgroupexclusiveor_uint64_t_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivexor_uint64_t
+dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivexor_uint64_t_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupadd_u64vec2
+dEQP-VK.subgroups.arithmetic.compute.subgroupadd_u64vec2_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupmul_u64vec2
+dEQP-VK.subgroups.arithmetic.compute.subgroupmul_u64vec2_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupmin_u64vec2
+dEQP-VK.subgroups.arithmetic.compute.subgroupmin_u64vec2_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupmax_u64vec2
+dEQP-VK.subgroups.arithmetic.compute.subgroupmax_u64vec2_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupand_u64vec2
+dEQP-VK.subgroups.arithmetic.compute.subgroupand_u64vec2_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupor_u64vec2
+dEQP-VK.subgroups.arithmetic.compute.subgroupor_u64vec2_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupxor_u64vec2
+dEQP-VK.subgroups.arithmetic.compute.subgroupxor_u64vec2_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupinclusiveadd_u64vec2
+dEQP-VK.subgroups.arithmetic.compute.subgroupinclusiveadd_u64vec2_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivemul_u64vec2
+dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivemul_u64vec2_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivemin_u64vec2
+dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivemin_u64vec2_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivemax_u64vec2
+dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivemax_u64vec2_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupinclusiveand_u64vec2
+dEQP-VK.subgroups.arithmetic.compute.subgroupinclusiveand_u64vec2_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupinclusiveor_u64vec2
+dEQP-VK.subgroups.arithmetic.compute.subgroupinclusiveor_u64vec2_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivexor_u64vec2
+dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivexor_u64vec2_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupexclusiveadd_u64vec2
+dEQP-VK.subgroups.arithmetic.compute.subgroupexclusiveadd_u64vec2_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivemul_u64vec2
+dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivemul_u64vec2_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivemin_u64vec2
+dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivemin_u64vec2_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivemax_u64vec2
+dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivemax_u64vec2_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupexclusiveand_u64vec2
+dEQP-VK.subgroups.arithmetic.compute.subgroupexclusiveand_u64vec2_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupexclusiveor_u64vec2
+dEQP-VK.subgroups.arithmetic.compute.subgroupexclusiveor_u64vec2_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivexor_u64vec2
+dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivexor_u64vec2_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupadd_u64vec3
+dEQP-VK.subgroups.arithmetic.compute.subgroupadd_u64vec3_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupmul_u64vec3
+dEQP-VK.subgroups.arithmetic.compute.subgroupmul_u64vec3_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupmin_u64vec3
+dEQP-VK.subgroups.arithmetic.compute.subgroupmin_u64vec3_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupmax_u64vec3
+dEQP-VK.subgroups.arithmetic.compute.subgroupmax_u64vec3_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupand_u64vec3
+dEQP-VK.subgroups.arithmetic.compute.subgroupand_u64vec3_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupor_u64vec3
+dEQP-VK.subgroups.arithmetic.compute.subgroupor_u64vec3_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupxor_u64vec3
+dEQP-VK.subgroups.arithmetic.compute.subgroupxor_u64vec3_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupinclusiveadd_u64vec3
+dEQP-VK.subgroups.arithmetic.compute.subgroupinclusiveadd_u64vec3_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivemul_u64vec3
+dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivemul_u64vec3_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivemin_u64vec3
+dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivemin_u64vec3_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivemax_u64vec3
+dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivemax_u64vec3_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupinclusiveand_u64vec3
+dEQP-VK.subgroups.arithmetic.compute.subgroupinclusiveand_u64vec3_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupinclusiveor_u64vec3
+dEQP-VK.subgroups.arithmetic.compute.subgroupinclusiveor_u64vec3_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivexor_u64vec3
+dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivexor_u64vec3_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupexclusiveadd_u64vec3
+dEQP-VK.subgroups.arithmetic.compute.subgroupexclusiveadd_u64vec3_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivemul_u64vec3
+dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivemul_u64vec3_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivemin_u64vec3
+dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivemin_u64vec3_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivemax_u64vec3
+dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivemax_u64vec3_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupexclusiveand_u64vec3
+dEQP-VK.subgroups.arithmetic.compute.subgroupexclusiveand_u64vec3_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupexclusiveor_u64vec3
+dEQP-VK.subgroups.arithmetic.compute.subgroupexclusiveor_u64vec3_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivexor_u64vec3
+dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivexor_u64vec3_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupadd_u64vec4
+dEQP-VK.subgroups.arithmetic.compute.subgroupadd_u64vec4_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupmul_u64vec4
+dEQP-VK.subgroups.arithmetic.compute.subgroupmul_u64vec4_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupmin_u64vec4
+dEQP-VK.subgroups.arithmetic.compute.subgroupmin_u64vec4_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupmax_u64vec4
+dEQP-VK.subgroups.arithmetic.compute.subgroupmax_u64vec4_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupand_u64vec4
+dEQP-VK.subgroups.arithmetic.compute.subgroupand_u64vec4_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupor_u64vec4
+dEQP-VK.subgroups.arithmetic.compute.subgroupor_u64vec4_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupxor_u64vec4
+dEQP-VK.subgroups.arithmetic.compute.subgroupxor_u64vec4_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupinclusiveadd_u64vec4
+dEQP-VK.subgroups.arithmetic.compute.subgroupinclusiveadd_u64vec4_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivemul_u64vec4
+dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivemul_u64vec4_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivemin_u64vec4
+dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivemin_u64vec4_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivemax_u64vec4
+dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivemax_u64vec4_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupinclusiveand_u64vec4
+dEQP-VK.subgroups.arithmetic.compute.subgroupinclusiveand_u64vec4_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupinclusiveor_u64vec4
+dEQP-VK.subgroups.arithmetic.compute.subgroupinclusiveor_u64vec4_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivexor_u64vec4
+dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivexor_u64vec4_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupexclusiveadd_u64vec4
+dEQP-VK.subgroups.arithmetic.compute.subgroupexclusiveadd_u64vec4_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivemul_u64vec4
+dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivemul_u64vec4_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivemin_u64vec4
+dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivemin_u64vec4_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivemax_u64vec4
+dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivemax_u64vec4_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupexclusiveand_u64vec4
+dEQP-VK.subgroups.arithmetic.compute.subgroupexclusiveand_u64vec4_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupexclusiveor_u64vec4
+dEQP-VK.subgroups.arithmetic.compute.subgroupexclusiveor_u64vec4_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivexor_u64vec4
+dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivexor_u64vec4_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupadd_float16_t
+dEQP-VK.subgroups.arithmetic.compute.subgroupadd_float16_t_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupmul_float16_t
+dEQP-VK.subgroups.arithmetic.compute.subgroupmul_float16_t_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupmin_float16_t
+dEQP-VK.subgroups.arithmetic.compute.subgroupmin_float16_t_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupmax_float16_t
+dEQP-VK.subgroups.arithmetic.compute.subgroupmax_float16_t_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupinclusiveadd_float16_t
+dEQP-VK.subgroups.arithmetic.compute.subgroupinclusiveadd_float16_t_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivemul_float16_t
+dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivemul_float16_t_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivemin_float16_t
+dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivemin_float16_t_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivemax_float16_t
+dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivemax_float16_t_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupexclusiveadd_float16_t
+dEQP-VK.subgroups.arithmetic.compute.subgroupexclusiveadd_float16_t_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivemul_float16_t
+dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivemul_float16_t_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivemin_float16_t
+dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivemin_float16_t_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivemax_float16_t
+dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivemax_float16_t_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupadd_f16vec2
+dEQP-VK.subgroups.arithmetic.compute.subgroupadd_f16vec2_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupmul_f16vec2
+dEQP-VK.subgroups.arithmetic.compute.subgroupmul_f16vec2_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupmin_f16vec2
+dEQP-VK.subgroups.arithmetic.compute.subgroupmin_f16vec2_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupmax_f16vec2
+dEQP-VK.subgroups.arithmetic.compute.subgroupmax_f16vec2_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupinclusiveadd_f16vec2
+dEQP-VK.subgroups.arithmetic.compute.subgroupinclusiveadd_f16vec2_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivemul_f16vec2
+dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivemul_f16vec2_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivemin_f16vec2
+dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivemin_f16vec2_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivemax_f16vec2
+dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivemax_f16vec2_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupexclusiveadd_f16vec2
+dEQP-VK.subgroups.arithmetic.compute.subgroupexclusiveadd_f16vec2_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivemul_f16vec2
+dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivemul_f16vec2_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivemin_f16vec2
+dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivemin_f16vec2_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivemax_f16vec2
+dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivemax_f16vec2_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupadd_f16vec3
+dEQP-VK.subgroups.arithmetic.compute.subgroupadd_f16vec3_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupmul_f16vec3
+dEQP-VK.subgroups.arithmetic.compute.subgroupmul_f16vec3_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupmin_f16vec3
+dEQP-VK.subgroups.arithmetic.compute.subgroupmin_f16vec3_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupmax_f16vec3
+dEQP-VK.subgroups.arithmetic.compute.subgroupmax_f16vec3_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupinclusiveadd_f16vec3
+dEQP-VK.subgroups.arithmetic.compute.subgroupinclusiveadd_f16vec3_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivemul_f16vec3
+dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivemul_f16vec3_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivemin_f16vec3
+dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivemin_f16vec3_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivemax_f16vec3
+dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivemax_f16vec3_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupexclusiveadd_f16vec3
+dEQP-VK.subgroups.arithmetic.compute.subgroupexclusiveadd_f16vec3_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivemul_f16vec3
+dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivemul_f16vec3_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivemin_f16vec3
+dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivemin_f16vec3_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivemax_f16vec3
+dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivemax_f16vec3_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupadd_f16vec4
+dEQP-VK.subgroups.arithmetic.compute.subgroupadd_f16vec4_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupmul_f16vec4
+dEQP-VK.subgroups.arithmetic.compute.subgroupmul_f16vec4_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupmin_f16vec4
+dEQP-VK.subgroups.arithmetic.compute.subgroupmin_f16vec4_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupmax_f16vec4
+dEQP-VK.subgroups.arithmetic.compute.subgroupmax_f16vec4_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupinclusiveadd_f16vec4
+dEQP-VK.subgroups.arithmetic.compute.subgroupinclusiveadd_f16vec4_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivemul_f16vec4
+dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivemul_f16vec4_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivemin_f16vec4
+dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivemin_f16vec4_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivemax_f16vec4
+dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivemax_f16vec4_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupexclusiveadd_f16vec4
+dEQP-VK.subgroups.arithmetic.compute.subgroupexclusiveadd_f16vec4_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivemul_f16vec4
+dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivemul_f16vec4_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivemin_f16vec4
+dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivemin_f16vec4_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivemax_f16vec4
+dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivemax_f16vec4_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupadd_float
+dEQP-VK.subgroups.arithmetic.compute.subgroupadd_float_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupmul_float
+dEQP-VK.subgroups.arithmetic.compute.subgroupmul_float_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupmin_float
+dEQP-VK.subgroups.arithmetic.compute.subgroupmin_float_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupmax_float
+dEQP-VK.subgroups.arithmetic.compute.subgroupmax_float_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupinclusiveadd_float
+dEQP-VK.subgroups.arithmetic.compute.subgroupinclusiveadd_float_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivemul_float
+dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivemul_float_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivemin_float
+dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivemin_float_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivemax_float
+dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivemax_float_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupexclusiveadd_float
+dEQP-VK.subgroups.arithmetic.compute.subgroupexclusiveadd_float_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivemul_float
+dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivemul_float_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivemin_float
+dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivemin_float_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivemax_float
+dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivemax_float_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupadd_vec2
+dEQP-VK.subgroups.arithmetic.compute.subgroupadd_vec2_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupmul_vec2
+dEQP-VK.subgroups.arithmetic.compute.subgroupmul_vec2_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupmin_vec2
+dEQP-VK.subgroups.arithmetic.compute.subgroupmin_vec2_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupmax_vec2
+dEQP-VK.subgroups.arithmetic.compute.subgroupmax_vec2_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupinclusiveadd_vec2
+dEQP-VK.subgroups.arithmetic.compute.subgroupinclusiveadd_vec2_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivemul_vec2
+dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivemul_vec2_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivemin_vec2
+dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivemin_vec2_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivemax_vec2
+dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivemax_vec2_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupexclusiveadd_vec2
+dEQP-VK.subgroups.arithmetic.compute.subgroupexclusiveadd_vec2_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivemul_vec2
+dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivemul_vec2_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivemin_vec2
+dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivemin_vec2_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivemax_vec2
+dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivemax_vec2_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupadd_vec3
+dEQP-VK.subgroups.arithmetic.compute.subgroupadd_vec3_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupmul_vec3
+dEQP-VK.subgroups.arithmetic.compute.subgroupmul_vec3_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupmin_vec3
+dEQP-VK.subgroups.arithmetic.compute.subgroupmin_vec3_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupmax_vec3
+dEQP-VK.subgroups.arithmetic.compute.subgroupmax_vec3_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupinclusiveadd_vec3
+dEQP-VK.subgroups.arithmetic.compute.subgroupinclusiveadd_vec3_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivemul_vec3
+dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivemul_vec3_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivemin_vec3
+dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivemin_vec3_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivemax_vec3
+dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivemax_vec3_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupexclusiveadd_vec3
+dEQP-VK.subgroups.arithmetic.compute.subgroupexclusiveadd_vec3_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivemul_vec3
+dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivemul_vec3_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivemin_vec3
+dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivemin_vec3_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivemax_vec3
+dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivemax_vec3_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupadd_vec4
+dEQP-VK.subgroups.arithmetic.compute.subgroupadd_vec4_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupmul_vec4
+dEQP-VK.subgroups.arithmetic.compute.subgroupmul_vec4_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupmin_vec4
+dEQP-VK.subgroups.arithmetic.compute.subgroupmin_vec4_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupmax_vec4
+dEQP-VK.subgroups.arithmetic.compute.subgroupmax_vec4_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupinclusiveadd_vec4
+dEQP-VK.subgroups.arithmetic.compute.subgroupinclusiveadd_vec4_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivemul_vec4
+dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivemul_vec4_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivemin_vec4
+dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivemin_vec4_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivemax_vec4
+dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivemax_vec4_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupexclusiveadd_vec4
+dEQP-VK.subgroups.arithmetic.compute.subgroupexclusiveadd_vec4_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivemul_vec4
+dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivemul_vec4_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivemin_vec4
+dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivemin_vec4_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivemax_vec4
+dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivemax_vec4_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupadd_double
+dEQP-VK.subgroups.arithmetic.compute.subgroupadd_double_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupmul_double
+dEQP-VK.subgroups.arithmetic.compute.subgroupmul_double_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupmin_double
+dEQP-VK.subgroups.arithmetic.compute.subgroupmin_double_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupmax_double
+dEQP-VK.subgroups.arithmetic.compute.subgroupmax_double_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupinclusiveadd_double
+dEQP-VK.subgroups.arithmetic.compute.subgroupinclusiveadd_double_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivemul_double
+dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivemul_double_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivemin_double
+dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivemin_double_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivemax_double
+dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivemax_double_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupexclusiveadd_double
+dEQP-VK.subgroups.arithmetic.compute.subgroupexclusiveadd_double_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivemul_double
+dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivemul_double_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivemin_double
+dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivemin_double_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivemax_double
+dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivemax_double_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupadd_dvec2
+dEQP-VK.subgroups.arithmetic.compute.subgroupadd_dvec2_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupmul_dvec2
+dEQP-VK.subgroups.arithmetic.compute.subgroupmul_dvec2_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupmin_dvec2
+dEQP-VK.subgroups.arithmetic.compute.subgroupmin_dvec2_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupmax_dvec2
+dEQP-VK.subgroups.arithmetic.compute.subgroupmax_dvec2_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupinclusiveadd_dvec2
+dEQP-VK.subgroups.arithmetic.compute.subgroupinclusiveadd_dvec2_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivemul_dvec2
+dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivemul_dvec2_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivemin_dvec2
+dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivemin_dvec2_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivemax_dvec2
+dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivemax_dvec2_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupexclusiveadd_dvec2
+dEQP-VK.subgroups.arithmetic.compute.subgroupexclusiveadd_dvec2_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivemul_dvec2
+dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivemul_dvec2_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivemin_dvec2
+dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivemin_dvec2_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivemax_dvec2
+dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivemax_dvec2_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupadd_dvec3
+dEQP-VK.subgroups.arithmetic.compute.subgroupadd_dvec3_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupmul_dvec3
+dEQP-VK.subgroups.arithmetic.compute.subgroupmul_dvec3_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupmin_dvec3
+dEQP-VK.subgroups.arithmetic.compute.subgroupmin_dvec3_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupmax_dvec3
+dEQP-VK.subgroups.arithmetic.compute.subgroupmax_dvec3_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupinclusiveadd_dvec3
+dEQP-VK.subgroups.arithmetic.compute.subgroupinclusiveadd_dvec3_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivemul_dvec3
+dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivemul_dvec3_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivemin_dvec3
+dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivemin_dvec3_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivemax_dvec3
+dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivemax_dvec3_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupexclusiveadd_dvec3
+dEQP-VK.subgroups.arithmetic.compute.subgroupexclusiveadd_dvec3_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivemul_dvec3
+dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivemul_dvec3_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivemin_dvec3
+dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivemin_dvec3_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivemax_dvec3
+dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivemax_dvec3_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupadd_dvec4
+dEQP-VK.subgroups.arithmetic.compute.subgroupadd_dvec4_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupmul_dvec4
+dEQP-VK.subgroups.arithmetic.compute.subgroupmul_dvec4_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupmin_dvec4
+dEQP-VK.subgroups.arithmetic.compute.subgroupmin_dvec4_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupmax_dvec4
+dEQP-VK.subgroups.arithmetic.compute.subgroupmax_dvec4_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupinclusiveadd_dvec4
+dEQP-VK.subgroups.arithmetic.compute.subgroupinclusiveadd_dvec4_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivemul_dvec4
+dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivemul_dvec4_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivemin_dvec4
+dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivemin_dvec4_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivemax_dvec4
+dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivemax_dvec4_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupexclusiveadd_dvec4
+dEQP-VK.subgroups.arithmetic.compute.subgroupexclusiveadd_dvec4_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivemul_dvec4
+dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivemul_dvec4_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivemin_dvec4
+dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivemin_dvec4_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivemax_dvec4
+dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivemax_dvec4_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupand_bool
+dEQP-VK.subgroups.arithmetic.compute.subgroupand_bool_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupor_bool
+dEQP-VK.subgroups.arithmetic.compute.subgroupor_bool_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupxor_bool
+dEQP-VK.subgroups.arithmetic.compute.subgroupxor_bool_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupinclusiveand_bool
+dEQP-VK.subgroups.arithmetic.compute.subgroupinclusiveand_bool_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupinclusiveor_bool
+dEQP-VK.subgroups.arithmetic.compute.subgroupinclusiveor_bool_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivexor_bool
+dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivexor_bool_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupexclusiveand_bool
+dEQP-VK.subgroups.arithmetic.compute.subgroupexclusiveand_bool_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupexclusiveor_bool
+dEQP-VK.subgroups.arithmetic.compute.subgroupexclusiveor_bool_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivexor_bool
+dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivexor_bool_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupand_bvec2
+dEQP-VK.subgroups.arithmetic.compute.subgroupand_bvec2_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupor_bvec2
+dEQP-VK.subgroups.arithmetic.compute.subgroupor_bvec2_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupxor_bvec2
+dEQP-VK.subgroups.arithmetic.compute.subgroupxor_bvec2_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupinclusiveand_bvec2
+dEQP-VK.subgroups.arithmetic.compute.subgroupinclusiveand_bvec2_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupinclusiveor_bvec2
+dEQP-VK.subgroups.arithmetic.compute.subgroupinclusiveor_bvec2_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivexor_bvec2
+dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivexor_bvec2_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupexclusiveand_bvec2
+dEQP-VK.subgroups.arithmetic.compute.subgroupexclusiveand_bvec2_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupexclusiveor_bvec2
+dEQP-VK.subgroups.arithmetic.compute.subgroupexclusiveor_bvec2_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivexor_bvec2
+dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivexor_bvec2_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupand_bvec3
+dEQP-VK.subgroups.arithmetic.compute.subgroupand_bvec3_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupor_bvec3
+dEQP-VK.subgroups.arithmetic.compute.subgroupor_bvec3_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupxor_bvec3
+dEQP-VK.subgroups.arithmetic.compute.subgroupxor_bvec3_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupinclusiveand_bvec3
+dEQP-VK.subgroups.arithmetic.compute.subgroupinclusiveand_bvec3_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupinclusiveor_bvec3
+dEQP-VK.subgroups.arithmetic.compute.subgroupinclusiveor_bvec3_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivexor_bvec3
+dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivexor_bvec3_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupexclusiveand_bvec3
+dEQP-VK.subgroups.arithmetic.compute.subgroupexclusiveand_bvec3_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupexclusiveor_bvec3
+dEQP-VK.subgroups.arithmetic.compute.subgroupexclusiveor_bvec3_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivexor_bvec3
+dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivexor_bvec3_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupand_bvec4
+dEQP-VK.subgroups.arithmetic.compute.subgroupand_bvec4_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupor_bvec4
+dEQP-VK.subgroups.arithmetic.compute.subgroupor_bvec4_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupxor_bvec4
+dEQP-VK.subgroups.arithmetic.compute.subgroupxor_bvec4_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupinclusiveand_bvec4
+dEQP-VK.subgroups.arithmetic.compute.subgroupinclusiveand_bvec4_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupinclusiveor_bvec4
+dEQP-VK.subgroups.arithmetic.compute.subgroupinclusiveor_bvec4_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivexor_bvec4
+dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivexor_bvec4_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupexclusiveand_bvec4
+dEQP-VK.subgroups.arithmetic.compute.subgroupexclusiveand_bvec4_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupexclusiveor_bvec4
+dEQP-VK.subgroups.arithmetic.compute.subgroupexclusiveor_bvec4_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivexor_bvec4
+dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivexor_bvec4_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.framebuffer.subgroupadd_int8_t_vertex
 dEQP-VK.subgroups.arithmetic.framebuffer.subgroupadd_int8_t_tess_eval
 dEQP-VK.subgroups.arithmetic.framebuffer.subgroupadd_int8_t_tess_control
@@ -514984,289 +516066,573 @@ dEQP-VK.subgroups.clustered.graphics.subgroupclusteredand_bvec4
 dEQP-VK.subgroups.clustered.graphics.subgroupclusteredor_bvec4
 dEQP-VK.subgroups.clustered.graphics.subgroupclusteredxor_bvec4
 dEQP-VK.subgroups.clustered.compute.subgroupclusteredadd_int8_t
+dEQP-VK.subgroups.clustered.compute.subgroupclusteredadd_int8_t_requiredsubgroupsize
 dEQP-VK.subgroups.clustered.compute.subgroupclusteredmul_int8_t
+dEQP-VK.subgroups.clustered.compute.subgroupclusteredmul_int8_t_requiredsubgroupsize
 dEQP-VK.subgroups.clustered.compute.subgroupclusteredmin_int8_t
+dEQP-VK.subgroups.clustered.compute.subgroupclusteredmin_int8_t_requiredsubgroupsize
 dEQP-VK.subgroups.clustered.compute.subgroupclusteredmax_int8_t
+dEQP-VK.subgroups.clustered.compute.subgroupclusteredmax_int8_t_requiredsubgroupsize
 dEQP-VK.subgroups.clustered.compute.subgroupclusteredand_int8_t
+dEQP-VK.subgroups.clustered.compute.subgroupclusteredand_int8_t_requiredsubgroupsize
 dEQP-VK.subgroups.clustered.compute.subgroupclusteredor_int8_t
+dEQP-VK.subgroups.clustered.compute.subgroupclusteredor_int8_t_requiredsubgroupsize
 dEQP-VK.subgroups.clustered.compute.subgroupclusteredxor_int8_t
+dEQP-VK.subgroups.clustered.compute.subgroupclusteredxor_int8_t_requiredsubgroupsize
 dEQP-VK.subgroups.clustered.compute.subgroupclusteredadd_i8vec2
+dEQP-VK.subgroups.clustered.compute.subgroupclusteredadd_i8vec2_requiredsubgroupsize
 dEQP-VK.subgroups.clustered.compute.subgroupclusteredmul_i8vec2
+dEQP-VK.subgroups.clustered.compute.subgroupclusteredmul_i8vec2_requiredsubgroupsize
 dEQP-VK.subgroups.clustered.compute.subgroupclusteredmin_i8vec2
+dEQP-VK.subgroups.clustered.compute.subgroupclusteredmin_i8vec2_requiredsubgroupsize
 dEQP-VK.subgroups.clustered.compute.subgroupclusteredmax_i8vec2
+dEQP-VK.subgroups.clustered.compute.subgroupclusteredmax_i8vec2_requiredsubgroupsize
 dEQP-VK.subgroups.clustered.compute.subgroupclusteredand_i8vec2
+dEQP-VK.subgroups.clustered.compute.subgroupclusteredand_i8vec2_requiredsubgroupsize
 dEQP-VK.subgroups.clustered.compute.subgroupclusteredor_i8vec2
+dEQP-VK.subgroups.clustered.compute.subgroupclusteredor_i8vec2_requiredsubgroupsize
 dEQP-VK.subgroups.clustered.compute.subgroupclusteredxor_i8vec2
+dEQP-VK.subgroups.clustered.compute.subgroupclusteredxor_i8vec2_requiredsubgroupsize
 dEQP-VK.subgroups.clustered.compute.subgroupclusteredadd_i8vec3
+dEQP-VK.subgroups.clustered.compute.subgroupclusteredadd_i8vec3_requiredsubgroupsize
 dEQP-VK.subgroups.clustered.compute.subgroupclusteredmul_i8vec3
+dEQP-VK.subgroups.clustered.compute.subgroupclusteredmul_i8vec3_requiredsubgroupsize
 dEQP-VK.subgroups.clustered.compute.subgroupclusteredmin_i8vec3
+dEQP-VK.subgroups.clustered.compute.subgroupclusteredmin_i8vec3_requiredsubgroupsize
 dEQP-VK.subgroups.clustered.compute.subgroupclusteredmax_i8vec3
+dEQP-VK.subgroups.clustered.compute.subgroupclusteredmax_i8vec3_requiredsubgroupsize
 dEQP-VK.subgroups.clustered.compute.subgroupclusteredand_i8vec3
+dEQP-VK.subgroups.clustered.compute.subgroupclusteredand_i8vec3_requiredsubgroupsize
 dEQP-VK.subgroups.clustered.compute.subgroupclusteredor_i8vec3
+dEQP-VK.subgroups.clustered.compute.subgroupclusteredor_i8vec3_requiredsubgroupsize
 dEQP-VK.subgroups.clustered.compute.subgroupclusteredxor_i8vec3
+dEQP-VK.subgroups.clustered.compute.subgroupclusteredxor_i8vec3_requiredsubgroupsize
 dEQP-VK.subgroups.clustered.compute.subgroupclusteredadd_i8vec4
+dEQP-VK.subgroups.clustered.compute.subgroupclusteredadd_i8vec4_requiredsubgroupsize
 dEQP-VK.subgroups.clustered.compute.subgroupclusteredmul_i8vec4
+dEQP-VK.subgroups.clustered.compute.subgroupclusteredmul_i8vec4_requiredsubgroupsize
 dEQP-VK.subgroups.clustered.compute.subgroupclusteredmin_i8vec4
+dEQP-VK.subgroups.clustered.compute.subgroupclusteredmin_i8vec4_requiredsubgroupsize
 dEQP-VK.subgroups.clustered.compute.subgroupclusteredmax_i8vec4
+dEQP-VK.subgroups.clustered.compute.subgroupclusteredmax_i8vec4_requiredsubgroupsize
 dEQP-VK.subgroups.clustered.compute.subgroupclusteredand_i8vec4
+dEQP-VK.subgroups.clustered.compute.subgroupclusteredand_i8vec4_requiredsubgroupsize
 dEQP-VK.subgroups.clustered.compute.subgroupclusteredor_i8vec4
+dEQP-VK.subgroups.clustered.compute.subgroupclusteredor_i8vec4_requiredsubgroupsize
 dEQP-VK.subgroups.clustered.compute.subgroupclusteredxor_i8vec4
+dEQP-VK.subgroups.clustered.compute.subgroupclusteredxor_i8vec4_requiredsubgroupsize
 dEQP-VK.subgroups.clustered.compute.subgroupclusteredadd_uint8_t
+dEQP-VK.subgroups.clustered.compute.subgroupclusteredadd_uint8_t_requiredsubgroupsize
 dEQP-VK.subgroups.clustered.compute.subgroupclusteredmul_uint8_t
+dEQP-VK.subgroups.clustered.compute.subgroupclusteredmul_uint8_t_requiredsubgroupsize
 dEQP-VK.subgroups.clustered.compute.subgroupclusteredmin_uint8_t
+dEQP-VK.subgroups.clustered.compute.subgroupclusteredmin_uint8_t_requiredsubgroupsize
 dEQP-VK.subgroups.clustered.compute.subgroupclusteredmax_uint8_t
+dEQP-VK.subgroups.clustered.compute.subgroupclusteredmax_uint8_t_requiredsubgroupsize
 dEQP-VK.subgroups.clustered.compute.subgroupclusteredand_uint8_t
+dEQP-VK.subgroups.clustered.compute.subgroupclusteredand_uint8_t_requiredsubgroupsize
 dEQP-VK.subgroups.clustered.compute.subgroupclusteredor_uint8_t
+dEQP-VK.subgroups.clustered.compute.subgroupclusteredor_uint8_t_requiredsubgroupsize
 dEQP-VK.subgroups.clustered.compute.subgroupclusteredxor_uint8_t
+dEQP-VK.subgroups.clustered.compute.subgroupclusteredxor_uint8_t_requiredsubgroupsize
 dEQP-VK.subgroups.clustered.compute.subgroupclusteredadd_u8vec2
+dEQP-VK.subgroups.clustered.compute.subgroupclusteredadd_u8vec2_requiredsubgroupsize
 dEQP-VK.subgroups.clustered.compute.subgroupclusteredmul_u8vec2
+dEQP-VK.subgroups.clustered.compute.subgroupclusteredmul_u8vec2_requiredsubgroupsize
 dEQP-VK.subgroups.clustered.compute.subgroupclusteredmin_u8vec2
+dEQP-VK.subgroups.clustered.compute.subgroupclusteredmin_u8vec2_requiredsubgroupsize
 dEQP-VK.subgroups.clustered.compute.subgroupclusteredmax_u8vec2
+dEQP-VK.subgroups.clustered.compute.subgroupclusteredmax_u8vec2_requiredsubgroupsize
 dEQP-VK.subgroups.clustered.compute.subgroupclusteredand_u8vec2
+dEQP-VK.subgroups.clustered.compute.subgroupclusteredand_u8vec2_requiredsubgroupsize
 dEQP-VK.subgroups.clustered.compute.subgroupclusteredor_u8vec2
+dEQP-VK.subgroups.clustered.compute.subgroupclusteredor_u8vec2_requiredsubgroupsize
 dEQP-VK.subgroups.clustered.compute.subgroupclusteredxor_u8vec2
+dEQP-VK.subgroups.clustered.compute.subgroupclusteredxor_u8vec2_requiredsubgroupsize
 dEQP-VK.subgroups.clustered.compute.subgroupclusteredadd_u8vec3
+dEQP-VK.subgroups.clustered.compute.subgroupclusteredadd_u8vec3_requiredsubgroupsize
 dEQP-VK.subgroups.clustered.compute.subgroupclusteredmul_u8vec3
+dEQP-VK.subgroups.clustered.compute.subgroupclusteredmul_u8vec3_requiredsubgroupsize
 dEQP-VK.subgroups.clustered.compute.subgroupclusteredmin_u8vec3
+dEQP-VK.subgroups.clustered.compute.subgroupclusteredmin_u8vec3_requiredsubgroupsize
 dEQP-VK.subgroups.clustered.compute.subgroupclusteredmax_u8vec3
+dEQP-VK.subgroups.clustered.compute.subgroupclusteredmax_u8vec3_requiredsubgroupsize
 dEQP-VK.subgroups.clustered.compute.subgroupclusteredand_u8vec3
+dEQP-VK.subgroups.clustered.compute.subgroupclusteredand_u8vec3_requiredsubgroupsize
 dEQP-VK.subgroups.clustered.compute.subgroupclusteredor_u8vec3
+dEQP-VK.subgroups.clustered.compute.subgroupclusteredor_u8vec3_requiredsubgroupsize
 dEQP-VK.subgroups.clustered.compute.subgroupclusteredxor_u8vec3
+dEQP-VK.subgroups.clustered.compute.subgroupclusteredxor_u8vec3_requiredsubgroupsize
 dEQP-VK.subgroups.clustered.compute.subgroupclusteredadd_u8vec4
+dEQP-VK.subgroups.clustered.compute.subgroupclusteredadd_u8vec4_requiredsubgroupsize
 dEQP-VK.subgroups.clustered.compute.subgroupclusteredmul_u8vec4
+dEQP-VK.subgroups.clustered.compute.subgroupclusteredmul_u8vec4_requiredsubgroupsize
 dEQP-VK.subgroups.clustered.compute.subgroupclusteredmin_u8vec4
+dEQP-VK.subgroups.clustered.compute.subgroupclusteredmin_u8vec4_requiredsubgroupsize
 dEQP-VK.subgroups.clustered.compute.subgroupclusteredmax_u8vec4
+dEQP-VK.subgroups.clustered.compute.subgroupclusteredmax_u8vec4_requiredsubgroupsize
 dEQP-VK.subgroups.clustered.compute.subgroupclusteredand_u8vec4
+dEQP-VK.subgroups.clustered.compute.subgroupclusteredand_u8vec4_requiredsubgroupsize
 dEQP-VK.subgroups.clustered.compute.subgroupclusteredor_u8vec4
+dEQP-VK.subgroups.clustered.compute.subgroupclusteredor_u8vec4_requiredsubgroupsize
 dEQP-VK.subgroups.clustered.compute.subgroupclusteredxor_u8vec4
+dEQP-VK.subgroups.clustered.compute.subgroupclusteredxor_u8vec4_requiredsubgroupsize
 dEQP-VK.subgroups.clustered.compute.subgroupclusteredadd_int16_t
+dEQP-VK.subgroups.clustered.compute.subgroupclusteredadd_int16_t_requiredsubgroupsize
 dEQP-VK.subgroups.clustered.compute.subgroupclusteredmul_int16_t
+dEQP-VK.subgroups.clustered.compute.subgroupclusteredmul_int16_t_requiredsubgroupsize
 dEQP-VK.subgroups.clustered.compute.subgroupclusteredmin_int16_t
+dEQP-VK.subgroups.clustered.compute.subgroupclusteredmin_int16_t_requiredsubgroupsize
 dEQP-VK.subgroups.clustered.compute.subgroupclusteredmax_int16_t
+dEQP-VK.subgroups.clustered.compute.subgroupclusteredmax_int16_t_requiredsubgroupsize
 dEQP-VK.subgroups.clustered.compute.subgroupclusteredand_int16_t
+dEQP-VK.subgroups.clustered.compute.subgroupclusteredand_int16_t_requiredsubgroupsize
 dEQP-VK.subgroups.clustered.compute.subgroupclusteredor_int16_t
+dEQP-VK.subgroups.clustered.compute.subgroupclusteredor_int16_t_requiredsubgroupsize
 dEQP-VK.subgroups.clustered.compute.subgroupclusteredxor_int16_t
+dEQP-VK.subgroups.clustered.compute.subgroupclusteredxor_int16_t_requiredsubgroupsize
 dEQP-VK.subgroups.clustered.compute.subgroupclusteredadd_i16vec2
+dEQP-VK.subgroups.clustered.compute.subgroupclusteredadd_i16vec2_requiredsubgroupsize
 dEQP-VK.subgroups.clustered.compute.subgroupclusteredmul_i16vec2
+dEQP-VK.subgroups.clustered.compute.subgroupclusteredmul_i16vec2_requiredsubgroupsize
 dEQP-VK.subgroups.clustered.compute.subgroupclusteredmin_i16vec2
+dEQP-VK.subgroups.clustered.compute.subgroupclusteredmin_i16vec2_requiredsubgroupsize
 dEQP-VK.subgroups.clustered.compute.subgroupclusteredmax_i16vec2
+dEQP-VK.subgroups.clustered.compute.subgroupclusteredmax_i16vec2_requiredsubgroupsize
 dEQP-VK.subgroups.clustered.compute.subgroupclusteredand_i16vec2
+dEQP-VK.subgroups.clustered.compute.subgroupclusteredand_i16vec2_requiredsubgroupsize
 dEQP-VK.subgroups.clustered.compute.subgroupclusteredor_i16vec2
+dEQP-VK.subgroups.clustered.compute.subgroupclusteredor_i16vec2_requiredsubgroupsize
 dEQP-VK.subgroups.clustered.compute.subgroupclusteredxor_i16vec2
+dEQP-VK.subgroups.clustered.compute.subgroupclusteredxor_i16vec2_requiredsubgroupsize
 dEQP-VK.subgroups.clustered.compute.subgroupclusteredadd_i16vec3
+dEQP-VK.subgroups.clustered.compute.subgroupclusteredadd_i16vec3_requiredsubgroupsize
 dEQP-VK.subgroups.clustered.compute.subgroupclusteredmul_i16vec3
+dEQP-VK.subgroups.clustered.compute.subgroupclusteredmul_i16vec3_requiredsubgroupsize
 dEQP-VK.subgroups.clustered.compute.subgroupclusteredmin_i16vec3
+dEQP-VK.subgroups.clustered.compute.subgroupclusteredmin_i16vec3_requiredsubgroupsize
 dEQP-VK.subgroups.clustered.compute.subgroupclusteredmax_i16vec3
+dEQP-VK.subgroups.clustered.compute.subgroupclusteredmax_i16vec3_requiredsubgroupsize
 dEQP-VK.subgroups.clustered.compute.subgroupclusteredand_i16vec3
+dEQP-VK.subgroups.clustered.compute.subgroupclusteredand_i16vec3_requiredsubgroupsize
 dEQP-VK.subgroups.clustered.compute.subgroupclusteredor_i16vec3
+dEQP-VK.subgroups.clustered.compute.subgroupclusteredor_i16vec3_requiredsubgroupsize
 dEQP-VK.subgroups.clustered.compute.subgroupclusteredxor_i16vec3
+dEQP-VK.subgroups.clustered.compute.subgroupclusteredxor_i16vec3_requiredsubgroupsize
 dEQP-VK.subgroups.clustered.compute.subgroupclusteredadd_i16vec4
+dEQP-VK.subgroups.clustered.compute.subgroupclusteredadd_i16vec4_requiredsubgroupsize
 dEQP-VK.subgroups.clustered.compute.subgroupclusteredmul_i16vec4
+dEQP-VK.subgroups.clustered.compute.subgroupclusteredmul_i16vec4_requiredsubgroupsize
 dEQP-VK.subgroups.clustered.compute.subgroupclusteredmin_i16vec4
+dEQP-VK.subgroups.clustered.compute.subgroupclusteredmin_i16vec4_requiredsubgroupsize
 dEQP-VK.subgroups.clustered.compute.subgroupclusteredmax_i16vec4
+dEQP-VK.subgroups.clustered.compute.subgroupclusteredmax_i16vec4_requiredsubgroupsize
 dEQP-VK.subgroups.clustered.compute.subgroupclusteredand_i16vec4
+dEQP-VK.subgroups.clustered.compute.subgroupclusteredand_i16vec4_requiredsubgroupsize
 dEQP-VK.subgroups.clustered.compute.subgroupclusteredor_i16vec4
+dEQP-VK.subgroups.clustered.compute.subgroupclusteredor_i16vec4_requiredsubgroupsize
 dEQP-VK.subgroups.clustered.compute.subgroupclusteredxor_i16vec4
+dEQP-VK.subgroups.clustered.compute.subgroupclusteredxor_i16vec4_requiredsubgroupsize
 dEQP-VK.subgroups.clustered.compute.subgroupclusteredadd_uint16_t
+dEQP-VK.subgroups.clustered.compute.subgroupclusteredadd_uint16_t_requiredsubgroupsize
 dEQP-VK.subgroups.clustered.compute.subgroupclusteredmul_uint16_t
+dEQP-VK.subgroups.clustered.compute.subgroupclusteredmul_uint16_t_requiredsubgroupsize
 dEQP-VK.subgroups.clustered.compute.subgroupclusteredmin_uint16_t
+dEQP-VK.subgroups.clustered.compute.subgroupclusteredmin_uint16_t_requiredsubgroupsize
 dEQP-VK.subgroups.clustered.compute.subgroupclusteredmax_uint16_t
+dEQP-VK.subgroups.clustered.compute.subgroupclusteredmax_uint16_t_requiredsubgroupsize
 dEQP-VK.subgroups.clustered.compute.subgroupclusteredand_uint16_t
+dEQP-VK.subgroups.clustered.compute.subgroupclusteredand_uint16_t_requiredsubgroupsize
 dEQP-VK.subgroups.clustered.compute.subgroupclusteredor_uint16_t
+dEQP-VK.subgroups.clustered.compute.subgroupclusteredor_uint16_t_requiredsubgroupsize
 dEQP-VK.subgroups.clustered.compute.subgroupclusteredxor_uint16_t
+dEQP-VK.subgroups.clustered.compute.subgroupclusteredxor_uint16_t_requiredsubgroupsize
 dEQP-VK.subgroups.clustered.compute.subgroupclusteredadd_u16vec2
+dEQP-VK.subgroups.clustered.compute.subgroupclusteredadd_u16vec2_requiredsubgroupsize
 dEQP-VK.subgroups.clustered.compute.subgroupclusteredmul_u16vec2
+dEQP-VK.subgroups.clustered.compute.subgroupclusteredmul_u16vec2_requiredsubgroupsize
 dEQP-VK.subgroups.clustered.compute.subgroupclusteredmin_u16vec2
+dEQP-VK.subgroups.clustered.compute.subgroupclusteredmin_u16vec2_requiredsubgroupsize
 dEQP-VK.subgroups.clustered.compute.subgroupclusteredmax_u16vec2
+dEQP-VK.subgroups.clustered.compute.subgroupclusteredmax_u16vec2_requiredsubgroupsize
 dEQP-VK.subgroups.clustered.compute.subgroupclusteredand_u16vec2
+dEQP-VK.subgroups.clustered.compute.subgroupclusteredand_u16vec2_requiredsubgroupsize
 dEQP-VK.subgroups.clustered.compute.subgroupclusteredor_u16vec2
+dEQP-VK.subgroups.clustered.compute.subgroupclusteredor_u16vec2_requiredsubgroupsize
 dEQP-VK.subgroups.clustered.compute.subgroupclusteredxor_u16vec2
+dEQP-VK.subgroups.clustered.compute.subgroupclusteredxor_u16vec2_requiredsubgroupsize
 dEQP-VK.subgroups.clustered.compute.subgroupclusteredadd_u16vec3
+dEQP-VK.subgroups.clustered.compute.subgroupclusteredadd_u16vec3_requiredsubgroupsize
 dEQP-VK.subgroups.clustered.compute.subgroupclusteredmul_u16vec3
+dEQP-VK.subgroups.clustered.compute.subgroupclusteredmul_u16vec3_requiredsubgroupsize
 dEQP-VK.subgroups.clustered.compute.subgroupclusteredmin_u16vec3
+dEQP-VK.subgroups.clustered.compute.subgroupclusteredmin_u16vec3_requiredsubgroupsize
 dEQP-VK.subgroups.clustered.compute.subgroupclusteredmax_u16vec3
+dEQP-VK.subgroups.clustered.compute.subgroupclusteredmax_u16vec3_requiredsubgroupsize
 dEQP-VK.subgroups.clustered.compute.subgroupclusteredand_u16vec3
+dEQP-VK.subgroups.clustered.compute.subgroupclusteredand_u16vec3_requiredsubgroupsize
 dEQP-VK.subgroups.clustered.compute.subgroupclusteredor_u16vec3
+dEQP-VK.subgroups.clustered.compute.subgroupclusteredor_u16vec3_requiredsubgroupsize
 dEQP-VK.subgroups.clustered.compute.subgroupclusteredxor_u16vec3
+dEQP-VK.subgroups.clustered.compute.subgroupclusteredxor_u16vec3_requiredsubgroupsize
 dEQP-VK.subgroups.clustered.compute.subgroupclusteredadd_u16vec4
+dEQP-VK.subgroups.clustered.compute.subgroupclusteredadd_u16vec4_requiredsubgroupsize
 dEQP-VK.subgroups.clustered.compute.subgroupclusteredmul_u16vec4
+dEQP-VK.subgroups.clustered.compute.subgroupclusteredmul_u16vec4_requiredsubgroupsize
 dEQP-VK.subgroups.clustered.compute.subgroupclusteredmin_u16vec4
+dEQP-VK.subgroups.clustered.compute.subgroupclusteredmin_u16vec4_requiredsubgroupsize
 dEQP-VK.subgroups.clustered.compute.subgroupclusteredmax_u16vec4
+dEQP-VK.subgroups.clustered.compute.subgroupclusteredmax_u16vec4_requiredsubgroupsize
 dEQP-VK.subgroups.clustered.compute.subgroupclusteredand_u16vec4
+dEQP-VK.subgroups.clustered.compute.subgroupclusteredand_u16vec4_requiredsubgroupsize
 dEQP-VK.subgroups.clustered.compute.subgroupclusteredor_u16vec4
+dEQP-VK.subgroups.clustered.compute.subgroupclusteredor_u16vec4_requiredsubgroupsize
 dEQP-VK.subgroups.clustered.compute.subgroupclusteredxor_u16vec4
+dEQP-VK.subgroups.clustered.compute.subgroupclusteredxor_u16vec4_requiredsubgroupsize
 dEQP-VK.subgroups.clustered.compute.subgroupclusteredadd_int
+dEQP-VK.subgroups.clustered.compute.subgroupclusteredadd_int_requiredsubgroupsize
 dEQP-VK.subgroups.clustered.compute.subgroupclusteredmul_int
+dEQP-VK.subgroups.clustered.compute.subgroupclusteredmul_int_requiredsubgroupsize
 dEQP-VK.subgroups.clustered.compute.subgroupclusteredmin_int
+dEQP-VK.subgroups.clustered.compute.subgroupclusteredmin_int_requiredsubgroupsize
 dEQP-VK.subgroups.clustered.compute.subgroupclusteredmax_int
+dEQP-VK.subgroups.clustered.compute.subgroupclusteredmax_int_requiredsubgroupsize
 dEQP-VK.subgroups.clustered.compute.subgroupclusteredand_int
+dEQP-VK.subgroups.clustered.compute.subgroupclusteredand_int_requiredsubgroupsize
 dEQP-VK.subgroups.clustered.compute.subgroupclusteredor_int
+dEQP-VK.subgroups.clustered.compute.subgroupclusteredor_int_requiredsubgroupsize
 dEQP-VK.subgroups.clustered.compute.subgroupclusteredxor_int
+dEQP-VK.subgroups.clustered.compute.subgroupclusteredxor_int_requiredsubgroupsize
 dEQP-VK.subgroups.clustered.compute.subgroupclusteredadd_ivec2
+dEQP-VK.subgroups.clustered.compute.subgroupclusteredadd_ivec2_requiredsubgroupsize
 dEQP-VK.subgroups.clustered.compute.subgroupclusteredmul_ivec2
+dEQP-VK.subgroups.clustered.compute.subgroupclusteredmul_ivec2_requiredsubgroupsize
 dEQP-VK.subgroups.clustered.compute.subgroupclusteredmin_ivec2
+dEQP-VK.subgroups.clustered.compute.subgroupclusteredmin_ivec2_requiredsubgroupsize
 dEQP-VK.subgroups.clustered.compute.subgroupclusteredmax_ivec2
+dEQP-VK.subgroups.clustered.compute.subgroupclusteredmax_ivec2_requiredsubgroupsize
 dEQP-VK.subgroups.clustered.compute.subgroupclusteredand_ivec2
+dEQP-VK.subgroups.clustered.compute.subgroupclusteredand_ivec2_requiredsubgroupsize
 dEQP-VK.subgroups.clustered.compute.subgroupclusteredor_ivec2
+dEQP-VK.subgroups.clustered.compute.subgroupclusteredor_ivec2_requiredsubgroupsize
 dEQP-VK.subgroups.clustered.compute.subgroupclusteredxor_ivec2
+dEQP-VK.subgroups.clustered.compute.subgroupclusteredxor_ivec2_requiredsubgroupsize
 dEQP-VK.subgroups.clustered.compute.subgroupclusteredadd_ivec3
+dEQP-VK.subgroups.clustered.compute.subgroupclusteredadd_ivec3_requiredsubgroupsize
 dEQP-VK.subgroups.clustered.compute.subgroupclusteredmul_ivec3
+dEQP-VK.subgroups.clustered.compute.subgroupclusteredmul_ivec3_requiredsubgroupsize
 dEQP-VK.subgroups.clustered.compute.subgroupclusteredmin_ivec3
+dEQP-VK.subgroups.clustered.compute.subgroupclusteredmin_ivec3_requiredsubgroupsize
 dEQP-VK.subgroups.clustered.compute.subgroupclusteredmax_ivec3
+dEQP-VK.subgroups.clustered.compute.subgroupclusteredmax_ivec3_requiredsubgroupsize
 dEQP-VK.subgroups.clustered.compute.subgroupclusteredand_ivec3
+dEQP-VK.subgroups.clustered.compute.subgroupclusteredand_ivec3_requiredsubgroupsize
 dEQP-VK.subgroups.clustered.compute.subgroupclusteredor_ivec3
+dEQP-VK.subgroups.clustered.compute.subgroupclusteredor_ivec3_requiredsubgroupsize
 dEQP-VK.subgroups.clustered.compute.subgroupclusteredxor_ivec3
+dEQP-VK.subgroups.clustered.compute.subgroupclusteredxor_ivec3_requiredsubgroupsize
 dEQP-VK.subgroups.clustered.compute.subgroupclusteredadd_ivec4
+dEQP-VK.subgroups.clustered.compute.subgroupclusteredadd_ivec4_requiredsubgroupsize
 dEQP-VK.subgroups.clustered.compute.subgroupclusteredmul_ivec4
+dEQP-VK.subgroups.clustered.compute.subgroupclusteredmul_ivec4_requiredsubgroupsize
 dEQP-VK.subgroups.clustered.compute.subgroupclusteredmin_ivec4
+dEQP-VK.subgroups.clustered.compute.subgroupclusteredmin_ivec4_requiredsubgroupsize
 dEQP-VK.subgroups.clustered.compute.subgroupclusteredmax_ivec4
+dEQP-VK.subgroups.clustered.compute.subgroupclusteredmax_ivec4_requiredsubgroupsize
 dEQP-VK.subgroups.clustered.compute.subgroupclusteredand_ivec4
+dEQP-VK.subgroups.clustered.compute.subgroupclusteredand_ivec4_requiredsubgroupsize
 dEQP-VK.subgroups.clustered.compute.subgroupclusteredor_ivec4
+dEQP-VK.subgroups.clustered.compute.subgroupclusteredor_ivec4_requiredsubgroupsize
 dEQP-VK.subgroups.clustered.compute.subgroupclusteredxor_ivec4
+dEQP-VK.subgroups.clustered.compute.subgroupclusteredxor_ivec4_requiredsubgroupsize
 dEQP-VK.subgroups.clustered.compute.subgroupclusteredadd_uint
+dEQP-VK.subgroups.clustered.compute.subgroupclusteredadd_uint_requiredsubgroupsize
 dEQP-VK.subgroups.clustered.compute.subgroupclusteredmul_uint
+dEQP-VK.subgroups.clustered.compute.subgroupclusteredmul_uint_requiredsubgroupsize
 dEQP-VK.subgroups.clustered.compute.subgroupclusteredmin_uint
+dEQP-VK.subgroups.clustered.compute.subgroupclusteredmin_uint_requiredsubgroupsize
 dEQP-VK.subgroups.clustered.compute.subgroupclusteredmax_uint
+dEQP-VK.subgroups.clustered.compute.subgroupclusteredmax_uint_requiredsubgroupsize
 dEQP-VK.subgroups.clustered.compute.subgroupclusteredand_uint
+dEQP-VK.subgroups.clustered.compute.subgroupclusteredand_uint_requiredsubgroupsize
 dEQP-VK.subgroups.clustered.compute.subgroupclusteredor_uint
+dEQP-VK.subgroups.clustered.compute.subgroupclusteredor_uint_requiredsubgroupsize
 dEQP-VK.subgroups.clustered.compute.subgroupclusteredxor_uint
+dEQP-VK.subgroups.clustered.compute.subgroupclusteredxor_uint_requiredsubgroupsize
 dEQP-VK.subgroups.clustered.compute.subgroupclusteredadd_uvec2
+dEQP-VK.subgroups.clustered.compute.subgroupclusteredadd_uvec2_requiredsubgroupsize
 dEQP-VK.subgroups.clustered.compute.subgroupclusteredmul_uvec2
+dEQP-VK.subgroups.clustered.compute.subgroupclusteredmul_uvec2_requiredsubgroupsize
 dEQP-VK.subgroups.clustered.compute.subgroupclusteredmin_uvec2
+dEQP-VK.subgroups.clustered.compute.subgroupclusteredmin_uvec2_requiredsubgroupsize
 dEQP-VK.subgroups.clustered.compute.subgroupclusteredmax_uvec2
+dEQP-VK.subgroups.clustered.compute.subgroupclusteredmax_uvec2_requiredsubgroupsize
 dEQP-VK.subgroups.clustered.compute.subgroupclusteredand_uvec2
+dEQP-VK.subgroups.clustered.compute.subgroupclusteredand_uvec2_requiredsubgroupsize
 dEQP-VK.subgroups.clustered.compute.subgroupclusteredor_uvec2
+dEQP-VK.subgroups.clustered.compute.subgroupclusteredor_uvec2_requiredsubgroupsize
 dEQP-VK.subgroups.clustered.compute.subgroupclusteredxor_uvec2
+dEQP-VK.subgroups.clustered.compute.subgroupclusteredxor_uvec2_requiredsubgroupsize
 dEQP-VK.subgroups.clustered.compute.subgroupclusteredadd_uvec3
+dEQP-VK.subgroups.clustered.compute.subgroupclusteredadd_uvec3_requiredsubgroupsize
 dEQP-VK.subgroups.clustered.compute.subgroupclusteredmul_uvec3
+dEQP-VK.subgroups.clustered.compute.subgroupclusteredmul_uvec3_requiredsubgroupsize
 dEQP-VK.subgroups.clustered.compute.subgroupclusteredmin_uvec3
+dEQP-VK.subgroups.clustered.compute.subgroupclusteredmin_uvec3_requiredsubgroupsize
 dEQP-VK.subgroups.clustered.compute.subgroupclusteredmax_uvec3
+dEQP-VK.subgroups.clustered.compute.subgroupclusteredmax_uvec3_requiredsubgroupsize
 dEQP-VK.subgroups.clustered.compute.subgroupclusteredand_uvec3
+dEQP-VK.subgroups.clustered.compute.subgroupclusteredand_uvec3_requiredsubgroupsize
 dEQP-VK.subgroups.clustered.compute.subgroupclusteredor_uvec3
+dEQP-VK.subgroups.clustered.compute.subgroupclusteredor_uvec3_requiredsubgroupsize
 dEQP-VK.subgroups.clustered.compute.subgroupclusteredxor_uvec3
+dEQP-VK.subgroups.clustered.compute.subgroupclusteredxor_uvec3_requiredsubgroupsize
 dEQP-VK.subgroups.clustered.compute.subgroupclusteredadd_uvec4
+dEQP-VK.subgroups.clustered.compute.subgroupclusteredadd_uvec4_requiredsubgroupsize
 dEQP-VK.subgroups.clustered.compute.subgroupclusteredmul_uvec4
+dEQP-VK.subgroups.clustered.compute.subgroupclusteredmul_uvec4_requiredsubgroupsize
 dEQP-VK.subgroups.clustered.compute.subgroupclusteredmin_uvec4
+dEQP-VK.subgroups.clustered.compute.subgroupclusteredmin_uvec4_requiredsubgroupsize
 dEQP-VK.subgroups.clustered.compute.subgroupclusteredmax_uvec4
+dEQP-VK.subgroups.clustered.compute.subgroupclusteredmax_uvec4_requiredsubgroupsize
 dEQP-VK.subgroups.clustered.compute.subgroupclusteredand_uvec4
+dEQP-VK.subgroups.clustered.compute.subgroupclusteredand_uvec4_requiredsubgroupsize
 dEQP-VK.subgroups.clustered.compute.subgroupclusteredor_uvec4
+dEQP-VK.subgroups.clustered.compute.subgroupclusteredor_uvec4_requiredsubgroupsize
 dEQP-VK.subgroups.clustered.compute.subgroupclusteredxor_uvec4
+dEQP-VK.subgroups.clustered.compute.subgroupclusteredxor_uvec4_requiredsubgroupsize
 dEQP-VK.subgroups.clustered.compute.subgroupclusteredadd_int64_t
+dEQP-VK.subgroups.clustered.compute.subgroupclusteredadd_int64_t_requiredsubgroupsize
 dEQP-VK.subgroups.clustered.compute.subgroupclusteredmul_int64_t
+dEQP-VK.subgroups.clustered.compute.subgroupclusteredmul_int64_t_requiredsubgroupsize
 dEQP-VK.subgroups.clustered.compute.subgroupclusteredmin_int64_t
+dEQP-VK.subgroups.clustered.compute.subgroupclusteredmin_int64_t_requiredsubgroupsize
 dEQP-VK.subgroups.clustered.compute.subgroupclusteredmax_int64_t
+dEQP-VK.subgroups.clustered.compute.subgroupclusteredmax_int64_t_requiredsubgroupsize
 dEQP-VK.subgroups.clustered.compute.subgroupclusteredand_int64_t
+dEQP-VK.subgroups.clustered.compute.subgroupclusteredand_int64_t_requiredsubgroupsize
 dEQP-VK.subgroups.clustered.compute.subgroupclusteredor_int64_t
+dEQP-VK.subgroups.clustered.compute.subgroupclusteredor_int64_t_requiredsubgroupsize
 dEQP-VK.subgroups.clustered.compute.subgroupclusteredxor_int64_t
+dEQP-VK.subgroups.clustered.compute.subgroupclusteredxor_int64_t_requiredsubgroupsize
 dEQP-VK.subgroups.clustered.compute.subgroupclusteredadd_i64vec2
+dEQP-VK.subgroups.clustered.compute.subgroupclusteredadd_i64vec2_requiredsubgroupsize
 dEQP-VK.subgroups.clustered.compute.subgroupclusteredmul_i64vec2
+dEQP-VK.subgroups.clustered.compute.subgroupclusteredmul_i64vec2_requiredsubgroupsize
 dEQP-VK.subgroups.clustered.compute.subgroupclusteredmin_i64vec2
+dEQP-VK.subgroups.clustered.compute.subgroupclusteredmin_i64vec2_requiredsubgroupsize
 dEQP-VK.subgroups.clustered.compute.subgroupclusteredmax_i64vec2
+dEQP-VK.subgroups.clustered.compute.subgroupclusteredmax_i64vec2_requiredsubgroupsize
 dEQP-VK.subgroups.clustered.compute.subgroupclusteredand_i64vec2
+dEQP-VK.subgroups.clustered.compute.subgroupclusteredand_i64vec2_requiredsubgroupsize
 dEQP-VK.subgroups.clustered.compute.subgroupclusteredor_i64vec2
+dEQP-VK.subgroups.clustered.compute.subgroupclusteredor_i64vec2_requiredsubgroupsize
 dEQP-VK.subgroups.clustered.compute.subgroupclusteredxor_i64vec2
+dEQP-VK.subgroups.clustered.compute.subgroupclusteredxor_i64vec2_requiredsubgroupsize
 dEQP-VK.subgroups.clustered.compute.subgroupclusteredadd_i64vec3
+dEQP-VK.subgroups.clustered.compute.subgroupclusteredadd_i64vec3_requiredsubgroupsize
 dEQP-VK.subgroups.clustered.compute.subgroupclusteredmul_i64vec3
+dEQP-VK.subgroups.clustered.compute.subgroupclusteredmul_i64vec3_requiredsubgroupsize
 dEQP-VK.subgroups.clustered.compute.subgroupclusteredmin_i64vec3
+dEQP-VK.subgroups.clustered.compute.subgroupclusteredmin_i64vec3_requiredsubgroupsize
 dEQP-VK.subgroups.clustered.compute.subgroupclusteredmax_i64vec3
+dEQP-VK.subgroups.clustered.compute.subgroupclusteredmax_i64vec3_requiredsubgroupsize
 dEQP-VK.subgroups.clustered.compute.subgroupclusteredand_i64vec3
+dEQP-VK.subgroups.clustered.compute.subgroupclusteredand_i64vec3_requiredsubgroupsize
 dEQP-VK.subgroups.clustered.compute.subgroupclusteredor_i64vec3
+dEQP-VK.subgroups.clustered.compute.subgroupclusteredor_i64vec3_requiredsubgroupsize
 dEQP-VK.subgroups.clustered.compute.subgroupclusteredxor_i64vec3
+dEQP-VK.subgroups.clustered.compute.subgroupclusteredxor_i64vec3_requiredsubgroupsize
 dEQP-VK.subgroups.clustered.compute.subgroupclusteredadd_i64vec4
+dEQP-VK.subgroups.clustered.compute.subgroupclusteredadd_i64vec4_requiredsubgroupsize
 dEQP-VK.subgroups.clustered.compute.subgroupclusteredmul_i64vec4
+dEQP-VK.subgroups.clustered.compute.subgroupclusteredmul_i64vec4_requiredsubgroupsize
 dEQP-VK.subgroups.clustered.compute.subgroupclusteredmin_i64vec4
+dEQP-VK.subgroups.clustered.compute.subgroupclusteredmin_i64vec4_requiredsubgroupsize
 dEQP-VK.subgroups.clustered.compute.subgroupclusteredmax_i64vec4
+dEQP-VK.subgroups.clustered.compute.subgroupclusteredmax_i64vec4_requiredsubgroupsize
 dEQP-VK.subgroups.clustered.compute.subgroupclusteredand_i64vec4
+dEQP-VK.subgroups.clustered.compute.subgroupclusteredand_i64vec4_requiredsubgroupsize
 dEQP-VK.subgroups.clustered.compute.subgroupclusteredor_i64vec4
+dEQP-VK.subgroups.clustered.compute.subgroupclusteredor_i64vec4_requiredsubgroupsize
 dEQP-VK.subgroups.clustered.compute.subgroupclusteredxor_i64vec4
+dEQP-VK.subgroups.clustered.compute.subgroupclusteredxor_i64vec4_requiredsubgroupsize
 dEQP-VK.subgroups.clustered.compute.subgroupclusteredadd_uint64_t
+dEQP-VK.subgroups.clustered.compute.subgroupclusteredadd_uint64_t_requiredsubgroupsize
 dEQP-VK.subgroups.clustered.compute.subgroupclusteredmul_uint64_t
+dEQP-VK.subgroups.clustered.compute.subgroupclusteredmul_uint64_t_requiredsubgroupsize
 dEQP-VK.subgroups.clustered.compute.subgroupclusteredmin_uint64_t
+dEQP-VK.subgroups.clustered.compute.subgroupclusteredmin_uint64_t_requiredsubgroupsize
 dEQP-VK.subgroups.clustered.compute.subgroupclusteredmax_uint64_t
+dEQP-VK.subgroups.clustered.compute.subgroupclusteredmax_uint64_t_requiredsubgroupsize
 dEQP-VK.subgroups.clustered.compute.subgroupclusteredand_uint64_t
+dEQP-VK.subgroups.clustered.compute.subgroupclusteredand_uint64_t_requiredsubgroupsize
 dEQP-VK.subgroups.clustered.compute.subgroupclusteredor_uint64_t
+dEQP-VK.subgroups.clustered.compute.subgroupclusteredor_uint64_t_requiredsubgroupsize
 dEQP-VK.subgroups.clustered.compute.subgroupclusteredxor_uint64_t
+dEQP-VK.subgroups.clustered.compute.subgroupclusteredxor_uint64_t_requiredsubgroupsize
 dEQP-VK.subgroups.clustered.compute.subgroupclusteredadd_u64vec2
+dEQP-VK.subgroups.clustered.compute.subgroupclusteredadd_u64vec2_requiredsubgroupsize
 dEQP-VK.subgroups.clustered.compute.subgroupclusteredmul_u64vec2
+dEQP-VK.subgroups.clustered.compute.subgroupclusteredmul_u64vec2_requiredsubgroupsize
 dEQP-VK.subgroups.clustered.compute.subgroupclusteredmin_u64vec2
+dEQP-VK.subgroups.clustered.compute.subgroupclusteredmin_u64vec2_requiredsubgroupsize
 dEQP-VK.subgroups.clustered.compute.subgroupclusteredmax_u64vec2
+dEQP-VK.subgroups.clustered.compute.subgroupclusteredmax_u64vec2_requiredsubgroupsize
 dEQP-VK.subgroups.clustered.compute.subgroupclusteredand_u64vec2
+dEQP-VK.subgroups.clustered.compute.subgroupclusteredand_u64vec2_requiredsubgroupsize
 dEQP-VK.subgroups.clustered.compute.subgroupclusteredor_u64vec2
+dEQP-VK.subgroups.clustered.compute.subgroupclusteredor_u64vec2_requiredsubgroupsize
 dEQP-VK.subgroups.clustered.compute.subgroupclusteredxor_u64vec2
+dEQP-VK.subgroups.clustered.compute.subgroupclusteredxor_u64vec2_requiredsubgroupsize
 dEQP-VK.subgroups.clustered.compute.subgroupclusteredadd_u64vec3
+dEQP-VK.subgroups.clustered.compute.subgroupclusteredadd_u64vec3_requiredsubgroupsize
 dEQP-VK.subgroups.clustered.compute.subgroupclusteredmul_u64vec3
+dEQP-VK.subgroups.clustered.compute.subgroupclusteredmul_u64vec3_requiredsubgroupsize
 dEQP-VK.subgroups.clustered.compute.subgroupclusteredmin_u64vec3
+dEQP-VK.subgroups.clustered.compute.subgroupclusteredmin_u64vec3_requiredsubgroupsize
 dEQP-VK.subgroups.clustered.compute.subgroupclusteredmax_u64vec3
+dEQP-VK.subgroups.clustered.compute.subgroupclusteredmax_u64vec3_requiredsubgroupsize
 dEQP-VK.subgroups.clustered.compute.subgroupclusteredand_u64vec3
+dEQP-VK.subgroups.clustered.compute.subgroupclusteredand_u64vec3_requiredsubgroupsize
 dEQP-VK.subgroups.clustered.compute.subgroupclusteredor_u64vec3
+dEQP-VK.subgroups.clustered.compute.subgroupclusteredor_u64vec3_requiredsubgroupsize
 dEQP-VK.subgroups.clustered.compute.subgroupclusteredxor_u64vec3
+dEQP-VK.subgroups.clustered.compute.subgroupclusteredxor_u64vec3_requiredsubgroupsize
 dEQP-VK.subgroups.clustered.compute.subgroupclusteredadd_u64vec4
+dEQP-VK.subgroups.clustered.compute.subgroupclusteredadd_u64vec4_requiredsubgroupsize
 dEQP-VK.subgroups.clustered.compute.subgroupclusteredmul_u64vec4
+dEQP-VK.subgroups.clustered.compute.subgroupclusteredmul_u64vec4_requiredsubgroupsize
 dEQP-VK.subgroups.clustered.compute.subgroupclusteredmin_u64vec4
+dEQP-VK.subgroups.clustered.compute.subgroupclusteredmin_u64vec4_requiredsubgroupsize
 dEQP-VK.subgroups.clustered.compute.subgroupclusteredmax_u64vec4
+dEQP-VK.subgroups.clustered.compute.subgroupclusteredmax_u64vec4_requiredsubgroupsize
 dEQP-VK.subgroups.clustered.compute.subgroupclusteredand_u64vec4
+dEQP-VK.subgroups.clustered.compute.subgroupclusteredand_u64vec4_requiredsubgroupsize
 dEQP-VK.subgroups.clustered.compute.subgroupclusteredor_u64vec4
+dEQP-VK.subgroups.clustered.compute.subgroupclusteredor_u64vec4_requiredsubgroupsize
 dEQP-VK.subgroups.clustered.compute.subgroupclusteredxor_u64vec4
+dEQP-VK.subgroups.clustered.compute.subgroupclusteredxor_u64vec4_requiredsubgroupsize
 dEQP-VK.subgroups.clustered.compute.subgroupclusteredadd_float16_t
+dEQP-VK.subgroups.clustered.compute.subgroupclusteredadd_float16_t_requiredsubgroupsize
 dEQP-VK.subgroups.clustered.compute.subgroupclusteredmul_float16_t
+dEQP-VK.subgroups.clustered.compute.subgroupclusteredmul_float16_t_requiredsubgroupsize
 dEQP-VK.subgroups.clustered.compute.subgroupclusteredmin_float16_t
+dEQP-VK.subgroups.clustered.compute.subgroupclusteredmin_float16_t_requiredsubgroupsize
 dEQP-VK.subgroups.clustered.compute.subgroupclusteredmax_float16_t
+dEQP-VK.subgroups.clustered.compute.subgroupclusteredmax_float16_t_requiredsubgroupsize
 dEQP-VK.subgroups.clustered.compute.subgroupclusteredadd_f16vec2
+dEQP-VK.subgroups.clustered.compute.subgroupclusteredadd_f16vec2_requiredsubgroupsize
 dEQP-VK.subgroups.clustered.compute.subgroupclusteredmul_f16vec2
+dEQP-VK.subgroups.clustered.compute.subgroupclusteredmul_f16vec2_requiredsubgroupsize
 dEQP-VK.subgroups.clustered.compute.subgroupclusteredmin_f16vec2
+dEQP-VK.subgroups.clustered.compute.subgroupclusteredmin_f16vec2_requiredsubgroupsize
 dEQP-VK.subgroups.clustered.compute.subgroupclusteredmax_f16vec2
+dEQP-VK.subgroups.clustered.compute.subgroupclusteredmax_f16vec2_requiredsubgroupsize
 dEQP-VK.subgroups.clustered.compute.subgroupclusteredadd_f16vec3
+dEQP-VK.subgroups.clustered.compute.subgroupclusteredadd_f16vec3_requiredsubgroupsize
 dEQP-VK.subgroups.clustered.compute.subgroupclusteredmul_f16vec3
+dEQP-VK.subgroups.clustered.compute.subgroupclusteredmul_f16vec3_requiredsubgroupsize
 dEQP-VK.subgroups.clustered.compute.subgroupclusteredmin_f16vec3
+dEQP-VK.subgroups.clustered.compute.subgroupclusteredmin_f16vec3_requiredsubgroupsize
 dEQP-VK.subgroups.clustered.compute.subgroupclusteredmax_f16vec3
+dEQP-VK.subgroups.clustered.compute.subgroupclusteredmax_f16vec3_requiredsubgroupsize
 dEQP-VK.subgroups.clustered.compute.subgroupclusteredadd_f16vec4
+dEQP-VK.subgroups.clustered.compute.subgroupclusteredadd_f16vec4_requiredsubgroupsize
 dEQP-VK.subgroups.clustered.compute.subgroupclusteredmul_f16vec4
+dEQP-VK.subgroups.clustered.compute.subgroupclusteredmul_f16vec4_requiredsubgroupsize
 dEQP-VK.subgroups.clustered.compute.subgroupclusteredmin_f16vec4
+dEQP-VK.subgroups.clustered.compute.subgroupclusteredmin_f16vec4_requiredsubgroupsize
 dEQP-VK.subgroups.clustered.compute.subgroupclusteredmax_f16vec4
+dEQP-VK.subgroups.clustered.compute.subgroupclusteredmax_f16vec4_requiredsubgroupsize
 dEQP-VK.subgroups.clustered.compute.subgroupclusteredadd_float
+dEQP-VK.subgroups.clustered.compute.subgroupclusteredadd_float_requiredsubgroupsize
 dEQP-VK.subgroups.clustered.compute.subgroupclusteredmul_float
+dEQP-VK.subgroups.clustered.compute.subgroupclusteredmul_float_requiredsubgroupsize
 dEQP-VK.subgroups.clustered.compute.subgroupclusteredmin_float
+dEQP-VK.subgroups.clustered.compute.subgroupclusteredmin_float_requiredsubgroupsize
 dEQP-VK.subgroups.clustered.compute.subgroupclusteredmax_float
+dEQP-VK.subgroups.clustered.compute.subgroupclusteredmax_float_requiredsubgroupsize
 dEQP-VK.subgroups.clustered.compute.subgroupclusteredadd_vec2
+dEQP-VK.subgroups.clustered.compute.subgroupclusteredadd_vec2_requiredsubgroupsize
 dEQP-VK.subgroups.clustered.compute.subgroupclusteredmul_vec2
+dEQP-VK.subgroups.clustered.compute.subgroupclusteredmul_vec2_requiredsubgroupsize
 dEQP-VK.subgroups.clustered.compute.subgroupclusteredmin_vec2
+dEQP-VK.subgroups.clustered.compute.subgroupclusteredmin_vec2_requiredsubgroupsize
 dEQP-VK.subgroups.clustered.compute.subgroupclusteredmax_vec2
+dEQP-VK.subgroups.clustered.compute.subgroupclusteredmax_vec2_requiredsubgroupsize
 dEQP-VK.subgroups.clustered.compute.subgroupclusteredadd_vec3
+dEQP-VK.subgroups.clustered.compute.subgroupclusteredadd_vec3_requiredsubgroupsize
 dEQP-VK.subgroups.clustered.compute.subgroupclusteredmul_vec3
+dEQP-VK.subgroups.clustered.compute.subgroupclusteredmul_vec3_requiredsubgroupsize
 dEQP-VK.subgroups.clustered.compute.subgroupclusteredmin_vec3
+dEQP-VK.subgroups.clustered.compute.subgroupclusteredmin_vec3_requiredsubgroupsize
 dEQP-VK.subgroups.clustered.compute.subgroupclusteredmax_vec3
+dEQP-VK.subgroups.clustered.compute.subgroupclusteredmax_vec3_requiredsubgroupsize
 dEQP-VK.subgroups.clustered.compute.subgroupclusteredadd_vec4
+dEQP-VK.subgroups.clustered.compute.subgroupclusteredadd_vec4_requiredsubgroupsize
 dEQP-VK.subgroups.clustered.compute.subgroupclusteredmul_vec4
+dEQP-VK.subgroups.clustered.compute.subgroupclusteredmul_vec4_requiredsubgroupsize
 dEQP-VK.subgroups.clustered.compute.subgroupclusteredmin_vec4
+dEQP-VK.subgroups.clustered.compute.subgroupclusteredmin_vec4_requiredsubgroupsize
 dEQP-VK.subgroups.clustered.compute.subgroupclusteredmax_vec4
+dEQP-VK.subgroups.clustered.compute.subgroupclusteredmax_vec4_requiredsubgroupsize
 dEQP-VK.subgroups.clustered.compute.subgroupclusteredadd_double
+dEQP-VK.subgroups.clustered.compute.subgroupclusteredadd_double_requiredsubgroupsize
 dEQP-VK.subgroups.clustered.compute.subgroupclusteredmul_double
+dEQP-VK.subgroups.clustered.compute.subgroupclusteredmul_double_requiredsubgroupsize
 dEQP-VK.subgroups.clustered.compute.subgroupclusteredmin_double
+dEQP-VK.subgroups.clustered.compute.subgroupclusteredmin_double_requiredsubgroupsize
 dEQP-VK.subgroups.clustered.compute.subgroupclusteredmax_double
+dEQP-VK.subgroups.clustered.compute.subgroupclusteredmax_double_requiredsubgroupsize
 dEQP-VK.subgroups.clustered.compute.subgroupclusteredadd_dvec2
+dEQP-VK.subgroups.clustered.compute.subgroupclusteredadd_dvec2_requiredsubgroupsize
 dEQP-VK.subgroups.clustered.compute.subgroupclusteredmul_dvec2
+dEQP-VK.subgroups.clustered.compute.subgroupclusteredmul_dvec2_requiredsubgroupsize
 dEQP-VK.subgroups.clustered.compute.subgroupclusteredmin_dvec2
+dEQP-VK.subgroups.clustered.compute.subgroupclusteredmin_dvec2_requiredsubgroupsize
 dEQP-VK.subgroups.clustered.compute.subgroupclusteredmax_dvec2
+dEQP-VK.subgroups.clustered.compute.subgroupclusteredmax_dvec2_requiredsubgroupsize
 dEQP-VK.subgroups.clustered.compute.subgroupclusteredadd_dvec3
+dEQP-VK.subgroups.clustered.compute.subgroupclusteredadd_dvec3_requiredsubgroupsize
 dEQP-VK.subgroups.clustered.compute.subgroupclusteredmul_dvec3
+dEQP-VK.subgroups.clustered.compute.subgroupclusteredmul_dvec3_requiredsubgroupsize
 dEQP-VK.subgroups.clustered.compute.subgroupclusteredmin_dvec3
+dEQP-VK.subgroups.clustered.compute.subgroupclusteredmin_dvec3_requiredsubgroupsize
 dEQP-VK.subgroups.clustered.compute.subgroupclusteredmax_dvec3
+dEQP-VK.subgroups.clustered.compute.subgroupclusteredmax_dvec3_requiredsubgroupsize
 dEQP-VK.subgroups.clustered.compute.subgroupclusteredadd_dvec4
+dEQP-VK.subgroups.clustered.compute.subgroupclusteredadd_dvec4_requiredsubgroupsize
 dEQP-VK.subgroups.clustered.compute.subgroupclusteredmul_dvec4
+dEQP-VK.subgroups.clustered.compute.subgroupclusteredmul_dvec4_requiredsubgroupsize
 dEQP-VK.subgroups.clustered.compute.subgroupclusteredmin_dvec4
+dEQP-VK.subgroups.clustered.compute.subgroupclusteredmin_dvec4_requiredsubgroupsize
 dEQP-VK.subgroups.clustered.compute.subgroupclusteredmax_dvec4
+dEQP-VK.subgroups.clustered.compute.subgroupclusteredmax_dvec4_requiredsubgroupsize
 dEQP-VK.subgroups.clustered.compute.subgroupclusteredand_bool
+dEQP-VK.subgroups.clustered.compute.subgroupclusteredand_bool_requiredsubgroupsize
 dEQP-VK.subgroups.clustered.compute.subgroupclusteredor_bool
+dEQP-VK.subgroups.clustered.compute.subgroupclusteredor_bool_requiredsubgroupsize
 dEQP-VK.subgroups.clustered.compute.subgroupclusteredxor_bool
+dEQP-VK.subgroups.clustered.compute.subgroupclusteredxor_bool_requiredsubgroupsize
 dEQP-VK.subgroups.clustered.compute.subgroupclusteredand_bvec2
+dEQP-VK.subgroups.clustered.compute.subgroupclusteredand_bvec2_requiredsubgroupsize
 dEQP-VK.subgroups.clustered.compute.subgroupclusteredor_bvec2
+dEQP-VK.subgroups.clustered.compute.subgroupclusteredor_bvec2_requiredsubgroupsize
 dEQP-VK.subgroups.clustered.compute.subgroupclusteredxor_bvec2
+dEQP-VK.subgroups.clustered.compute.subgroupclusteredxor_bvec2_requiredsubgroupsize
 dEQP-VK.subgroups.clustered.compute.subgroupclusteredand_bvec3
+dEQP-VK.subgroups.clustered.compute.subgroupclusteredand_bvec3_requiredsubgroupsize
 dEQP-VK.subgroups.clustered.compute.subgroupclusteredor_bvec3
+dEQP-VK.subgroups.clustered.compute.subgroupclusteredor_bvec3_requiredsubgroupsize
 dEQP-VK.subgroups.clustered.compute.subgroupclusteredxor_bvec3
+dEQP-VK.subgroups.clustered.compute.subgroupclusteredxor_bvec3_requiredsubgroupsize
 dEQP-VK.subgroups.clustered.compute.subgroupclusteredand_bvec4
+dEQP-VK.subgroups.clustered.compute.subgroupclusteredand_bvec4_requiredsubgroupsize
 dEQP-VK.subgroups.clustered.compute.subgroupclusteredor_bvec4
+dEQP-VK.subgroups.clustered.compute.subgroupclusteredor_bvec4_requiredsubgroupsize
 dEQP-VK.subgroups.clustered.compute.subgroupclusteredxor_bvec4
+dEQP-VK.subgroups.clustered.compute.subgroupclusteredxor_bvec4_requiredsubgroupsize
 dEQP-VK.subgroups.clustered.framebuffer.subgroupclusteredadd_int8_t_vertex
 dEQP-VK.subgroups.clustered.framebuffer.subgroupclusteredadd_int8_t_tess_eval
 dEQP-VK.subgroups.clustered.framebuffer.subgroupclusteredadd_int8_t_tess_control
@@ -517256,857 +518622,1709 @@ dEQP-VK.subgroups.partitioned.graphics.subgroupexclusiveand_bvec4
 dEQP-VK.subgroups.partitioned.graphics.subgroupexclusiveor_bvec4
 dEQP-VK.subgroups.partitioned.graphics.subgroupexclusivexor_bvec4
 dEQP-VK.subgroups.partitioned.compute.subgroupadd_int8_t
+dEQP-VK.subgroups.partitioned.compute.subgroupadd_int8_t_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupmul_int8_t
+dEQP-VK.subgroups.partitioned.compute.subgroupmul_int8_t_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupmin_int8_t
+dEQP-VK.subgroups.partitioned.compute.subgroupmin_int8_t_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupmax_int8_t
+dEQP-VK.subgroups.partitioned.compute.subgroupmax_int8_t_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupand_int8_t
+dEQP-VK.subgroups.partitioned.compute.subgroupand_int8_t_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupor_int8_t
+dEQP-VK.subgroups.partitioned.compute.subgroupor_int8_t_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupxor_int8_t
+dEQP-VK.subgroups.partitioned.compute.subgroupxor_int8_t_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupinclusiveadd_int8_t
+dEQP-VK.subgroups.partitioned.compute.subgroupinclusiveadd_int8_t_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupinclusivemul_int8_t
+dEQP-VK.subgroups.partitioned.compute.subgroupinclusivemul_int8_t_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupinclusivemin_int8_t
+dEQP-VK.subgroups.partitioned.compute.subgroupinclusivemin_int8_t_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupinclusivemax_int8_t
+dEQP-VK.subgroups.partitioned.compute.subgroupinclusivemax_int8_t_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupinclusiveand_int8_t
+dEQP-VK.subgroups.partitioned.compute.subgroupinclusiveand_int8_t_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupinclusiveor_int8_t
+dEQP-VK.subgroups.partitioned.compute.subgroupinclusiveor_int8_t_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupinclusivexor_int8_t
+dEQP-VK.subgroups.partitioned.compute.subgroupinclusivexor_int8_t_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupexclusiveadd_int8_t
+dEQP-VK.subgroups.partitioned.compute.subgroupexclusiveadd_int8_t_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupexclusivemul_int8_t
+dEQP-VK.subgroups.partitioned.compute.subgroupexclusivemul_int8_t_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupexclusivemin_int8_t
+dEQP-VK.subgroups.partitioned.compute.subgroupexclusivemin_int8_t_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupexclusivemax_int8_t
+dEQP-VK.subgroups.partitioned.compute.subgroupexclusivemax_int8_t_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupexclusiveand_int8_t
+dEQP-VK.subgroups.partitioned.compute.subgroupexclusiveand_int8_t_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupexclusiveor_int8_t
+dEQP-VK.subgroups.partitioned.compute.subgroupexclusiveor_int8_t_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupexclusivexor_int8_t
+dEQP-VK.subgroups.partitioned.compute.subgroupexclusivexor_int8_t_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupadd_i8vec2
+dEQP-VK.subgroups.partitioned.compute.subgroupadd_i8vec2_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupmul_i8vec2
+dEQP-VK.subgroups.partitioned.compute.subgroupmul_i8vec2_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupmin_i8vec2
+dEQP-VK.subgroups.partitioned.compute.subgroupmin_i8vec2_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupmax_i8vec2
+dEQP-VK.subgroups.partitioned.compute.subgroupmax_i8vec2_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupand_i8vec2
+dEQP-VK.subgroups.partitioned.compute.subgroupand_i8vec2_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupor_i8vec2
+dEQP-VK.subgroups.partitioned.compute.subgroupor_i8vec2_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupxor_i8vec2
+dEQP-VK.subgroups.partitioned.compute.subgroupxor_i8vec2_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupinclusiveadd_i8vec2
+dEQP-VK.subgroups.partitioned.compute.subgroupinclusiveadd_i8vec2_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupinclusivemul_i8vec2
+dEQP-VK.subgroups.partitioned.compute.subgroupinclusivemul_i8vec2_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupinclusivemin_i8vec2
+dEQP-VK.subgroups.partitioned.compute.subgroupinclusivemin_i8vec2_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupinclusivemax_i8vec2
+dEQP-VK.subgroups.partitioned.compute.subgroupinclusivemax_i8vec2_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupinclusiveand_i8vec2
+dEQP-VK.subgroups.partitioned.compute.subgroupinclusiveand_i8vec2_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupinclusiveor_i8vec2
+dEQP-VK.subgroups.partitioned.compute.subgroupinclusiveor_i8vec2_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupinclusivexor_i8vec2
+dEQP-VK.subgroups.partitioned.compute.subgroupinclusivexor_i8vec2_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupexclusiveadd_i8vec2
+dEQP-VK.subgroups.partitioned.compute.subgroupexclusiveadd_i8vec2_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupexclusivemul_i8vec2
+dEQP-VK.subgroups.partitioned.compute.subgroupexclusivemul_i8vec2_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupexclusivemin_i8vec2
+dEQP-VK.subgroups.partitioned.compute.subgroupexclusivemin_i8vec2_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupexclusivemax_i8vec2
+dEQP-VK.subgroups.partitioned.compute.subgroupexclusivemax_i8vec2_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupexclusiveand_i8vec2
+dEQP-VK.subgroups.partitioned.compute.subgroupexclusiveand_i8vec2_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupexclusiveor_i8vec2
+dEQP-VK.subgroups.partitioned.compute.subgroupexclusiveor_i8vec2_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupexclusivexor_i8vec2
+dEQP-VK.subgroups.partitioned.compute.subgroupexclusivexor_i8vec2_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupadd_i8vec3
+dEQP-VK.subgroups.partitioned.compute.subgroupadd_i8vec3_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupmul_i8vec3
+dEQP-VK.subgroups.partitioned.compute.subgroupmul_i8vec3_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupmin_i8vec3
+dEQP-VK.subgroups.partitioned.compute.subgroupmin_i8vec3_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupmax_i8vec3
+dEQP-VK.subgroups.partitioned.compute.subgroupmax_i8vec3_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupand_i8vec3
+dEQP-VK.subgroups.partitioned.compute.subgroupand_i8vec3_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupor_i8vec3
+dEQP-VK.subgroups.partitioned.compute.subgroupor_i8vec3_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupxor_i8vec3
+dEQP-VK.subgroups.partitioned.compute.subgroupxor_i8vec3_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupinclusiveadd_i8vec3
+dEQP-VK.subgroups.partitioned.compute.subgroupinclusiveadd_i8vec3_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupinclusivemul_i8vec3
+dEQP-VK.subgroups.partitioned.compute.subgroupinclusivemul_i8vec3_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupinclusivemin_i8vec3
+dEQP-VK.subgroups.partitioned.compute.subgroupinclusivemin_i8vec3_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupinclusivemax_i8vec3
+dEQP-VK.subgroups.partitioned.compute.subgroupinclusivemax_i8vec3_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupinclusiveand_i8vec3
+dEQP-VK.subgroups.partitioned.compute.subgroupinclusiveand_i8vec3_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupinclusiveor_i8vec3
+dEQP-VK.subgroups.partitioned.compute.subgroupinclusiveor_i8vec3_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupinclusivexor_i8vec3
+dEQP-VK.subgroups.partitioned.compute.subgroupinclusivexor_i8vec3_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupexclusiveadd_i8vec3
+dEQP-VK.subgroups.partitioned.compute.subgroupexclusiveadd_i8vec3_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupexclusivemul_i8vec3
+dEQP-VK.subgroups.partitioned.compute.subgroupexclusivemul_i8vec3_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupexclusivemin_i8vec3
+dEQP-VK.subgroups.partitioned.compute.subgroupexclusivemin_i8vec3_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupexclusivemax_i8vec3
+dEQP-VK.subgroups.partitioned.compute.subgroupexclusivemax_i8vec3_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupexclusiveand_i8vec3
+dEQP-VK.subgroups.partitioned.compute.subgroupexclusiveand_i8vec3_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupexclusiveor_i8vec3
+dEQP-VK.subgroups.partitioned.compute.subgroupexclusiveor_i8vec3_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupexclusivexor_i8vec3
+dEQP-VK.subgroups.partitioned.compute.subgroupexclusivexor_i8vec3_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupadd_i8vec4
+dEQP-VK.subgroups.partitioned.compute.subgroupadd_i8vec4_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupmul_i8vec4
+dEQP-VK.subgroups.partitioned.compute.subgroupmul_i8vec4_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupmin_i8vec4
+dEQP-VK.subgroups.partitioned.compute.subgroupmin_i8vec4_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupmax_i8vec4
+dEQP-VK.subgroups.partitioned.compute.subgroupmax_i8vec4_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupand_i8vec4
+dEQP-VK.subgroups.partitioned.compute.subgroupand_i8vec4_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupor_i8vec4
+dEQP-VK.subgroups.partitioned.compute.subgroupor_i8vec4_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupxor_i8vec4
+dEQP-VK.subgroups.partitioned.compute.subgroupxor_i8vec4_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupinclusiveadd_i8vec4
+dEQP-VK.subgroups.partitioned.compute.subgroupinclusiveadd_i8vec4_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupinclusivemul_i8vec4
+dEQP-VK.subgroups.partitioned.compute.subgroupinclusivemul_i8vec4_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupinclusivemin_i8vec4
+dEQP-VK.subgroups.partitioned.compute.subgroupinclusivemin_i8vec4_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupinclusivemax_i8vec4
+dEQP-VK.subgroups.partitioned.compute.subgroupinclusivemax_i8vec4_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupinclusiveand_i8vec4
+dEQP-VK.subgroups.partitioned.compute.subgroupinclusiveand_i8vec4_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupinclusiveor_i8vec4
+dEQP-VK.subgroups.partitioned.compute.subgroupinclusiveor_i8vec4_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupinclusivexor_i8vec4
+dEQP-VK.subgroups.partitioned.compute.subgroupinclusivexor_i8vec4_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupexclusiveadd_i8vec4
+dEQP-VK.subgroups.partitioned.compute.subgroupexclusiveadd_i8vec4_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupexclusivemul_i8vec4
+dEQP-VK.subgroups.partitioned.compute.subgroupexclusivemul_i8vec4_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupexclusivemin_i8vec4
+dEQP-VK.subgroups.partitioned.compute.subgroupexclusivemin_i8vec4_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupexclusivemax_i8vec4
+dEQP-VK.subgroups.partitioned.compute.subgroupexclusivemax_i8vec4_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupexclusiveand_i8vec4
+dEQP-VK.subgroups.partitioned.compute.subgroupexclusiveand_i8vec4_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupexclusiveor_i8vec4
+dEQP-VK.subgroups.partitioned.compute.subgroupexclusiveor_i8vec4_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupexclusivexor_i8vec4
+dEQP-VK.subgroups.partitioned.compute.subgroupexclusivexor_i8vec4_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupadd_uint8_t
+dEQP-VK.subgroups.partitioned.compute.subgroupadd_uint8_t_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupmul_uint8_t
+dEQP-VK.subgroups.partitioned.compute.subgroupmul_uint8_t_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupmin_uint8_t
+dEQP-VK.subgroups.partitioned.compute.subgroupmin_uint8_t_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupmax_uint8_t
+dEQP-VK.subgroups.partitioned.compute.subgroupmax_uint8_t_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupand_uint8_t
+dEQP-VK.subgroups.partitioned.compute.subgroupand_uint8_t_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupor_uint8_t
+dEQP-VK.subgroups.partitioned.compute.subgroupor_uint8_t_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupxor_uint8_t
+dEQP-VK.subgroups.partitioned.compute.subgroupxor_uint8_t_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupinclusiveadd_uint8_t
+dEQP-VK.subgroups.partitioned.compute.subgroupinclusiveadd_uint8_t_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupinclusivemul_uint8_t
+dEQP-VK.subgroups.partitioned.compute.subgroupinclusivemul_uint8_t_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupinclusivemin_uint8_t
+dEQP-VK.subgroups.partitioned.compute.subgroupinclusivemin_uint8_t_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupinclusivemax_uint8_t
+dEQP-VK.subgroups.partitioned.compute.subgroupinclusivemax_uint8_t_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupinclusiveand_uint8_t
+dEQP-VK.subgroups.partitioned.compute.subgroupinclusiveand_uint8_t_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupinclusiveor_uint8_t
+dEQP-VK.subgroups.partitioned.compute.subgroupinclusiveor_uint8_t_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupinclusivexor_uint8_t
+dEQP-VK.subgroups.partitioned.compute.subgroupinclusivexor_uint8_t_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupexclusiveadd_uint8_t
+dEQP-VK.subgroups.partitioned.compute.subgroupexclusiveadd_uint8_t_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupexclusivemul_uint8_t
+dEQP-VK.subgroups.partitioned.compute.subgroupexclusivemul_uint8_t_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupexclusivemin_uint8_t
+dEQP-VK.subgroups.partitioned.compute.subgroupexclusivemin_uint8_t_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupexclusivemax_uint8_t
+dEQP-VK.subgroups.partitioned.compute.subgroupexclusivemax_uint8_t_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupexclusiveand_uint8_t
+dEQP-VK.subgroups.partitioned.compute.subgroupexclusiveand_uint8_t_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupexclusiveor_uint8_t
+dEQP-VK.subgroups.partitioned.compute.subgroupexclusiveor_uint8_t_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupexclusivexor_uint8_t
+dEQP-VK.subgroups.partitioned.compute.subgroupexclusivexor_uint8_t_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupadd_u8vec2
+dEQP-VK.subgroups.partitioned.compute.subgroupadd_u8vec2_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupmul_u8vec2
+dEQP-VK.subgroups.partitioned.compute.subgroupmul_u8vec2_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupmin_u8vec2
+dEQP-VK.subgroups.partitioned.compute.subgroupmin_u8vec2_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupmax_u8vec2
+dEQP-VK.subgroups.partitioned.compute.subgroupmax_u8vec2_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupand_u8vec2
+dEQP-VK.subgroups.partitioned.compute.subgroupand_u8vec2_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupor_u8vec2
+dEQP-VK.subgroups.partitioned.compute.subgroupor_u8vec2_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupxor_u8vec2
+dEQP-VK.subgroups.partitioned.compute.subgroupxor_u8vec2_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupinclusiveadd_u8vec2
+dEQP-VK.subgroups.partitioned.compute.subgroupinclusiveadd_u8vec2_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupinclusivemul_u8vec2
+dEQP-VK.subgroups.partitioned.compute.subgroupinclusivemul_u8vec2_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupinclusivemin_u8vec2
+dEQP-VK.subgroups.partitioned.compute.subgroupinclusivemin_u8vec2_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupinclusivemax_u8vec2
+dEQP-VK.subgroups.partitioned.compute.subgroupinclusivemax_u8vec2_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupinclusiveand_u8vec2
+dEQP-VK.subgroups.partitioned.compute.subgroupinclusiveand_u8vec2_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupinclusiveor_u8vec2
+dEQP-VK.subgroups.partitioned.compute.subgroupinclusiveor_u8vec2_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupinclusivexor_u8vec2
+dEQP-VK.subgroups.partitioned.compute.subgroupinclusivexor_u8vec2_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupexclusiveadd_u8vec2
+dEQP-VK.subgroups.partitioned.compute.subgroupexclusiveadd_u8vec2_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupexclusivemul_u8vec2
+dEQP-VK.subgroups.partitioned.compute.subgroupexclusivemul_u8vec2_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupexclusivemin_u8vec2
+dEQP-VK.subgroups.partitioned.compute.subgroupexclusivemin_u8vec2_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupexclusivemax_u8vec2
+dEQP-VK.subgroups.partitioned.compute.subgroupexclusivemax_u8vec2_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupexclusiveand_u8vec2
+dEQP-VK.subgroups.partitioned.compute.subgroupexclusiveand_u8vec2_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupexclusiveor_u8vec2
+dEQP-VK.subgroups.partitioned.compute.subgroupexclusiveor_u8vec2_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupexclusivexor_u8vec2
+dEQP-VK.subgroups.partitioned.compute.subgroupexclusivexor_u8vec2_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupadd_u8vec3
+dEQP-VK.subgroups.partitioned.compute.subgroupadd_u8vec3_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupmul_u8vec3
+dEQP-VK.subgroups.partitioned.compute.subgroupmul_u8vec3_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupmin_u8vec3
+dEQP-VK.subgroups.partitioned.compute.subgroupmin_u8vec3_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupmax_u8vec3
+dEQP-VK.subgroups.partitioned.compute.subgroupmax_u8vec3_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupand_u8vec3
+dEQP-VK.subgroups.partitioned.compute.subgroupand_u8vec3_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupor_u8vec3
+dEQP-VK.subgroups.partitioned.compute.subgroupor_u8vec3_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupxor_u8vec3
+dEQP-VK.subgroups.partitioned.compute.subgroupxor_u8vec3_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupinclusiveadd_u8vec3
+dEQP-VK.subgroups.partitioned.compute.subgroupinclusiveadd_u8vec3_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupinclusivemul_u8vec3
+dEQP-VK.subgroups.partitioned.compute.subgroupinclusivemul_u8vec3_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupinclusivemin_u8vec3
+dEQP-VK.subgroups.partitioned.compute.subgroupinclusivemin_u8vec3_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupinclusivemax_u8vec3
+dEQP-VK.subgroups.partitioned.compute.subgroupinclusivemax_u8vec3_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupinclusiveand_u8vec3
+dEQP-VK.subgroups.partitioned.compute.subgroupinclusiveand_u8vec3_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupinclusiveor_u8vec3
+dEQP-VK.subgroups.partitioned.compute.subgroupinclusiveor_u8vec3_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupinclusivexor_u8vec3
+dEQP-VK.subgroups.partitioned.compute.subgroupinclusivexor_u8vec3_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupexclusiveadd_u8vec3
+dEQP-VK.subgroups.partitioned.compute.subgroupexclusiveadd_u8vec3_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupexclusivemul_u8vec3
+dEQP-VK.subgroups.partitioned.compute.subgroupexclusivemul_u8vec3_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupexclusivemin_u8vec3
+dEQP-VK.subgroups.partitioned.compute.subgroupexclusivemin_u8vec3_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupexclusivemax_u8vec3
+dEQP-VK.subgroups.partitioned.compute.subgroupexclusivemax_u8vec3_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupexclusiveand_u8vec3
+dEQP-VK.subgroups.partitioned.compute.subgroupexclusiveand_u8vec3_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupexclusiveor_u8vec3
+dEQP-VK.subgroups.partitioned.compute.subgroupexclusiveor_u8vec3_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupexclusivexor_u8vec3
+dEQP-VK.subgroups.partitioned.compute.subgroupexclusivexor_u8vec3_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupadd_u8vec4
+dEQP-VK.subgroups.partitioned.compute.subgroupadd_u8vec4_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupmul_u8vec4
+dEQP-VK.subgroups.partitioned.compute.subgroupmul_u8vec4_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupmin_u8vec4
+dEQP-VK.subgroups.partitioned.compute.subgroupmin_u8vec4_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupmax_u8vec4
+dEQP-VK.subgroups.partitioned.compute.subgroupmax_u8vec4_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupand_u8vec4
+dEQP-VK.subgroups.partitioned.compute.subgroupand_u8vec4_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupor_u8vec4
+dEQP-VK.subgroups.partitioned.compute.subgroupor_u8vec4_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupxor_u8vec4
+dEQP-VK.subgroups.partitioned.compute.subgroupxor_u8vec4_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupinclusiveadd_u8vec4
+dEQP-VK.subgroups.partitioned.compute.subgroupinclusiveadd_u8vec4_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupinclusivemul_u8vec4
+dEQP-VK.subgroups.partitioned.compute.subgroupinclusivemul_u8vec4_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupinclusivemin_u8vec4
+dEQP-VK.subgroups.partitioned.compute.subgroupinclusivemin_u8vec4_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupinclusivemax_u8vec4
+dEQP-VK.subgroups.partitioned.compute.subgroupinclusivemax_u8vec4_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupinclusiveand_u8vec4
+dEQP-VK.subgroups.partitioned.compute.subgroupinclusiveand_u8vec4_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupinclusiveor_u8vec4
+dEQP-VK.subgroups.partitioned.compute.subgroupinclusiveor_u8vec4_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupinclusivexor_u8vec4
+dEQP-VK.subgroups.partitioned.compute.subgroupinclusivexor_u8vec4_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupexclusiveadd_u8vec4
+dEQP-VK.subgroups.partitioned.compute.subgroupexclusiveadd_u8vec4_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupexclusivemul_u8vec4
+dEQP-VK.subgroups.partitioned.compute.subgroupexclusivemul_u8vec4_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupexclusivemin_u8vec4
+dEQP-VK.subgroups.partitioned.compute.subgroupexclusivemin_u8vec4_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupexclusivemax_u8vec4
+dEQP-VK.subgroups.partitioned.compute.subgroupexclusivemax_u8vec4_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupexclusiveand_u8vec4
+dEQP-VK.subgroups.partitioned.compute.subgroupexclusiveand_u8vec4_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupexclusiveor_u8vec4
+dEQP-VK.subgroups.partitioned.compute.subgroupexclusiveor_u8vec4_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupexclusivexor_u8vec4
+dEQP-VK.subgroups.partitioned.compute.subgroupexclusivexor_u8vec4_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupadd_int16_t
+dEQP-VK.subgroups.partitioned.compute.subgroupadd_int16_t_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupmul_int16_t
+dEQP-VK.subgroups.partitioned.compute.subgroupmul_int16_t_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupmin_int16_t
+dEQP-VK.subgroups.partitioned.compute.subgroupmin_int16_t_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupmax_int16_t
+dEQP-VK.subgroups.partitioned.compute.subgroupmax_int16_t_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupand_int16_t
+dEQP-VK.subgroups.partitioned.compute.subgroupand_int16_t_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupor_int16_t
+dEQP-VK.subgroups.partitioned.compute.subgroupor_int16_t_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupxor_int16_t
+dEQP-VK.subgroups.partitioned.compute.subgroupxor_int16_t_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupinclusiveadd_int16_t
+dEQP-VK.subgroups.partitioned.compute.subgroupinclusiveadd_int16_t_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupinclusivemul_int16_t
+dEQP-VK.subgroups.partitioned.compute.subgroupinclusivemul_int16_t_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupinclusivemin_int16_t
+dEQP-VK.subgroups.partitioned.compute.subgroupinclusivemin_int16_t_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupinclusivemax_int16_t
+dEQP-VK.subgroups.partitioned.compute.subgroupinclusivemax_int16_t_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupinclusiveand_int16_t
+dEQP-VK.subgroups.partitioned.compute.subgroupinclusiveand_int16_t_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupinclusiveor_int16_t
+dEQP-VK.subgroups.partitioned.compute.subgroupinclusiveor_int16_t_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupinclusivexor_int16_t
+dEQP-VK.subgroups.partitioned.compute.subgroupinclusivexor_int16_t_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupexclusiveadd_int16_t
+dEQP-VK.subgroups.partitioned.compute.subgroupexclusiveadd_int16_t_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupexclusivemul_int16_t
+dEQP-VK.subgroups.partitioned.compute.subgroupexclusivemul_int16_t_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupexclusivemin_int16_t
+dEQP-VK.subgroups.partitioned.compute.subgroupexclusivemin_int16_t_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupexclusivemax_int16_t
+dEQP-VK.subgroups.partitioned.compute.subgroupexclusivemax_int16_t_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupexclusiveand_int16_t
+dEQP-VK.subgroups.partitioned.compute.subgroupexclusiveand_int16_t_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupexclusiveor_int16_t
+dEQP-VK.subgroups.partitioned.compute.subgroupexclusiveor_int16_t_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupexclusivexor_int16_t
+dEQP-VK.subgroups.partitioned.compute.subgroupexclusivexor_int16_t_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupadd_i16vec2
+dEQP-VK.subgroups.partitioned.compute.subgroupadd_i16vec2_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupmul_i16vec2
+dEQP-VK.subgroups.partitioned.compute.subgroupmul_i16vec2_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupmin_i16vec2
+dEQP-VK.subgroups.partitioned.compute.subgroupmin_i16vec2_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupmax_i16vec2
+dEQP-VK.subgroups.partitioned.compute.subgroupmax_i16vec2_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupand_i16vec2
+dEQP-VK.subgroups.partitioned.compute.subgroupand_i16vec2_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupor_i16vec2
+dEQP-VK.subgroups.partitioned.compute.subgroupor_i16vec2_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupxor_i16vec2
+dEQP-VK.subgroups.partitioned.compute.subgroupxor_i16vec2_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupinclusiveadd_i16vec2
+dEQP-VK.subgroups.partitioned.compute.subgroupinclusiveadd_i16vec2_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupinclusivemul_i16vec2
+dEQP-VK.subgroups.partitioned.compute.subgroupinclusivemul_i16vec2_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupinclusivemin_i16vec2
+dEQP-VK.subgroups.partitioned.compute.subgroupinclusivemin_i16vec2_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupinclusivemax_i16vec2
+dEQP-VK.subgroups.partitioned.compute.subgroupinclusivemax_i16vec2_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupinclusiveand_i16vec2
+dEQP-VK.subgroups.partitioned.compute.subgroupinclusiveand_i16vec2_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupinclusiveor_i16vec2
+dEQP-VK.subgroups.partitioned.compute.subgroupinclusiveor_i16vec2_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupinclusivexor_i16vec2
+dEQP-VK.subgroups.partitioned.compute.subgroupinclusivexor_i16vec2_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupexclusiveadd_i16vec2
+dEQP-VK.subgroups.partitioned.compute.subgroupexclusiveadd_i16vec2_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupexclusivemul_i16vec2
+dEQP-VK.subgroups.partitioned.compute.subgroupexclusivemul_i16vec2_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupexclusivemin_i16vec2
+dEQP-VK.subgroups.partitioned.compute.subgroupexclusivemin_i16vec2_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupexclusivemax_i16vec2
+dEQP-VK.subgroups.partitioned.compute.subgroupexclusivemax_i16vec2_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupexclusiveand_i16vec2
+dEQP-VK.subgroups.partitioned.compute.subgroupexclusiveand_i16vec2_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupexclusiveor_i16vec2
+dEQP-VK.subgroups.partitioned.compute.subgroupexclusiveor_i16vec2_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupexclusivexor_i16vec2
+dEQP-VK.subgroups.partitioned.compute.subgroupexclusivexor_i16vec2_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupadd_i16vec3
+dEQP-VK.subgroups.partitioned.compute.subgroupadd_i16vec3_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupmul_i16vec3
+dEQP-VK.subgroups.partitioned.compute.subgroupmul_i16vec3_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupmin_i16vec3
+dEQP-VK.subgroups.partitioned.compute.subgroupmin_i16vec3_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupmax_i16vec3
+dEQP-VK.subgroups.partitioned.compute.subgroupmax_i16vec3_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupand_i16vec3
+dEQP-VK.subgroups.partitioned.compute.subgroupand_i16vec3_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupor_i16vec3
+dEQP-VK.subgroups.partitioned.compute.subgroupor_i16vec3_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupxor_i16vec3
+dEQP-VK.subgroups.partitioned.compute.subgroupxor_i16vec3_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupinclusiveadd_i16vec3
+dEQP-VK.subgroups.partitioned.compute.subgroupinclusiveadd_i16vec3_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupinclusivemul_i16vec3
+dEQP-VK.subgroups.partitioned.compute.subgroupinclusivemul_i16vec3_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupinclusivemin_i16vec3
+dEQP-VK.subgroups.partitioned.compute.subgroupinclusivemin_i16vec3_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupinclusivemax_i16vec3
+dEQP-VK.subgroups.partitioned.compute.subgroupinclusivemax_i16vec3_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupinclusiveand_i16vec3
+dEQP-VK.subgroups.partitioned.compute.subgroupinclusiveand_i16vec3_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupinclusiveor_i16vec3
+dEQP-VK.subgroups.partitioned.compute.subgroupinclusiveor_i16vec3_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupinclusivexor_i16vec3
+dEQP-VK.subgroups.partitioned.compute.subgroupinclusivexor_i16vec3_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupexclusiveadd_i16vec3
+dEQP-VK.subgroups.partitioned.compute.subgroupexclusiveadd_i16vec3_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupexclusivemul_i16vec3
+dEQP-VK.subgroups.partitioned.compute.subgroupexclusivemul_i16vec3_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupexclusivemin_i16vec3
+dEQP-VK.subgroups.partitioned.compute.subgroupexclusivemin_i16vec3_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupexclusivemax_i16vec3
+dEQP-VK.subgroups.partitioned.compute.subgroupexclusivemax_i16vec3_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupexclusiveand_i16vec3
+dEQP-VK.subgroups.partitioned.compute.subgroupexclusiveand_i16vec3_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupexclusiveor_i16vec3
+dEQP-VK.subgroups.partitioned.compute.subgroupexclusiveor_i16vec3_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupexclusivexor_i16vec3
+dEQP-VK.subgroups.partitioned.compute.subgroupexclusivexor_i16vec3_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupadd_i16vec4
+dEQP-VK.subgroups.partitioned.compute.subgroupadd_i16vec4_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupmul_i16vec4
+dEQP-VK.subgroups.partitioned.compute.subgroupmul_i16vec4_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupmin_i16vec4
+dEQP-VK.subgroups.partitioned.compute.subgroupmin_i16vec4_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupmax_i16vec4
+dEQP-VK.subgroups.partitioned.compute.subgroupmax_i16vec4_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupand_i16vec4
+dEQP-VK.subgroups.partitioned.compute.subgroupand_i16vec4_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupor_i16vec4
+dEQP-VK.subgroups.partitioned.compute.subgroupor_i16vec4_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupxor_i16vec4
+dEQP-VK.subgroups.partitioned.compute.subgroupxor_i16vec4_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupinclusiveadd_i16vec4
+dEQP-VK.subgroups.partitioned.compute.subgroupinclusiveadd_i16vec4_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupinclusivemul_i16vec4
+dEQP-VK.subgroups.partitioned.compute.subgroupinclusivemul_i16vec4_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupinclusivemin_i16vec4
+dEQP-VK.subgroups.partitioned.compute.subgroupinclusivemin_i16vec4_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupinclusivemax_i16vec4
+dEQP-VK.subgroups.partitioned.compute.subgroupinclusivemax_i16vec4_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupinclusiveand_i16vec4
+dEQP-VK.subgroups.partitioned.compute.subgroupinclusiveand_i16vec4_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupinclusiveor_i16vec4
+dEQP-VK.subgroups.partitioned.compute.subgroupinclusiveor_i16vec4_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupinclusivexor_i16vec4
+dEQP-VK.subgroups.partitioned.compute.subgroupinclusivexor_i16vec4_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupexclusiveadd_i16vec4
+dEQP-VK.subgroups.partitioned.compute.subgroupexclusiveadd_i16vec4_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupexclusivemul_i16vec4
+dEQP-VK.subgroups.partitioned.compute.subgroupexclusivemul_i16vec4_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupexclusivemin_i16vec4
+dEQP-VK.subgroups.partitioned.compute.subgroupexclusivemin_i16vec4_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupexclusivemax_i16vec4
+dEQP-VK.subgroups.partitioned.compute.subgroupexclusivemax_i16vec4_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupexclusiveand_i16vec4
+dEQP-VK.subgroups.partitioned.compute.subgroupexclusiveand_i16vec4_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupexclusiveor_i16vec4
+dEQP-VK.subgroups.partitioned.compute.subgroupexclusiveor_i16vec4_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupexclusivexor_i16vec4
+dEQP-VK.subgroups.partitioned.compute.subgroupexclusivexor_i16vec4_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupadd_uint16_t
+dEQP-VK.subgroups.partitioned.compute.subgroupadd_uint16_t_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupmul_uint16_t
+dEQP-VK.subgroups.partitioned.compute.subgroupmul_uint16_t_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupmin_uint16_t
+dEQP-VK.subgroups.partitioned.compute.subgroupmin_uint16_t_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupmax_uint16_t
+dEQP-VK.subgroups.partitioned.compute.subgroupmax_uint16_t_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupand_uint16_t
+dEQP-VK.subgroups.partitioned.compute.subgroupand_uint16_t_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupor_uint16_t
+dEQP-VK.subgroups.partitioned.compute.subgroupor_uint16_t_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupxor_uint16_t
+dEQP-VK.subgroups.partitioned.compute.subgroupxor_uint16_t_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupinclusiveadd_uint16_t
+dEQP-VK.subgroups.partitioned.compute.subgroupinclusiveadd_uint16_t_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupinclusivemul_uint16_t
+dEQP-VK.subgroups.partitioned.compute.subgroupinclusivemul_uint16_t_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupinclusivemin_uint16_t
+dEQP-VK.subgroups.partitioned.compute.subgroupinclusivemin_uint16_t_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupinclusivemax_uint16_t
+dEQP-VK.subgroups.partitioned.compute.subgroupinclusivemax_uint16_t_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupinclusiveand_uint16_t
+dEQP-VK.subgroups.partitioned.compute.subgroupinclusiveand_uint16_t_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupinclusiveor_uint16_t
+dEQP-VK.subgroups.partitioned.compute.subgroupinclusiveor_uint16_t_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupinclusivexor_uint16_t
+dEQP-VK.subgroups.partitioned.compute.subgroupinclusivexor_uint16_t_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupexclusiveadd_uint16_t
+dEQP-VK.subgroups.partitioned.compute.subgroupexclusiveadd_uint16_t_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupexclusivemul_uint16_t
+dEQP-VK.subgroups.partitioned.compute.subgroupexclusivemul_uint16_t_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupexclusivemin_uint16_t
+dEQP-VK.subgroups.partitioned.compute.subgroupexclusivemin_uint16_t_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupexclusivemax_uint16_t
+dEQP-VK.subgroups.partitioned.compute.subgroupexclusivemax_uint16_t_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupexclusiveand_uint16_t
+dEQP-VK.subgroups.partitioned.compute.subgroupexclusiveand_uint16_t_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupexclusiveor_uint16_t
+dEQP-VK.subgroups.partitioned.compute.subgroupexclusiveor_uint16_t_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupexclusivexor_uint16_t
+dEQP-VK.subgroups.partitioned.compute.subgroupexclusivexor_uint16_t_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupadd_u16vec2
+dEQP-VK.subgroups.partitioned.compute.subgroupadd_u16vec2_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupmul_u16vec2
+dEQP-VK.subgroups.partitioned.compute.subgroupmul_u16vec2_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupmin_u16vec2
+dEQP-VK.subgroups.partitioned.compute.subgroupmin_u16vec2_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupmax_u16vec2
+dEQP-VK.subgroups.partitioned.compute.subgroupmax_u16vec2_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupand_u16vec2
+dEQP-VK.subgroups.partitioned.compute.subgroupand_u16vec2_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupor_u16vec2
+dEQP-VK.subgroups.partitioned.compute.subgroupor_u16vec2_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupxor_u16vec2
+dEQP-VK.subgroups.partitioned.compute.subgroupxor_u16vec2_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupinclusiveadd_u16vec2
+dEQP-VK.subgroups.partitioned.compute.subgroupinclusiveadd_u16vec2_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupinclusivemul_u16vec2
+dEQP-VK.subgroups.partitioned.compute.subgroupinclusivemul_u16vec2_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupinclusivemin_u16vec2
+dEQP-VK.subgroups.partitioned.compute.subgroupinclusivemin_u16vec2_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupinclusivemax_u16vec2
+dEQP-VK.subgroups.partitioned.compute.subgroupinclusivemax_u16vec2_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupinclusiveand_u16vec2
+dEQP-VK.subgroups.partitioned.compute.subgroupinclusiveand_u16vec2_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupinclusiveor_u16vec2
+dEQP-VK.subgroups.partitioned.compute.subgroupinclusiveor_u16vec2_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupinclusivexor_u16vec2
+dEQP-VK.subgroups.partitioned.compute.subgroupinclusivexor_u16vec2_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupexclusiveadd_u16vec2
+dEQP-VK.subgroups.partitioned.compute.subgroupexclusiveadd_u16vec2_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupexclusivemul_u16vec2
+dEQP-VK.subgroups.partitioned.compute.subgroupexclusivemul_u16vec2_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupexclusivemin_u16vec2
+dEQP-VK.subgroups.partitioned.compute.subgroupexclusivemin_u16vec2_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupexclusivemax_u16vec2
+dEQP-VK.subgroups.partitioned.compute.subgroupexclusivemax_u16vec2_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupexclusiveand_u16vec2
+dEQP-VK.subgroups.partitioned.compute.subgroupexclusiveand_u16vec2_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupexclusiveor_u16vec2
+dEQP-VK.subgroups.partitioned.compute.subgroupexclusiveor_u16vec2_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupexclusivexor_u16vec2
+dEQP-VK.subgroups.partitioned.compute.subgroupexclusivexor_u16vec2_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupadd_u16vec3
+dEQP-VK.subgroups.partitioned.compute.subgroupadd_u16vec3_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupmul_u16vec3
+dEQP-VK.subgroups.partitioned.compute.subgroupmul_u16vec3_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupmin_u16vec3
+dEQP-VK.subgroups.partitioned.compute.subgroupmin_u16vec3_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupmax_u16vec3
+dEQP-VK.subgroups.partitioned.compute.subgroupmax_u16vec3_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupand_u16vec3
+dEQP-VK.subgroups.partitioned.compute.subgroupand_u16vec3_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupor_u16vec3
+dEQP-VK.subgroups.partitioned.compute.subgroupor_u16vec3_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupxor_u16vec3
+dEQP-VK.subgroups.partitioned.compute.subgroupxor_u16vec3_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupinclusiveadd_u16vec3
+dEQP-VK.subgroups.partitioned.compute.subgroupinclusiveadd_u16vec3_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupinclusivemul_u16vec3
+dEQP-VK.subgroups.partitioned.compute.subgroupinclusivemul_u16vec3_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupinclusivemin_u16vec3
+dEQP-VK.subgroups.partitioned.compute.subgroupinclusivemin_u16vec3_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupinclusivemax_u16vec3
+dEQP-VK.subgroups.partitioned.compute.subgroupinclusivemax_u16vec3_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupinclusiveand_u16vec3
+dEQP-VK.subgroups.partitioned.compute.subgroupinclusiveand_u16vec3_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupinclusiveor_u16vec3
+dEQP-VK.subgroups.partitioned.compute.subgroupinclusiveor_u16vec3_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupinclusivexor_u16vec3
+dEQP-VK.subgroups.partitioned.compute.subgroupinclusivexor_u16vec3_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupexclusiveadd_u16vec3
+dEQP-VK.subgroups.partitioned.compute.subgroupexclusiveadd_u16vec3_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupexclusivemul_u16vec3
+dEQP-VK.subgroups.partitioned.compute.subgroupexclusivemul_u16vec3_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupexclusivemin_u16vec3
+dEQP-VK.subgroups.partitioned.compute.subgroupexclusivemin_u16vec3_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupexclusivemax_u16vec3
+dEQP-VK.subgroups.partitioned.compute.subgroupexclusivemax_u16vec3_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupexclusiveand_u16vec3
+dEQP-VK.subgroups.partitioned.compute.subgroupexclusiveand_u16vec3_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupexclusiveor_u16vec3
+dEQP-VK.subgroups.partitioned.compute.subgroupexclusiveor_u16vec3_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupexclusivexor_u16vec3
+dEQP-VK.subgroups.partitioned.compute.subgroupexclusivexor_u16vec3_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupadd_u16vec4
+dEQP-VK.subgroups.partitioned.compute.subgroupadd_u16vec4_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupmul_u16vec4
+dEQP-VK.subgroups.partitioned.compute.subgroupmul_u16vec4_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupmin_u16vec4
+dEQP-VK.subgroups.partitioned.compute.subgroupmin_u16vec4_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupmax_u16vec4
+dEQP-VK.subgroups.partitioned.compute.subgroupmax_u16vec4_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupand_u16vec4
+dEQP-VK.subgroups.partitioned.compute.subgroupand_u16vec4_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupor_u16vec4
+dEQP-VK.subgroups.partitioned.compute.subgroupor_u16vec4_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupxor_u16vec4
+dEQP-VK.subgroups.partitioned.compute.subgroupxor_u16vec4_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupinclusiveadd_u16vec4
+dEQP-VK.subgroups.partitioned.compute.subgroupinclusiveadd_u16vec4_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupinclusivemul_u16vec4
+dEQP-VK.subgroups.partitioned.compute.subgroupinclusivemul_u16vec4_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupinclusivemin_u16vec4
+dEQP-VK.subgroups.partitioned.compute.subgroupinclusivemin_u16vec4_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupinclusivemax_u16vec4
+dEQP-VK.subgroups.partitioned.compute.subgroupinclusivemax_u16vec4_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupinclusiveand_u16vec4
+dEQP-VK.subgroups.partitioned.compute.subgroupinclusiveand_u16vec4_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupinclusiveor_u16vec4
+dEQP-VK.subgroups.partitioned.compute.subgroupinclusiveor_u16vec4_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupinclusivexor_u16vec4
+dEQP-VK.subgroups.partitioned.compute.subgroupinclusivexor_u16vec4_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupexclusiveadd_u16vec4
+dEQP-VK.subgroups.partitioned.compute.subgroupexclusiveadd_u16vec4_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupexclusivemul_u16vec4
+dEQP-VK.subgroups.partitioned.compute.subgroupexclusivemul_u16vec4_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupexclusivemin_u16vec4
+dEQP-VK.subgroups.partitioned.compute.subgroupexclusivemin_u16vec4_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupexclusivemax_u16vec4
+dEQP-VK.subgroups.partitioned.compute.subgroupexclusivemax_u16vec4_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupexclusiveand_u16vec4
+dEQP-VK.subgroups.partitioned.compute.subgroupexclusiveand_u16vec4_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupexclusiveor_u16vec4
+dEQP-VK.subgroups.partitioned.compute.subgroupexclusiveor_u16vec4_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupexclusivexor_u16vec4
+dEQP-VK.subgroups.partitioned.compute.subgroupexclusivexor_u16vec4_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupadd_int
+dEQP-VK.subgroups.partitioned.compute.subgroupadd_int_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupmul_int
+dEQP-VK.subgroups.partitioned.compute.subgroupmul_int_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupmin_int
+dEQP-VK.subgroups.partitioned.compute.subgroupmin_int_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupmax_int
+dEQP-VK.subgroups.partitioned.compute.subgroupmax_int_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupand_int
+dEQP-VK.subgroups.partitioned.compute.subgroupand_int_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupor_int
+dEQP-VK.subgroups.partitioned.compute.subgroupor_int_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupxor_int
+dEQP-VK.subgroups.partitioned.compute.subgroupxor_int_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupinclusiveadd_int
+dEQP-VK.subgroups.partitioned.compute.subgroupinclusiveadd_int_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupinclusivemul_int
+dEQP-VK.subgroups.partitioned.compute.subgroupinclusivemul_int_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupinclusivemin_int
+dEQP-VK.subgroups.partitioned.compute.subgroupinclusivemin_int_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupinclusivemax_int
+dEQP-VK.subgroups.partitioned.compute.subgroupinclusivemax_int_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupinclusiveand_int
+dEQP-VK.subgroups.partitioned.compute.subgroupinclusiveand_int_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupinclusiveor_int
+dEQP-VK.subgroups.partitioned.compute.subgroupinclusiveor_int_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupinclusivexor_int
+dEQP-VK.subgroups.partitioned.compute.subgroupinclusivexor_int_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupexclusiveadd_int
+dEQP-VK.subgroups.partitioned.compute.subgroupexclusiveadd_int_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupexclusivemul_int
+dEQP-VK.subgroups.partitioned.compute.subgroupexclusivemul_int_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupexclusivemin_int
+dEQP-VK.subgroups.partitioned.compute.subgroupexclusivemin_int_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupexclusivemax_int
+dEQP-VK.subgroups.partitioned.compute.subgroupexclusivemax_int_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupexclusiveand_int
+dEQP-VK.subgroups.partitioned.compute.subgroupexclusiveand_int_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupexclusiveor_int
+dEQP-VK.subgroups.partitioned.compute.subgroupexclusiveor_int_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupexclusivexor_int
+dEQP-VK.subgroups.partitioned.compute.subgroupexclusivexor_int_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupadd_ivec2
+dEQP-VK.subgroups.partitioned.compute.subgroupadd_ivec2_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupmul_ivec2
+dEQP-VK.subgroups.partitioned.compute.subgroupmul_ivec2_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupmin_ivec2
+dEQP-VK.subgroups.partitioned.compute.subgroupmin_ivec2_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupmax_ivec2
+dEQP-VK.subgroups.partitioned.compute.subgroupmax_ivec2_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupand_ivec2
+dEQP-VK.subgroups.partitioned.compute.subgroupand_ivec2_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupor_ivec2
+dEQP-VK.subgroups.partitioned.compute.subgroupor_ivec2_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupxor_ivec2
+dEQP-VK.subgroups.partitioned.compute.subgroupxor_ivec2_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupinclusiveadd_ivec2
+dEQP-VK.subgroups.partitioned.compute.subgroupinclusiveadd_ivec2_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupinclusivemul_ivec2
+dEQP-VK.subgroups.partitioned.compute.subgroupinclusivemul_ivec2_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupinclusivemin_ivec2
+dEQP-VK.subgroups.partitioned.compute.subgroupinclusivemin_ivec2_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupinclusivemax_ivec2
+dEQP-VK.subgroups.partitioned.compute.subgroupinclusivemax_ivec2_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupinclusiveand_ivec2
+dEQP-VK.subgroups.partitioned.compute.subgroupinclusiveand_ivec2_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupinclusiveor_ivec2
+dEQP-VK.subgroups.partitioned.compute.subgroupinclusiveor_ivec2_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupinclusivexor_ivec2
+dEQP-VK.subgroups.partitioned.compute.subgroupinclusivexor_ivec2_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupexclusiveadd_ivec2
+dEQP-VK.subgroups.partitioned.compute.subgroupexclusiveadd_ivec2_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupexclusivemul_ivec2
+dEQP-VK.subgroups.partitioned.compute.subgroupexclusivemul_ivec2_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupexclusivemin_ivec2
+dEQP-VK.subgroups.partitioned.compute.subgroupexclusivemin_ivec2_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupexclusivemax_ivec2
+dEQP-VK.subgroups.partitioned.compute.subgroupexclusivemax_ivec2_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupexclusiveand_ivec2
+dEQP-VK.subgroups.partitioned.compute.subgroupexclusiveand_ivec2_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupexclusiveor_ivec2
+dEQP-VK.subgroups.partitioned.compute.subgroupexclusiveor_ivec2_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupexclusivexor_ivec2
+dEQP-VK.subgroups.partitioned.compute.subgroupexclusivexor_ivec2_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupadd_ivec3
+dEQP-VK.subgroups.partitioned.compute.subgroupadd_ivec3_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupmul_ivec3
+dEQP-VK.subgroups.partitioned.compute.subgroupmul_ivec3_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupmin_ivec3
+dEQP-VK.subgroups.partitioned.compute.subgroupmin_ivec3_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupmax_ivec3
+dEQP-VK.subgroups.partitioned.compute.subgroupmax_ivec3_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupand_ivec3
+dEQP-VK.subgroups.partitioned.compute.subgroupand_ivec3_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupor_ivec3
+dEQP-VK.subgroups.partitioned.compute.subgroupor_ivec3_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupxor_ivec3
+dEQP-VK.subgroups.partitioned.compute.subgroupxor_ivec3_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupinclusiveadd_ivec3
+dEQP-VK.subgroups.partitioned.compute.subgroupinclusiveadd_ivec3_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupinclusivemul_ivec3
+dEQP-VK.subgroups.partitioned.compute.subgroupinclusivemul_ivec3_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupinclusivemin_ivec3
+dEQP-VK.subgroups.partitioned.compute.subgroupinclusivemin_ivec3_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupinclusivemax_ivec3
+dEQP-VK.subgroups.partitioned.compute.subgroupinclusivemax_ivec3_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupinclusiveand_ivec3
+dEQP-VK.subgroups.partitioned.compute.subgroupinclusiveand_ivec3_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupinclusiveor_ivec3
+dEQP-VK.subgroups.partitioned.compute.subgroupinclusiveor_ivec3_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupinclusivexor_ivec3
+dEQP-VK.subgroups.partitioned.compute.subgroupinclusivexor_ivec3_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupexclusiveadd_ivec3
+dEQP-VK.subgroups.partitioned.compute.subgroupexclusiveadd_ivec3_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupexclusivemul_ivec3
+dEQP-VK.subgroups.partitioned.compute.subgroupexclusivemul_ivec3_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupexclusivemin_ivec3
+dEQP-VK.subgroups.partitioned.compute.subgroupexclusivemin_ivec3_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupexclusivemax_ivec3
+dEQP-VK.subgroups.partitioned.compute.subgroupexclusivemax_ivec3_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupexclusiveand_ivec3
+dEQP-VK.subgroups.partitioned.compute.subgroupexclusiveand_ivec3_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupexclusiveor_ivec3
+dEQP-VK.subgroups.partitioned.compute.subgroupexclusiveor_ivec3_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupexclusivexor_ivec3
+dEQP-VK.subgroups.partitioned.compute.subgroupexclusivexor_ivec3_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupadd_ivec4
+dEQP-VK.subgroups.partitioned.compute.subgroupadd_ivec4_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupmul_ivec4
+dEQP-VK.subgroups.partitioned.compute.subgroupmul_ivec4_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupmin_ivec4
+dEQP-VK.subgroups.partitioned.compute.subgroupmin_ivec4_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupmax_ivec4
+dEQP-VK.subgroups.partitioned.compute.subgroupmax_ivec4_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupand_ivec4
+dEQP-VK.subgroups.partitioned.compute.subgroupand_ivec4_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupor_ivec4
+dEQP-VK.subgroups.partitioned.compute.subgroupor_ivec4_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupxor_ivec4
+dEQP-VK.subgroups.partitioned.compute.subgroupxor_ivec4_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupinclusiveadd_ivec4
+dEQP-VK.subgroups.partitioned.compute.subgroupinclusiveadd_ivec4_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupinclusivemul_ivec4
+dEQP-VK.subgroups.partitioned.compute.subgroupinclusivemul_ivec4_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupinclusivemin_ivec4
+dEQP-VK.subgroups.partitioned.compute.subgroupinclusivemin_ivec4_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupinclusivemax_ivec4
+dEQP-VK.subgroups.partitioned.compute.subgroupinclusivemax_ivec4_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupinclusiveand_ivec4
+dEQP-VK.subgroups.partitioned.compute.subgroupinclusiveand_ivec4_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupinclusiveor_ivec4
+dEQP-VK.subgroups.partitioned.compute.subgroupinclusiveor_ivec4_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupinclusivexor_ivec4
+dEQP-VK.subgroups.partitioned.compute.subgroupinclusivexor_ivec4_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupexclusiveadd_ivec4
+dEQP-VK.subgroups.partitioned.compute.subgroupexclusiveadd_ivec4_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupexclusivemul_ivec4
+dEQP-VK.subgroups.partitioned.compute.subgroupexclusivemul_ivec4_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupexclusivemin_ivec4
+dEQP-VK.subgroups.partitioned.compute.subgroupexclusivemin_ivec4_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupexclusivemax_ivec4
+dEQP-VK.subgroups.partitioned.compute.subgroupexclusivemax_ivec4_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupexclusiveand_ivec4
+dEQP-VK.subgroups.partitioned.compute.subgroupexclusiveand_ivec4_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupexclusiveor_ivec4
+dEQP-VK.subgroups.partitioned.compute.subgroupexclusiveor_ivec4_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupexclusivexor_ivec4
+dEQP-VK.subgroups.partitioned.compute.subgroupexclusivexor_ivec4_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupadd_uint
+dEQP-VK.subgroups.partitioned.compute.subgroupadd_uint_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupmul_uint
+dEQP-VK.subgroups.partitioned.compute.subgroupmul_uint_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupmin_uint
+dEQP-VK.subgroups.partitioned.compute.subgroupmin_uint_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupmax_uint
+dEQP-VK.subgroups.partitioned.compute.subgroupmax_uint_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupand_uint
+dEQP-VK.subgroups.partitioned.compute.subgroupand_uint_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupor_uint
+dEQP-VK.subgroups.partitioned.compute.subgroupor_uint_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupxor_uint
+dEQP-VK.subgroups.partitioned.compute.subgroupxor_uint_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupinclusiveadd_uint
+dEQP-VK.subgroups.partitioned.compute.subgroupinclusiveadd_uint_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupinclusivemul_uint
+dEQP-VK.subgroups.partitioned.compute.subgroupinclusivemul_uint_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupinclusivemin_uint
+dEQP-VK.subgroups.partitioned.compute.subgroupinclusivemin_uint_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupinclusivemax_uint
+dEQP-VK.subgroups.partitioned.compute.subgroupinclusivemax_uint_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupinclusiveand_uint
+dEQP-VK.subgroups.partitioned.compute.subgroupinclusiveand_uint_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupinclusiveor_uint
+dEQP-VK.subgroups.partitioned.compute.subgroupinclusiveor_uint_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupinclusivexor_uint
+dEQP-VK.subgroups.partitioned.compute.subgroupinclusivexor_uint_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupexclusiveadd_uint
+dEQP-VK.subgroups.partitioned.compute.subgroupexclusiveadd_uint_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupexclusivemul_uint
+dEQP-VK.subgroups.partitioned.compute.subgroupexclusivemul_uint_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupexclusivemin_uint
+dEQP-VK.subgroups.partitioned.compute.subgroupexclusivemin_uint_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupexclusivemax_uint
+dEQP-VK.subgroups.partitioned.compute.subgroupexclusivemax_uint_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupexclusiveand_uint
+dEQP-VK.subgroups.partitioned.compute.subgroupexclusiveand_uint_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupexclusiveor_uint
+dEQP-VK.subgroups.partitioned.compute.subgroupexclusiveor_uint_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupexclusivexor_uint
+dEQP-VK.subgroups.partitioned.compute.subgroupexclusivexor_uint_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupadd_uvec2
+dEQP-VK.subgroups.partitioned.compute.subgroupadd_uvec2_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupmul_uvec2
+dEQP-VK.subgroups.partitioned.compute.subgroupmul_uvec2_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupmin_uvec2
+dEQP-VK.subgroups.partitioned.compute.subgroupmin_uvec2_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupmax_uvec2
+dEQP-VK.subgroups.partitioned.compute.subgroupmax_uvec2_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupand_uvec2
+dEQP-VK.subgroups.partitioned.compute.subgroupand_uvec2_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupor_uvec2
+dEQP-VK.subgroups.partitioned.compute.subgroupor_uvec2_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupxor_uvec2
+dEQP-VK.subgroups.partitioned.compute.subgroupxor_uvec2_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupinclusiveadd_uvec2
+dEQP-VK.subgroups.partitioned.compute.subgroupinclusiveadd_uvec2_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupinclusivemul_uvec2
+dEQP-VK.subgroups.partitioned.compute.subgroupinclusivemul_uvec2_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupinclusivemin_uvec2
+dEQP-VK.subgroups.partitioned.compute.subgroupinclusivemin_uvec2_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupinclusivemax_uvec2
+dEQP-VK.subgroups.partitioned.compute.subgroupinclusivemax_uvec2_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupinclusiveand_uvec2
+dEQP-VK.subgroups.partitioned.compute.subgroupinclusiveand_uvec2_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupinclusiveor_uvec2
+dEQP-VK.subgroups.partitioned.compute.subgroupinclusiveor_uvec2_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupinclusivexor_uvec2
+dEQP-VK.subgroups.partitioned.compute.subgroupinclusivexor_uvec2_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupexclusiveadd_uvec2
+dEQP-VK.subgroups.partitioned.compute.subgroupexclusiveadd_uvec2_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupexclusivemul_uvec2
+dEQP-VK.subgroups.partitioned.compute.subgroupexclusivemul_uvec2_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupexclusivemin_uvec2
+dEQP-VK.subgroups.partitioned.compute.subgroupexclusivemin_uvec2_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupexclusivemax_uvec2
+dEQP-VK.subgroups.partitioned.compute.subgroupexclusivemax_uvec2_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupexclusiveand_uvec2
+dEQP-VK.subgroups.partitioned.compute.subgroupexclusiveand_uvec2_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupexclusiveor_uvec2
+dEQP-VK.subgroups.partitioned.compute.subgroupexclusiveor_uvec2_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupexclusivexor_uvec2
+dEQP-VK.subgroups.partitioned.compute.subgroupexclusivexor_uvec2_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupadd_uvec3
+dEQP-VK.subgroups.partitioned.compute.subgroupadd_uvec3_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupmul_uvec3
+dEQP-VK.subgroups.partitioned.compute.subgroupmul_uvec3_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupmin_uvec3
+dEQP-VK.subgroups.partitioned.compute.subgroupmin_uvec3_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupmax_uvec3
+dEQP-VK.subgroups.partitioned.compute.subgroupmax_uvec3_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupand_uvec3
+dEQP-VK.subgroups.partitioned.compute.subgroupand_uvec3_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupor_uvec3
+dEQP-VK.subgroups.partitioned.compute.subgroupor_uvec3_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupxor_uvec3
+dEQP-VK.subgroups.partitioned.compute.subgroupxor_uvec3_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupinclusiveadd_uvec3
+dEQP-VK.subgroups.partitioned.compute.subgroupinclusiveadd_uvec3_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupinclusivemul_uvec3
+dEQP-VK.subgroups.partitioned.compute.subgroupinclusivemul_uvec3_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupinclusivemin_uvec3
+dEQP-VK.subgroups.partitioned.compute.subgroupinclusivemin_uvec3_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupinclusivemax_uvec3
+dEQP-VK.subgroups.partitioned.compute.subgroupinclusivemax_uvec3_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupinclusiveand_uvec3
+dEQP-VK.subgroups.partitioned.compute.subgroupinclusiveand_uvec3_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupinclusiveor_uvec3
+dEQP-VK.subgroups.partitioned.compute.subgroupinclusiveor_uvec3_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupinclusivexor_uvec3
+dEQP-VK.subgroups.partitioned.compute.subgroupinclusivexor_uvec3_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupexclusiveadd_uvec3
+dEQP-VK.subgroups.partitioned.compute.subgroupexclusiveadd_uvec3_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupexclusivemul_uvec3
+dEQP-VK.subgroups.partitioned.compute.subgroupexclusivemul_uvec3_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupexclusivemin_uvec3
+dEQP-VK.subgroups.partitioned.compute.subgroupexclusivemin_uvec3_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupexclusivemax_uvec3
+dEQP-VK.subgroups.partitioned.compute.subgroupexclusivemax_uvec3_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupexclusiveand_uvec3
+dEQP-VK.subgroups.partitioned.compute.subgroupexclusiveand_uvec3_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupexclusiveor_uvec3
+dEQP-VK.subgroups.partitioned.compute.subgroupexclusiveor_uvec3_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupexclusivexor_uvec3
+dEQP-VK.subgroups.partitioned.compute.subgroupexclusivexor_uvec3_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupadd_uvec4
+dEQP-VK.subgroups.partitioned.compute.subgroupadd_uvec4_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupmul_uvec4
+dEQP-VK.subgroups.partitioned.compute.subgroupmul_uvec4_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupmin_uvec4
+dEQP-VK.subgroups.partitioned.compute.subgroupmin_uvec4_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupmax_uvec4
+dEQP-VK.subgroups.partitioned.compute.subgroupmax_uvec4_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupand_uvec4
+dEQP-VK.subgroups.partitioned.compute.subgroupand_uvec4_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupor_uvec4
+dEQP-VK.subgroups.partitioned.compute.subgroupor_uvec4_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupxor_uvec4
+dEQP-VK.subgroups.partitioned.compute.subgroupxor_uvec4_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupinclusiveadd_uvec4
+dEQP-VK.subgroups.partitioned.compute.subgroupinclusiveadd_uvec4_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupinclusivemul_uvec4
+dEQP-VK.subgroups.partitioned.compute.subgroupinclusivemul_uvec4_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupinclusivemin_uvec4
+dEQP-VK.subgroups.partitioned.compute.subgroupinclusivemin_uvec4_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupinclusivemax_uvec4
+dEQP-VK.subgroups.partitioned.compute.subgroupinclusivemax_uvec4_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupinclusiveand_uvec4
+dEQP-VK.subgroups.partitioned.compute.subgroupinclusiveand_uvec4_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupinclusiveor_uvec4
+dEQP-VK.subgroups.partitioned.compute.subgroupinclusiveor_uvec4_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupinclusivexor_uvec4
+dEQP-VK.subgroups.partitioned.compute.subgroupinclusivexor_uvec4_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupexclusiveadd_uvec4
+dEQP-VK.subgroups.partitioned.compute.subgroupexclusiveadd_uvec4_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupexclusivemul_uvec4
+dEQP-VK.subgroups.partitioned.compute.subgroupexclusivemul_uvec4_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupexclusivemin_uvec4
+dEQP-VK.subgroups.partitioned.compute.subgroupexclusivemin_uvec4_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupexclusivemax_uvec4
+dEQP-VK.subgroups.partitioned.compute.subgroupexclusivemax_uvec4_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupexclusiveand_uvec4
+dEQP-VK.subgroups.partitioned.compute.subgroupexclusiveand_uvec4_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupexclusiveor_uvec4
+dEQP-VK.subgroups.partitioned.compute.subgroupexclusiveor_uvec4_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupexclusivexor_uvec4
+dEQP-VK.subgroups.partitioned.compute.subgroupexclusivexor_uvec4_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupadd_int64_t
+dEQP-VK.subgroups.partitioned.compute.subgroupadd_int64_t_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupmul_int64_t
+dEQP-VK.subgroups.partitioned.compute.subgroupmul_int64_t_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupmin_int64_t
+dEQP-VK.subgroups.partitioned.compute.subgroupmin_int64_t_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupmax_int64_t
+dEQP-VK.subgroups.partitioned.compute.subgroupmax_int64_t_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupand_int64_t
+dEQP-VK.subgroups.partitioned.compute.subgroupand_int64_t_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupor_int64_t
+dEQP-VK.subgroups.partitioned.compute.subgroupor_int64_t_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupxor_int64_t
+dEQP-VK.subgroups.partitioned.compute.subgroupxor_int64_t_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupinclusiveadd_int64_t
+dEQP-VK.subgroups.partitioned.compute.subgroupinclusiveadd_int64_t_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupinclusivemul_int64_t
+dEQP-VK.subgroups.partitioned.compute.subgroupinclusivemul_int64_t_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupinclusivemin_int64_t
+dEQP-VK.subgroups.partitioned.compute.subgroupinclusivemin_int64_t_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupinclusivemax_int64_t
+dEQP-VK.subgroups.partitioned.compute.subgroupinclusivemax_int64_t_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupinclusiveand_int64_t
+dEQP-VK.subgroups.partitioned.compute.subgroupinclusiveand_int64_t_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupinclusiveor_int64_t
+dEQP-VK.subgroups.partitioned.compute.subgroupinclusiveor_int64_t_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupinclusivexor_int64_t
+dEQP-VK.subgroups.partitioned.compute.subgroupinclusivexor_int64_t_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupexclusiveadd_int64_t
+dEQP-VK.subgroups.partitioned.compute.subgroupexclusiveadd_int64_t_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupexclusivemul_int64_t
+dEQP-VK.subgroups.partitioned.compute.subgroupexclusivemul_int64_t_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupexclusivemin_int64_t
+dEQP-VK.subgroups.partitioned.compute.subgroupexclusivemin_int64_t_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupexclusivemax_int64_t
+dEQP-VK.subgroups.partitioned.compute.subgroupexclusivemax_int64_t_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupexclusiveand_int64_t
+dEQP-VK.subgroups.partitioned.compute.subgroupexclusiveand_int64_t_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupexclusiveor_int64_t
+dEQP-VK.subgroups.partitioned.compute.subgroupexclusiveor_int64_t_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupexclusivexor_int64_t
+dEQP-VK.subgroups.partitioned.compute.subgroupexclusivexor_int64_t_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupadd_i64vec2
+dEQP-VK.subgroups.partitioned.compute.subgroupadd_i64vec2_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupmul_i64vec2
+dEQP-VK.subgroups.partitioned.compute.subgroupmul_i64vec2_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupmin_i64vec2
+dEQP-VK.subgroups.partitioned.compute.subgroupmin_i64vec2_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupmax_i64vec2
+dEQP-VK.subgroups.partitioned.compute.subgroupmax_i64vec2_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupand_i64vec2
+dEQP-VK.subgroups.partitioned.compute.subgroupand_i64vec2_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupor_i64vec2
+dEQP-VK.subgroups.partitioned.compute.subgroupor_i64vec2_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupxor_i64vec2
+dEQP-VK.subgroups.partitioned.compute.subgroupxor_i64vec2_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupinclusiveadd_i64vec2
+dEQP-VK.subgroups.partitioned.compute.subgroupinclusiveadd_i64vec2_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupinclusivemul_i64vec2
+dEQP-VK.subgroups.partitioned.compute.subgroupinclusivemul_i64vec2_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupinclusivemin_i64vec2
+dEQP-VK.subgroups.partitioned.compute.subgroupinclusivemin_i64vec2_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupinclusivemax_i64vec2
+dEQP-VK.subgroups.partitioned.compute.subgroupinclusivemax_i64vec2_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupinclusiveand_i64vec2
+dEQP-VK.subgroups.partitioned.compute.subgroupinclusiveand_i64vec2_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupinclusiveor_i64vec2
+dEQP-VK.subgroups.partitioned.compute.subgroupinclusiveor_i64vec2_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupinclusivexor_i64vec2
+dEQP-VK.subgroups.partitioned.compute.subgroupinclusivexor_i64vec2_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupexclusiveadd_i64vec2
+dEQP-VK.subgroups.partitioned.compute.subgroupexclusiveadd_i64vec2_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupexclusivemul_i64vec2
+dEQP-VK.subgroups.partitioned.compute.subgroupexclusivemul_i64vec2_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupexclusivemin_i64vec2
+dEQP-VK.subgroups.partitioned.compute.subgroupexclusivemin_i64vec2_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupexclusivemax_i64vec2
+dEQP-VK.subgroups.partitioned.compute.subgroupexclusivemax_i64vec2_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupexclusiveand_i64vec2
+dEQP-VK.subgroups.partitioned.compute.subgroupexclusiveand_i64vec2_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupexclusiveor_i64vec2
+dEQP-VK.subgroups.partitioned.compute.subgroupexclusiveor_i64vec2_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupexclusivexor_i64vec2
+dEQP-VK.subgroups.partitioned.compute.subgroupexclusivexor_i64vec2_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupadd_i64vec3
+dEQP-VK.subgroups.partitioned.compute.subgroupadd_i64vec3_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupmul_i64vec3
+dEQP-VK.subgroups.partitioned.compute.subgroupmul_i64vec3_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupmin_i64vec3
+dEQP-VK.subgroups.partitioned.compute.subgroupmin_i64vec3_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupmax_i64vec3
+dEQP-VK.subgroups.partitioned.compute.subgroupmax_i64vec3_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupand_i64vec3
+dEQP-VK.subgroups.partitioned.compute.subgroupand_i64vec3_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupor_i64vec3
+dEQP-VK.subgroups.partitioned.compute.subgroupor_i64vec3_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupxor_i64vec3
+dEQP-VK.subgroups.partitioned.compute.subgroupxor_i64vec3_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupinclusiveadd_i64vec3
+dEQP-VK.subgroups.partitioned.compute.subgroupinclusiveadd_i64vec3_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupinclusivemul_i64vec3
+dEQP-VK.subgroups.partitioned.compute.subgroupinclusivemul_i64vec3_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupinclusivemin_i64vec3
+dEQP-VK.subgroups.partitioned.compute.subgroupinclusivemin_i64vec3_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupinclusivemax_i64vec3
+dEQP-VK.subgroups.partitioned.compute.subgroupinclusivemax_i64vec3_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupinclusiveand_i64vec3
+dEQP-VK.subgroups.partitioned.compute.subgroupinclusiveand_i64vec3_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupinclusiveor_i64vec3
+dEQP-VK.subgroups.partitioned.compute.subgroupinclusiveor_i64vec3_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupinclusivexor_i64vec3
+dEQP-VK.subgroups.partitioned.compute.subgroupinclusivexor_i64vec3_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupexclusiveadd_i64vec3
+dEQP-VK.subgroups.partitioned.compute.subgroupexclusiveadd_i64vec3_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupexclusivemul_i64vec3
+dEQP-VK.subgroups.partitioned.compute.subgroupexclusivemul_i64vec3_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupexclusivemin_i64vec3
+dEQP-VK.subgroups.partitioned.compute.subgroupexclusivemin_i64vec3_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupexclusivemax_i64vec3
+dEQP-VK.subgroups.partitioned.compute.subgroupexclusivemax_i64vec3_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupexclusiveand_i64vec3
+dEQP-VK.subgroups.partitioned.compute.subgroupexclusiveand_i64vec3_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupexclusiveor_i64vec3
+dEQP-VK.subgroups.partitioned.compute.subgroupexclusiveor_i64vec3_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupexclusivexor_i64vec3
+dEQP-VK.subgroups.partitioned.compute.subgroupexclusivexor_i64vec3_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupadd_i64vec4
+dEQP-VK.subgroups.partitioned.compute.subgroupadd_i64vec4_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupmul_i64vec4
+dEQP-VK.subgroups.partitioned.compute.subgroupmul_i64vec4_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupmin_i64vec4
+dEQP-VK.subgroups.partitioned.compute.subgroupmin_i64vec4_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupmax_i64vec4
+dEQP-VK.subgroups.partitioned.compute.subgroupmax_i64vec4_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupand_i64vec4
+dEQP-VK.subgroups.partitioned.compute.subgroupand_i64vec4_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupor_i64vec4
+dEQP-VK.subgroups.partitioned.compute.subgroupor_i64vec4_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupxor_i64vec4
+dEQP-VK.subgroups.partitioned.compute.subgroupxor_i64vec4_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupinclusiveadd_i64vec4
+dEQP-VK.subgroups.partitioned.compute.subgroupinclusiveadd_i64vec4_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupinclusivemul_i64vec4
+dEQP-VK.subgroups.partitioned.compute.subgroupinclusivemul_i64vec4_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupinclusivemin_i64vec4
+dEQP-VK.subgroups.partitioned.compute.subgroupinclusivemin_i64vec4_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupinclusivemax_i64vec4
+dEQP-VK.subgroups.partitioned.compute.subgroupinclusivemax_i64vec4_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupinclusiveand_i64vec4
+dEQP-VK.subgroups.partitioned.compute.subgroupinclusiveand_i64vec4_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupinclusiveor_i64vec4
+dEQP-VK.subgroups.partitioned.compute.subgroupinclusiveor_i64vec4_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupinclusivexor_i64vec4
+dEQP-VK.subgroups.partitioned.compute.subgroupinclusivexor_i64vec4_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupexclusiveadd_i64vec4
+dEQP-VK.subgroups.partitioned.compute.subgroupexclusiveadd_i64vec4_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupexclusivemul_i64vec4
+dEQP-VK.subgroups.partitioned.compute.subgroupexclusivemul_i64vec4_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupexclusivemin_i64vec4
+dEQP-VK.subgroups.partitioned.compute.subgroupexclusivemin_i64vec4_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupexclusivemax_i64vec4
+dEQP-VK.subgroups.partitioned.compute.subgroupexclusivemax_i64vec4_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupexclusiveand_i64vec4
+dEQP-VK.subgroups.partitioned.compute.subgroupexclusiveand_i64vec4_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupexclusiveor_i64vec4
+dEQP-VK.subgroups.partitioned.compute.subgroupexclusiveor_i64vec4_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupexclusivexor_i64vec4
+dEQP-VK.subgroups.partitioned.compute.subgroupexclusivexor_i64vec4_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupadd_uint64_t
+dEQP-VK.subgroups.partitioned.compute.subgroupadd_uint64_t_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupmul_uint64_t
+dEQP-VK.subgroups.partitioned.compute.subgroupmul_uint64_t_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupmin_uint64_t
+dEQP-VK.subgroups.partitioned.compute.subgroupmin_uint64_t_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupmax_uint64_t
+dEQP-VK.subgroups.partitioned.compute.subgroupmax_uint64_t_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupand_uint64_t
+dEQP-VK.subgroups.partitioned.compute.subgroupand_uint64_t_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupor_uint64_t
+dEQP-VK.subgroups.partitioned.compute.subgroupor_uint64_t_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupxor_uint64_t
+dEQP-VK.subgroups.partitioned.compute.subgroupxor_uint64_t_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupinclusiveadd_uint64_t
+dEQP-VK.subgroups.partitioned.compute.subgroupinclusiveadd_uint64_t_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupinclusivemul_uint64_t
+dEQP-VK.subgroups.partitioned.compute.subgroupinclusivemul_uint64_t_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupinclusivemin_uint64_t
+dEQP-VK.subgroups.partitioned.compute.subgroupinclusivemin_uint64_t_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupinclusivemax_uint64_t
+dEQP-VK.subgroups.partitioned.compute.subgroupinclusivemax_uint64_t_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupinclusiveand_uint64_t
+dEQP-VK.subgroups.partitioned.compute.subgroupinclusiveand_uint64_t_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupinclusiveor_uint64_t
+dEQP-VK.subgroups.partitioned.compute.subgroupinclusiveor_uint64_t_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupinclusivexor_uint64_t
+dEQP-VK.subgroups.partitioned.compute.subgroupinclusivexor_uint64_t_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupexclusiveadd_uint64_t
+dEQP-VK.subgroups.partitioned.compute.subgroupexclusiveadd_uint64_t_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupexclusivemul_uint64_t
+dEQP-VK.subgroups.partitioned.compute.subgroupexclusivemul_uint64_t_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupexclusivemin_uint64_t
+dEQP-VK.subgroups.partitioned.compute.subgroupexclusivemin_uint64_t_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupexclusivemax_uint64_t
+dEQP-VK.subgroups.partitioned.compute.subgroupexclusivemax_uint64_t_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupexclusiveand_uint64_t
+dEQP-VK.subgroups.partitioned.compute.subgroupexclusiveand_uint64_t_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupexclusiveor_uint64_t
+dEQP-VK.subgroups.partitioned.compute.subgroupexclusiveor_uint64_t_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupexclusivexor_uint64_t
+dEQP-VK.subgroups.partitioned.compute.subgroupexclusivexor_uint64_t_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupadd_u64vec2
+dEQP-VK.subgroups.partitioned.compute.subgroupadd_u64vec2_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupmul_u64vec2
+dEQP-VK.subgroups.partitioned.compute.subgroupmul_u64vec2_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupmin_u64vec2
+dEQP-VK.subgroups.partitioned.compute.subgroupmin_u64vec2_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupmax_u64vec2
+dEQP-VK.subgroups.partitioned.compute.subgroupmax_u64vec2_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupand_u64vec2
+dEQP-VK.subgroups.partitioned.compute.subgroupand_u64vec2_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupor_u64vec2
+dEQP-VK.subgroups.partitioned.compute.subgroupor_u64vec2_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupxor_u64vec2
+dEQP-VK.subgroups.partitioned.compute.subgroupxor_u64vec2_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupinclusiveadd_u64vec2
+dEQP-VK.subgroups.partitioned.compute.subgroupinclusiveadd_u64vec2_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupinclusivemul_u64vec2
+dEQP-VK.subgroups.partitioned.compute.subgroupinclusivemul_u64vec2_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupinclusivemin_u64vec2
+dEQP-VK.subgroups.partitioned.compute.subgroupinclusivemin_u64vec2_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupinclusivemax_u64vec2
+dEQP-VK.subgroups.partitioned.compute.subgroupinclusivemax_u64vec2_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupinclusiveand_u64vec2
+dEQP-VK.subgroups.partitioned.compute.subgroupinclusiveand_u64vec2_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupinclusiveor_u64vec2
+dEQP-VK.subgroups.partitioned.compute.subgroupinclusiveor_u64vec2_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupinclusivexor_u64vec2
+dEQP-VK.subgroups.partitioned.compute.subgroupinclusivexor_u64vec2_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupexclusiveadd_u64vec2
+dEQP-VK.subgroups.partitioned.compute.subgroupexclusiveadd_u64vec2_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupexclusivemul_u64vec2
+dEQP-VK.subgroups.partitioned.compute.subgroupexclusivemul_u64vec2_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupexclusivemin_u64vec2
+dEQP-VK.subgroups.partitioned.compute.subgroupexclusivemin_u64vec2_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupexclusivemax_u64vec2
+dEQP-VK.subgroups.partitioned.compute.subgroupexclusivemax_u64vec2_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupexclusiveand_u64vec2
+dEQP-VK.subgroups.partitioned.compute.subgroupexclusiveand_u64vec2_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupexclusiveor_u64vec2
+dEQP-VK.subgroups.partitioned.compute.subgroupexclusiveor_u64vec2_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupexclusivexor_u64vec2
+dEQP-VK.subgroups.partitioned.compute.subgroupexclusivexor_u64vec2_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupadd_u64vec3
+dEQP-VK.subgroups.partitioned.compute.subgroupadd_u64vec3_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupmul_u64vec3
+dEQP-VK.subgroups.partitioned.compute.subgroupmul_u64vec3_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupmin_u64vec3
+dEQP-VK.subgroups.partitioned.compute.subgroupmin_u64vec3_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupmax_u64vec3
+dEQP-VK.subgroups.partitioned.compute.subgroupmax_u64vec3_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupand_u64vec3
+dEQP-VK.subgroups.partitioned.compute.subgroupand_u64vec3_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupor_u64vec3
+dEQP-VK.subgroups.partitioned.compute.subgroupor_u64vec3_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupxor_u64vec3
+dEQP-VK.subgroups.partitioned.compute.subgroupxor_u64vec3_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupinclusiveadd_u64vec3
+dEQP-VK.subgroups.partitioned.compute.subgroupinclusiveadd_u64vec3_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupinclusivemul_u64vec3
+dEQP-VK.subgroups.partitioned.compute.subgroupinclusivemul_u64vec3_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupinclusivemin_u64vec3
+dEQP-VK.subgroups.partitioned.compute.subgroupinclusivemin_u64vec3_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupinclusivemax_u64vec3
+dEQP-VK.subgroups.partitioned.compute.subgroupinclusivemax_u64vec3_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupinclusiveand_u64vec3
+dEQP-VK.subgroups.partitioned.compute.subgroupinclusiveand_u64vec3_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupinclusiveor_u64vec3
+dEQP-VK.subgroups.partitioned.compute.subgroupinclusiveor_u64vec3_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupinclusivexor_u64vec3
+dEQP-VK.subgroups.partitioned.compute.subgroupinclusivexor_u64vec3_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupexclusiveadd_u64vec3
+dEQP-VK.subgroups.partitioned.compute.subgroupexclusiveadd_u64vec3_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupexclusivemul_u64vec3
+dEQP-VK.subgroups.partitioned.compute.subgroupexclusivemul_u64vec3_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupexclusivemin_u64vec3
+dEQP-VK.subgroups.partitioned.compute.subgroupexclusivemin_u64vec3_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupexclusivemax_u64vec3
+dEQP-VK.subgroups.partitioned.compute.subgroupexclusivemax_u64vec3_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupexclusiveand_u64vec3
+dEQP-VK.subgroups.partitioned.compute.subgroupexclusiveand_u64vec3_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupexclusiveor_u64vec3
+dEQP-VK.subgroups.partitioned.compute.subgroupexclusiveor_u64vec3_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupexclusivexor_u64vec3
+dEQP-VK.subgroups.partitioned.compute.subgroupexclusivexor_u64vec3_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupadd_u64vec4
+dEQP-VK.subgroups.partitioned.compute.subgroupadd_u64vec4_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupmul_u64vec4
+dEQP-VK.subgroups.partitioned.compute.subgroupmul_u64vec4_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupmin_u64vec4
+dEQP-VK.subgroups.partitioned.compute.subgroupmin_u64vec4_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupmax_u64vec4
+dEQP-VK.subgroups.partitioned.compute.subgroupmax_u64vec4_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupand_u64vec4
+dEQP-VK.subgroups.partitioned.compute.subgroupand_u64vec4_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupor_u64vec4
+dEQP-VK.subgroups.partitioned.compute.subgroupor_u64vec4_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupxor_u64vec4
+dEQP-VK.subgroups.partitioned.compute.subgroupxor_u64vec4_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupinclusiveadd_u64vec4
+dEQP-VK.subgroups.partitioned.compute.subgroupinclusiveadd_u64vec4_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupinclusivemul_u64vec4
+dEQP-VK.subgroups.partitioned.compute.subgroupinclusivemul_u64vec4_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupinclusivemin_u64vec4
+dEQP-VK.subgroups.partitioned.compute.subgroupinclusivemin_u64vec4_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupinclusivemax_u64vec4
+dEQP-VK.subgroups.partitioned.compute.subgroupinclusivemax_u64vec4_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupinclusiveand_u64vec4
+dEQP-VK.subgroups.partitioned.compute.subgroupinclusiveand_u64vec4_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupinclusiveor_u64vec4
+dEQP-VK.subgroups.partitioned.compute.subgroupinclusiveor_u64vec4_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupinclusivexor_u64vec4
+dEQP-VK.subgroups.partitioned.compute.subgroupinclusivexor_u64vec4_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupexclusiveadd_u64vec4
+dEQP-VK.subgroups.partitioned.compute.subgroupexclusiveadd_u64vec4_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupexclusivemul_u64vec4
+dEQP-VK.subgroups.partitioned.compute.subgroupexclusivemul_u64vec4_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupexclusivemin_u64vec4
+dEQP-VK.subgroups.partitioned.compute.subgroupexclusivemin_u64vec4_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupexclusivemax_u64vec4
+dEQP-VK.subgroups.partitioned.compute.subgroupexclusivemax_u64vec4_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupexclusiveand_u64vec4
+dEQP-VK.subgroups.partitioned.compute.subgroupexclusiveand_u64vec4_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupexclusiveor_u64vec4
+dEQP-VK.subgroups.partitioned.compute.subgroupexclusiveor_u64vec4_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupexclusivexor_u64vec4
+dEQP-VK.subgroups.partitioned.compute.subgroupexclusivexor_u64vec4_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupadd_float16_t
+dEQP-VK.subgroups.partitioned.compute.subgroupadd_float16_t_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupmul_float16_t
+dEQP-VK.subgroups.partitioned.compute.subgroupmul_float16_t_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupmin_float16_t
+dEQP-VK.subgroups.partitioned.compute.subgroupmin_float16_t_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupmax_float16_t
+dEQP-VK.subgroups.partitioned.compute.subgroupmax_float16_t_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupinclusiveadd_float16_t
+dEQP-VK.subgroups.partitioned.compute.subgroupinclusiveadd_float16_t_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupinclusivemul_float16_t
+dEQP-VK.subgroups.partitioned.compute.subgroupinclusivemul_float16_t_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupinclusivemin_float16_t
+dEQP-VK.subgroups.partitioned.compute.subgroupinclusivemin_float16_t_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupinclusivemax_float16_t
+dEQP-VK.subgroups.partitioned.compute.subgroupinclusivemax_float16_t_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupexclusiveadd_float16_t
+dEQP-VK.subgroups.partitioned.compute.subgroupexclusiveadd_float16_t_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupexclusivemul_float16_t
+dEQP-VK.subgroups.partitioned.compute.subgroupexclusivemul_float16_t_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupexclusivemin_float16_t
+dEQP-VK.subgroups.partitioned.compute.subgroupexclusivemin_float16_t_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupexclusivemax_float16_t
+dEQP-VK.subgroups.partitioned.compute.subgroupexclusivemax_float16_t_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupadd_f16vec2
+dEQP-VK.subgroups.partitioned.compute.subgroupadd_f16vec2_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupmul_f16vec2
+dEQP-VK.subgroups.partitioned.compute.subgroupmul_f16vec2_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupmin_f16vec2
+dEQP-VK.subgroups.partitioned.compute.subgroupmin_f16vec2_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupmax_f16vec2
+dEQP-VK.subgroups.partitioned.compute.subgroupmax_f16vec2_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupinclusiveadd_f16vec2
+dEQP-VK.subgroups.partitioned.compute.subgroupinclusiveadd_f16vec2_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupinclusivemul_f16vec2
+dEQP-VK.subgroups.partitioned.compute.subgroupinclusivemul_f16vec2_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupinclusivemin_f16vec2
+dEQP-VK.subgroups.partitioned.compute.subgroupinclusivemin_f16vec2_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupinclusivemax_f16vec2
+dEQP-VK.subgroups.partitioned.compute.subgroupinclusivemax_f16vec2_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupexclusiveadd_f16vec2
+dEQP-VK.subgroups.partitioned.compute.subgroupexclusiveadd_f16vec2_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupexclusivemul_f16vec2
+dEQP-VK.subgroups.partitioned.compute.subgroupexclusivemul_f16vec2_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupexclusivemin_f16vec2
+dEQP-VK.subgroups.partitioned.compute.subgroupexclusivemin_f16vec2_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupexclusivemax_f16vec2
+dEQP-VK.subgroups.partitioned.compute.subgroupexclusivemax_f16vec2_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupadd_f16vec3
+dEQP-VK.subgroups.partitioned.compute.subgroupadd_f16vec3_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupmul_f16vec3
+dEQP-VK.subgroups.partitioned.compute.subgroupmul_f16vec3_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupmin_f16vec3
+dEQP-VK.subgroups.partitioned.compute.subgroupmin_f16vec3_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupmax_f16vec3
+dEQP-VK.subgroups.partitioned.compute.subgroupmax_f16vec3_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupinclusiveadd_f16vec3
+dEQP-VK.subgroups.partitioned.compute.subgroupinclusiveadd_f16vec3_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupinclusivemul_f16vec3
+dEQP-VK.subgroups.partitioned.compute.subgroupinclusivemul_f16vec3_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupinclusivemin_f16vec3
+dEQP-VK.subgroups.partitioned.compute.subgroupinclusivemin_f16vec3_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupinclusivemax_f16vec3
+dEQP-VK.subgroups.partitioned.compute.subgroupinclusivemax_f16vec3_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupexclusiveadd_f16vec3
+dEQP-VK.subgroups.partitioned.compute.subgroupexclusiveadd_f16vec3_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupexclusivemul_f16vec3
+dEQP-VK.subgroups.partitioned.compute.subgroupexclusivemul_f16vec3_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupexclusivemin_f16vec3
+dEQP-VK.subgroups.partitioned.compute.subgroupexclusivemin_f16vec3_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupexclusivemax_f16vec3
+dEQP-VK.subgroups.partitioned.compute.subgroupexclusivemax_f16vec3_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupadd_f16vec4
+dEQP-VK.subgroups.partitioned.compute.subgroupadd_f16vec4_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupmul_f16vec4
+dEQP-VK.subgroups.partitioned.compute.subgroupmul_f16vec4_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupmin_f16vec4
+dEQP-VK.subgroups.partitioned.compute.subgroupmin_f16vec4_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupmax_f16vec4
+dEQP-VK.subgroups.partitioned.compute.subgroupmax_f16vec4_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupinclusiveadd_f16vec4
+dEQP-VK.subgroups.partitioned.compute.subgroupinclusiveadd_f16vec4_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupinclusivemul_f16vec4
+dEQP-VK.subgroups.partitioned.compute.subgroupinclusivemul_f16vec4_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupinclusivemin_f16vec4
+dEQP-VK.subgroups.partitioned.compute.subgroupinclusivemin_f16vec4_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupinclusivemax_f16vec4
+dEQP-VK.subgroups.partitioned.compute.subgroupinclusivemax_f16vec4_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupexclusiveadd_f16vec4
+dEQP-VK.subgroups.partitioned.compute.subgroupexclusiveadd_f16vec4_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupexclusivemul_f16vec4
+dEQP-VK.subgroups.partitioned.compute.subgroupexclusivemul_f16vec4_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupexclusivemin_f16vec4
+dEQP-VK.subgroups.partitioned.compute.subgroupexclusivemin_f16vec4_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupexclusivemax_f16vec4
+dEQP-VK.subgroups.partitioned.compute.subgroupexclusivemax_f16vec4_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupadd_float
+dEQP-VK.subgroups.partitioned.compute.subgroupadd_float_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupmul_float
+dEQP-VK.subgroups.partitioned.compute.subgroupmul_float_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupmin_float
+dEQP-VK.subgroups.partitioned.compute.subgroupmin_float_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupmax_float
+dEQP-VK.subgroups.partitioned.compute.subgroupmax_float_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupinclusiveadd_float
+dEQP-VK.subgroups.partitioned.compute.subgroupinclusiveadd_float_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupinclusivemul_float
+dEQP-VK.subgroups.partitioned.compute.subgroupinclusivemul_float_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupinclusivemin_float
+dEQP-VK.subgroups.partitioned.compute.subgroupinclusivemin_float_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupinclusivemax_float
+dEQP-VK.subgroups.partitioned.compute.subgroupinclusivemax_float_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupexclusiveadd_float
+dEQP-VK.subgroups.partitioned.compute.subgroupexclusiveadd_float_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupexclusivemul_float
+dEQP-VK.subgroups.partitioned.compute.subgroupexclusivemul_float_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupexclusivemin_float
+dEQP-VK.subgroups.partitioned.compute.subgroupexclusivemin_float_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupexclusivemax_float
+dEQP-VK.subgroups.partitioned.compute.subgroupexclusivemax_float_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupadd_vec2
+dEQP-VK.subgroups.partitioned.compute.subgroupadd_vec2_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupmul_vec2
+dEQP-VK.subgroups.partitioned.compute.subgroupmul_vec2_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupmin_vec2
+dEQP-VK.subgroups.partitioned.compute.subgroupmin_vec2_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupmax_vec2
+dEQP-VK.subgroups.partitioned.compute.subgroupmax_vec2_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupinclusiveadd_vec2
+dEQP-VK.subgroups.partitioned.compute.subgroupinclusiveadd_vec2_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupinclusivemul_vec2
+dEQP-VK.subgroups.partitioned.compute.subgroupinclusivemul_vec2_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupinclusivemin_vec2
+dEQP-VK.subgroups.partitioned.compute.subgroupinclusivemin_vec2_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupinclusivemax_vec2
+dEQP-VK.subgroups.partitioned.compute.subgroupinclusivemax_vec2_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupexclusiveadd_vec2
+dEQP-VK.subgroups.partitioned.compute.subgroupexclusiveadd_vec2_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupexclusivemul_vec2
+dEQP-VK.subgroups.partitioned.compute.subgroupexclusivemul_vec2_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupexclusivemin_vec2
+dEQP-VK.subgroups.partitioned.compute.subgroupexclusivemin_vec2_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupexclusivemax_vec2
+dEQP-VK.subgroups.partitioned.compute.subgroupexclusivemax_vec2_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupadd_vec3
+dEQP-VK.subgroups.partitioned.compute.subgroupadd_vec3_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupmul_vec3
+dEQP-VK.subgroups.partitioned.compute.subgroupmul_vec3_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupmin_vec3
+dEQP-VK.subgroups.partitioned.compute.subgroupmin_vec3_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupmax_vec3
+dEQP-VK.subgroups.partitioned.compute.subgroupmax_vec3_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupinclusiveadd_vec3
+dEQP-VK.subgroups.partitioned.compute.subgroupinclusiveadd_vec3_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupinclusivemul_vec3
+dEQP-VK.subgroups.partitioned.compute.subgroupinclusivemul_vec3_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupinclusivemin_vec3
+dEQP-VK.subgroups.partitioned.compute.subgroupinclusivemin_vec3_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupinclusivemax_vec3
+dEQP-VK.subgroups.partitioned.compute.subgroupinclusivemax_vec3_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupexclusiveadd_vec3
+dEQP-VK.subgroups.partitioned.compute.subgroupexclusiveadd_vec3_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupexclusivemul_vec3
+dEQP-VK.subgroups.partitioned.compute.subgroupexclusivemul_vec3_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupexclusivemin_vec3
+dEQP-VK.subgroups.partitioned.compute.subgroupexclusivemin_vec3_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupexclusivemax_vec3
+dEQP-VK.subgroups.partitioned.compute.subgroupexclusivemax_vec3_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupadd_vec4
+dEQP-VK.subgroups.partitioned.compute.subgroupadd_vec4_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupmul_vec4
+dEQP-VK.subgroups.partitioned.compute.subgroupmul_vec4_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupmin_vec4
+dEQP-VK.subgroups.partitioned.compute.subgroupmin_vec4_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupmax_vec4
+dEQP-VK.subgroups.partitioned.compute.subgroupmax_vec4_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupinclusiveadd_vec4
+dEQP-VK.subgroups.partitioned.compute.subgroupinclusiveadd_vec4_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupinclusivemul_vec4
+dEQP-VK.subgroups.partitioned.compute.subgroupinclusivemul_vec4_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupinclusivemin_vec4
+dEQP-VK.subgroups.partitioned.compute.subgroupinclusivemin_vec4_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupinclusivemax_vec4
+dEQP-VK.subgroups.partitioned.compute.subgroupinclusivemax_vec4_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupexclusiveadd_vec4
+dEQP-VK.subgroups.partitioned.compute.subgroupexclusiveadd_vec4_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupexclusivemul_vec4
+dEQP-VK.subgroups.partitioned.compute.subgroupexclusivemul_vec4_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupexclusivemin_vec4
+dEQP-VK.subgroups.partitioned.compute.subgroupexclusivemin_vec4_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupexclusivemax_vec4
+dEQP-VK.subgroups.partitioned.compute.subgroupexclusivemax_vec4_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupadd_double
+dEQP-VK.subgroups.partitioned.compute.subgroupadd_double_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupmul_double
+dEQP-VK.subgroups.partitioned.compute.subgroupmul_double_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupmin_double
+dEQP-VK.subgroups.partitioned.compute.subgroupmin_double_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupmax_double
+dEQP-VK.subgroups.partitioned.compute.subgroupmax_double_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupinclusiveadd_double
+dEQP-VK.subgroups.partitioned.compute.subgroupinclusiveadd_double_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupinclusivemul_double
+dEQP-VK.subgroups.partitioned.compute.subgroupinclusivemul_double_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupinclusivemin_double
+dEQP-VK.subgroups.partitioned.compute.subgroupinclusivemin_double_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupinclusivemax_double
+dEQP-VK.subgroups.partitioned.compute.subgroupinclusivemax_double_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupexclusiveadd_double
+dEQP-VK.subgroups.partitioned.compute.subgroupexclusiveadd_double_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupexclusivemul_double
+dEQP-VK.subgroups.partitioned.compute.subgroupexclusivemul_double_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupexclusivemin_double
+dEQP-VK.subgroups.partitioned.compute.subgroupexclusivemin_double_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupexclusivemax_double
+dEQP-VK.subgroups.partitioned.compute.subgroupexclusivemax_double_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupadd_dvec2
+dEQP-VK.subgroups.partitioned.compute.subgroupadd_dvec2_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupmul_dvec2
+dEQP-VK.subgroups.partitioned.compute.subgroupmul_dvec2_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupmin_dvec2
+dEQP-VK.subgroups.partitioned.compute.subgroupmin_dvec2_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupmax_dvec2
+dEQP-VK.subgroups.partitioned.compute.subgroupmax_dvec2_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupinclusiveadd_dvec2
+dEQP-VK.subgroups.partitioned.compute.subgroupinclusiveadd_dvec2_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupinclusivemul_dvec2
+dEQP-VK.subgroups.partitioned.compute.subgroupinclusivemul_dvec2_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupinclusivemin_dvec2
+dEQP-VK.subgroups.partitioned.compute.subgroupinclusivemin_dvec2_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupinclusivemax_dvec2
+dEQP-VK.subgroups.partitioned.compute.subgroupinclusivemax_dvec2_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupexclusiveadd_dvec2
+dEQP-VK.subgroups.partitioned.compute.subgroupexclusiveadd_dvec2_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupexclusivemul_dvec2
+dEQP-VK.subgroups.partitioned.compute.subgroupexclusivemul_dvec2_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupexclusivemin_dvec2
+dEQP-VK.subgroups.partitioned.compute.subgroupexclusivemin_dvec2_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupexclusivemax_dvec2
+dEQP-VK.subgroups.partitioned.compute.subgroupexclusivemax_dvec2_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupadd_dvec3
+dEQP-VK.subgroups.partitioned.compute.subgroupadd_dvec3_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupmul_dvec3
+dEQP-VK.subgroups.partitioned.compute.subgroupmul_dvec3_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupmin_dvec3
+dEQP-VK.subgroups.partitioned.compute.subgroupmin_dvec3_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupmax_dvec3
+dEQP-VK.subgroups.partitioned.compute.subgroupmax_dvec3_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupinclusiveadd_dvec3
+dEQP-VK.subgroups.partitioned.compute.subgroupinclusiveadd_dvec3_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupinclusivemul_dvec3
+dEQP-VK.subgroups.partitioned.compute.subgroupinclusivemul_dvec3_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupinclusivemin_dvec3
+dEQP-VK.subgroups.partitioned.compute.subgroupinclusivemin_dvec3_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupinclusivemax_dvec3
+dEQP-VK.subgroups.partitioned.compute.subgroupinclusivemax_dvec3_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupexclusiveadd_dvec3
+dEQP-VK.subgroups.partitioned.compute.subgroupexclusiveadd_dvec3_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupexclusivemul_dvec3
+dEQP-VK.subgroups.partitioned.compute.subgroupexclusivemul_dvec3_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupexclusivemin_dvec3
+dEQP-VK.subgroups.partitioned.compute.subgroupexclusivemin_dvec3_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupexclusivemax_dvec3
+dEQP-VK.subgroups.partitioned.compute.subgroupexclusivemax_dvec3_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupadd_dvec4
+dEQP-VK.subgroups.partitioned.compute.subgroupadd_dvec4_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupmul_dvec4
+dEQP-VK.subgroups.partitioned.compute.subgroupmul_dvec4_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupmin_dvec4
+dEQP-VK.subgroups.partitioned.compute.subgroupmin_dvec4_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupmax_dvec4
+dEQP-VK.subgroups.partitioned.compute.subgroupmax_dvec4_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupinclusiveadd_dvec4
+dEQP-VK.subgroups.partitioned.compute.subgroupinclusiveadd_dvec4_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupinclusivemul_dvec4
+dEQP-VK.subgroups.partitioned.compute.subgroupinclusivemul_dvec4_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupinclusivemin_dvec4
+dEQP-VK.subgroups.partitioned.compute.subgroupinclusivemin_dvec4_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupinclusivemax_dvec4
+dEQP-VK.subgroups.partitioned.compute.subgroupinclusivemax_dvec4_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupexclusiveadd_dvec4
+dEQP-VK.subgroups.partitioned.compute.subgroupexclusiveadd_dvec4_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupexclusivemul_dvec4
+dEQP-VK.subgroups.partitioned.compute.subgroupexclusivemul_dvec4_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupexclusivemin_dvec4
+dEQP-VK.subgroups.partitioned.compute.subgroupexclusivemin_dvec4_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupexclusivemax_dvec4
+dEQP-VK.subgroups.partitioned.compute.subgroupexclusivemax_dvec4_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupand_bool
+dEQP-VK.subgroups.partitioned.compute.subgroupand_bool_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupor_bool
+dEQP-VK.subgroups.partitioned.compute.subgroupor_bool_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupxor_bool
+dEQP-VK.subgroups.partitioned.compute.subgroupxor_bool_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupinclusiveand_bool
+dEQP-VK.subgroups.partitioned.compute.subgroupinclusiveand_bool_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupinclusiveor_bool
+dEQP-VK.subgroups.partitioned.compute.subgroupinclusiveor_bool_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupinclusivexor_bool
+dEQP-VK.subgroups.partitioned.compute.subgroupinclusivexor_bool_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupexclusiveand_bool
+dEQP-VK.subgroups.partitioned.compute.subgroupexclusiveand_bool_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupexclusiveor_bool
+dEQP-VK.subgroups.partitioned.compute.subgroupexclusiveor_bool_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupexclusivexor_bool
+dEQP-VK.subgroups.partitioned.compute.subgroupexclusivexor_bool_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupand_bvec2
+dEQP-VK.subgroups.partitioned.compute.subgroupand_bvec2_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupor_bvec2
+dEQP-VK.subgroups.partitioned.compute.subgroupor_bvec2_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupxor_bvec2
+dEQP-VK.subgroups.partitioned.compute.subgroupxor_bvec2_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupinclusiveand_bvec2
+dEQP-VK.subgroups.partitioned.compute.subgroupinclusiveand_bvec2_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupinclusiveor_bvec2
+dEQP-VK.subgroups.partitioned.compute.subgroupinclusiveor_bvec2_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupinclusivexor_bvec2
+dEQP-VK.subgroups.partitioned.compute.subgroupinclusivexor_bvec2_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupexclusiveand_bvec2
+dEQP-VK.subgroups.partitioned.compute.subgroupexclusiveand_bvec2_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupexclusiveor_bvec2
+dEQP-VK.subgroups.partitioned.compute.subgroupexclusiveor_bvec2_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupexclusivexor_bvec2
+dEQP-VK.subgroups.partitioned.compute.subgroupexclusivexor_bvec2_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupand_bvec3
+dEQP-VK.subgroups.partitioned.compute.subgroupand_bvec3_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupor_bvec3
+dEQP-VK.subgroups.partitioned.compute.subgroupor_bvec3_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupxor_bvec3
+dEQP-VK.subgroups.partitioned.compute.subgroupxor_bvec3_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupinclusiveand_bvec3
+dEQP-VK.subgroups.partitioned.compute.subgroupinclusiveand_bvec3_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupinclusiveor_bvec3
+dEQP-VK.subgroups.partitioned.compute.subgroupinclusiveor_bvec3_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupinclusivexor_bvec3
+dEQP-VK.subgroups.partitioned.compute.subgroupinclusivexor_bvec3_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupexclusiveand_bvec3
+dEQP-VK.subgroups.partitioned.compute.subgroupexclusiveand_bvec3_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupexclusiveor_bvec3
+dEQP-VK.subgroups.partitioned.compute.subgroupexclusiveor_bvec3_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupexclusivexor_bvec3
+dEQP-VK.subgroups.partitioned.compute.subgroupexclusivexor_bvec3_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupand_bvec4
+dEQP-VK.subgroups.partitioned.compute.subgroupand_bvec4_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupor_bvec4
+dEQP-VK.subgroups.partitioned.compute.subgroupor_bvec4_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupxor_bvec4
+dEQP-VK.subgroups.partitioned.compute.subgroupxor_bvec4_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupinclusiveand_bvec4
+dEQP-VK.subgroups.partitioned.compute.subgroupinclusiveand_bvec4_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupinclusiveor_bvec4
+dEQP-VK.subgroups.partitioned.compute.subgroupinclusiveor_bvec4_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupinclusivexor_bvec4
+dEQP-VK.subgroups.partitioned.compute.subgroupinclusivexor_bvec4_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupexclusiveand_bvec4
+dEQP-VK.subgroups.partitioned.compute.subgroupexclusiveand_bvec4_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupexclusiveor_bvec4
+dEQP-VK.subgroups.partitioned.compute.subgroupexclusiveor_bvec4_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupexclusivexor_bvec4
+dEQP-VK.subgroups.partitioned.compute.subgroupexclusivexor_bvec4_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.framebuffer.subgroupadd_int8_t_vertex
 dEQP-VK.subgroups.partitioned.framebuffer.subgroupadd_int8_t_tess_eval
 dEQP-VK.subgroups.partitioned.framebuffer.subgroupadd_int8_t_tess_control
@@ -521708,197 +523926,389 @@ dEQP-VK.subgroups.shuffle.graphics.subgroupshufflexor_bvec4
 dEQP-VK.subgroups.shuffle.graphics.subgroupshuffleup_bvec4
 dEQP-VK.subgroups.shuffle.graphics.subgroupshuffledown_bvec4
 dEQP-VK.subgroups.shuffle.compute.subgroupshuffle_int8_t
+dEQP-VK.subgroups.shuffle.compute.subgroupshuffle_int8_t_requiredsubgroupsize
 dEQP-VK.subgroups.shuffle.compute.subgroupshufflexor_int8_t
+dEQP-VK.subgroups.shuffle.compute.subgroupshufflexor_int8_t_requiredsubgroupsize
 dEQP-VK.subgroups.shuffle.compute.subgroupshuffleup_int8_t
+dEQP-VK.subgroups.shuffle.compute.subgroupshuffleup_int8_t_requiredsubgroupsize
 dEQP-VK.subgroups.shuffle.compute.subgroupshuffledown_int8_t
+dEQP-VK.subgroups.shuffle.compute.subgroupshuffledown_int8_t_requiredsubgroupsize
 dEQP-VK.subgroups.shuffle.compute.subgroupshuffle_i8vec2
+dEQP-VK.subgroups.shuffle.compute.subgroupshuffle_i8vec2_requiredsubgroupsize
 dEQP-VK.subgroups.shuffle.compute.subgroupshufflexor_i8vec2
+dEQP-VK.subgroups.shuffle.compute.subgroupshufflexor_i8vec2_requiredsubgroupsize
 dEQP-VK.subgroups.shuffle.compute.subgroupshuffleup_i8vec2
+dEQP-VK.subgroups.shuffle.compute.subgroupshuffleup_i8vec2_requiredsubgroupsize
 dEQP-VK.subgroups.shuffle.compute.subgroupshuffledown_i8vec2
+dEQP-VK.subgroups.shuffle.compute.subgroupshuffledown_i8vec2_requiredsubgroupsize
 dEQP-VK.subgroups.shuffle.compute.subgroupshuffle_i8vec3
+dEQP-VK.subgroups.shuffle.compute.subgroupshuffle_i8vec3_requiredsubgroupsize
 dEQP-VK.subgroups.shuffle.compute.subgroupshufflexor_i8vec3
+dEQP-VK.subgroups.shuffle.compute.subgroupshufflexor_i8vec3_requiredsubgroupsize
 dEQP-VK.subgroups.shuffle.compute.subgroupshuffleup_i8vec3
+dEQP-VK.subgroups.shuffle.compute.subgroupshuffleup_i8vec3_requiredsubgroupsize
 dEQP-VK.subgroups.shuffle.compute.subgroupshuffledown_i8vec3
+dEQP-VK.subgroups.shuffle.compute.subgroupshuffledown_i8vec3_requiredsubgroupsize
 dEQP-VK.subgroups.shuffle.compute.subgroupshuffle_i8vec4
+dEQP-VK.subgroups.shuffle.compute.subgroupshuffle_i8vec4_requiredsubgroupsize
 dEQP-VK.subgroups.shuffle.compute.subgroupshufflexor_i8vec4
+dEQP-VK.subgroups.shuffle.compute.subgroupshufflexor_i8vec4_requiredsubgroupsize
 dEQP-VK.subgroups.shuffle.compute.subgroupshuffleup_i8vec4
+dEQP-VK.subgroups.shuffle.compute.subgroupshuffleup_i8vec4_requiredsubgroupsize
 dEQP-VK.subgroups.shuffle.compute.subgroupshuffledown_i8vec4
+dEQP-VK.subgroups.shuffle.compute.subgroupshuffledown_i8vec4_requiredsubgroupsize
 dEQP-VK.subgroups.shuffle.compute.subgroupshuffle_uint8_t
+dEQP-VK.subgroups.shuffle.compute.subgroupshuffle_uint8_t_requiredsubgroupsize
 dEQP-VK.subgroups.shuffle.compute.subgroupshufflexor_uint8_t
+dEQP-VK.subgroups.shuffle.compute.subgroupshufflexor_uint8_t_requiredsubgroupsize
 dEQP-VK.subgroups.shuffle.compute.subgroupshuffleup_uint8_t
+dEQP-VK.subgroups.shuffle.compute.subgroupshuffleup_uint8_t_requiredsubgroupsize
 dEQP-VK.subgroups.shuffle.compute.subgroupshuffledown_uint8_t
+dEQP-VK.subgroups.shuffle.compute.subgroupshuffledown_uint8_t_requiredsubgroupsize
 dEQP-VK.subgroups.shuffle.compute.subgroupshuffle_u8vec2
+dEQP-VK.subgroups.shuffle.compute.subgroupshuffle_u8vec2_requiredsubgroupsize
 dEQP-VK.subgroups.shuffle.compute.subgroupshufflexor_u8vec2
+dEQP-VK.subgroups.shuffle.compute.subgroupshufflexor_u8vec2_requiredsubgroupsize
 dEQP-VK.subgroups.shuffle.compute.subgroupshuffleup_u8vec2
+dEQP-VK.subgroups.shuffle.compute.subgroupshuffleup_u8vec2_requiredsubgroupsize
 dEQP-VK.subgroups.shuffle.compute.subgroupshuffledown_u8vec2
+dEQP-VK.subgroups.shuffle.compute.subgroupshuffledown_u8vec2_requiredsubgroupsize
 dEQP-VK.subgroups.shuffle.compute.subgroupshuffle_u8vec3
+dEQP-VK.subgroups.shuffle.compute.subgroupshuffle_u8vec3_requiredsubgroupsize
 dEQP-VK.subgroups.shuffle.compute.subgroupshufflexor_u8vec3
+dEQP-VK.subgroups.shuffle.compute.subgroupshufflexor_u8vec3_requiredsubgroupsize
 dEQP-VK.subgroups.shuffle.compute.subgroupshuffleup_u8vec3
+dEQP-VK.subgroups.shuffle.compute.subgroupshuffleup_u8vec3_requiredsubgroupsize
 dEQP-VK.subgroups.shuffle.compute.subgroupshuffledown_u8vec3
+dEQP-VK.subgroups.shuffle.compute.subgroupshuffledown_u8vec3_requiredsubgroupsize
 dEQP-VK.subgroups.shuffle.compute.subgroupshuffle_u8vec4
+dEQP-VK.subgroups.shuffle.compute.subgroupshuffle_u8vec4_requiredsubgroupsize
 dEQP-VK.subgroups.shuffle.compute.subgroupshufflexor_u8vec4
+dEQP-VK.subgroups.shuffle.compute.subgroupshufflexor_u8vec4_requiredsubgroupsize
 dEQP-VK.subgroups.shuffle.compute.subgroupshuffleup_u8vec4
+dEQP-VK.subgroups.shuffle.compute.subgroupshuffleup_u8vec4_requiredsubgroupsize
 dEQP-VK.subgroups.shuffle.compute.subgroupshuffledown_u8vec4
+dEQP-VK.subgroups.shuffle.compute.subgroupshuffledown_u8vec4_requiredsubgroupsize
 dEQP-VK.subgroups.shuffle.compute.subgroupshuffle_int16_t
+dEQP-VK.subgroups.shuffle.compute.subgroupshuffle_int16_t_requiredsubgroupsize
 dEQP-VK.subgroups.shuffle.compute.subgroupshufflexor_int16_t
+dEQP-VK.subgroups.shuffle.compute.subgroupshufflexor_int16_t_requiredsubgroupsize
 dEQP-VK.subgroups.shuffle.compute.subgroupshuffleup_int16_t
+dEQP-VK.subgroups.shuffle.compute.subgroupshuffleup_int16_t_requiredsubgroupsize
 dEQP-VK.subgroups.shuffle.compute.subgroupshuffledown_int16_t
+dEQP-VK.subgroups.shuffle.compute.subgroupshuffledown_int16_t_requiredsubgroupsize
 dEQP-VK.subgroups.shuffle.compute.subgroupshuffle_i16vec2
+dEQP-VK.subgroups.shuffle.compute.subgroupshuffle_i16vec2_requiredsubgroupsize
 dEQP-VK.subgroups.shuffle.compute.subgroupshufflexor_i16vec2
+dEQP-VK.subgroups.shuffle.compute.subgroupshufflexor_i16vec2_requiredsubgroupsize
 dEQP-VK.subgroups.shuffle.compute.subgroupshuffleup_i16vec2
+dEQP-VK.subgroups.shuffle.compute.subgroupshuffleup_i16vec2_requiredsubgroupsize
 dEQP-VK.subgroups.shuffle.compute.subgroupshuffledown_i16vec2
+dEQP-VK.subgroups.shuffle.compute.subgroupshuffledown_i16vec2_requiredsubgroupsize
 dEQP-VK.subgroups.shuffle.compute.subgroupshuffle_i16vec3
+dEQP-VK.subgroups.shuffle.compute.subgroupshuffle_i16vec3_requiredsubgroupsize
 dEQP-VK.subgroups.shuffle.compute.subgroupshufflexor_i16vec3
+dEQP-VK.subgroups.shuffle.compute.subgroupshufflexor_i16vec3_requiredsubgroupsize
 dEQP-VK.subgroups.shuffle.compute.subgroupshuffleup_i16vec3
+dEQP-VK.subgroups.shuffle.compute.subgroupshuffleup_i16vec3_requiredsubgroupsize
 dEQP-VK.subgroups.shuffle.compute.subgroupshuffledown_i16vec3
+dEQP-VK.subgroups.shuffle.compute.subgroupshuffledown_i16vec3_requiredsubgroupsize
 dEQP-VK.subgroups.shuffle.compute.subgroupshuffle_i16vec4
+dEQP-VK.subgroups.shuffle.compute.subgroupshuffle_i16vec4_requiredsubgroupsize
 dEQP-VK.subgroups.shuffle.compute.subgroupshufflexor_i16vec4
+dEQP-VK.subgroups.shuffle.compute.subgroupshufflexor_i16vec4_requiredsubgroupsize
 dEQP-VK.subgroups.shuffle.compute.subgroupshuffleup_i16vec4
+dEQP-VK.subgroups.shuffle.compute.subgroupshuffleup_i16vec4_requiredsubgroupsize
 dEQP-VK.subgroups.shuffle.compute.subgroupshuffledown_i16vec4
+dEQP-VK.subgroups.shuffle.compute.subgroupshuffledown_i16vec4_requiredsubgroupsize
 dEQP-VK.subgroups.shuffle.compute.subgroupshuffle_uint16_t
+dEQP-VK.subgroups.shuffle.compute.subgroupshuffle_uint16_t_requiredsubgroupsize
 dEQP-VK.subgroups.shuffle.compute.subgroupshufflexor_uint16_t
+dEQP-VK.subgroups.shuffle.compute.subgroupshufflexor_uint16_t_requiredsubgroupsize
 dEQP-VK.subgroups.shuffle.compute.subgroupshuffleup_uint16_t
+dEQP-VK.subgroups.shuffle.compute.subgroupshuffleup_uint16_t_requiredsubgroupsize
 dEQP-VK.subgroups.shuffle.compute.subgroupshuffledown_uint16_t
+dEQP-VK.subgroups.shuffle.compute.subgroupshuffledown_uint16_t_requiredsubgroupsize
 dEQP-VK.subgroups.shuffle.compute.subgroupshuffle_u16vec2
+dEQP-VK.subgroups.shuffle.compute.subgroupshuffle_u16vec2_requiredsubgroupsize
 dEQP-VK.subgroups.shuffle.compute.subgroupshufflexor_u16vec2
+dEQP-VK.subgroups.shuffle.compute.subgroupshufflexor_u16vec2_requiredsubgroupsize
 dEQP-VK.subgroups.shuffle.compute.subgroupshuffleup_u16vec2
+dEQP-VK.subgroups.shuffle.compute.subgroupshuffleup_u16vec2_requiredsubgroupsize
 dEQP-VK.subgroups.shuffle.compute.subgroupshuffledown_u16vec2
+dEQP-VK.subgroups.shuffle.compute.subgroupshuffledown_u16vec2_requiredsubgroupsize
 dEQP-VK.subgroups.shuffle.compute.subgroupshuffle_u16vec3
+dEQP-VK.subgroups.shuffle.compute.subgroupshuffle_u16vec3_requiredsubgroupsize
 dEQP-VK.subgroups.shuffle.compute.subgroupshufflexor_u16vec3
+dEQP-VK.subgroups.shuffle.compute.subgroupshufflexor_u16vec3_requiredsubgroupsize
 dEQP-VK.subgroups.shuffle.compute.subgroupshuffleup_u16vec3
+dEQP-VK.subgroups.shuffle.compute.subgroupshuffleup_u16vec3_requiredsubgroupsize
 dEQP-VK.subgroups.shuffle.compute.subgroupshuffledown_u16vec3
+dEQP-VK.subgroups.shuffle.compute.subgroupshuffledown_u16vec3_requiredsubgroupsize
 dEQP-VK.subgroups.shuffle.compute.subgroupshuffle_u16vec4
+dEQP-VK.subgroups.shuffle.compute.subgroupshuffle_u16vec4_requiredsubgroupsize
 dEQP-VK.subgroups.shuffle.compute.subgroupshufflexor_u16vec4
+dEQP-VK.subgroups.shuffle.compute.subgroupshufflexor_u16vec4_requiredsubgroupsize
 dEQP-VK.subgroups.shuffle.compute.subgroupshuffleup_u16vec4
+dEQP-VK.subgroups.shuffle.compute.subgroupshuffleup_u16vec4_requiredsubgroupsize
 dEQP-VK.subgroups.shuffle.compute.subgroupshuffledown_u16vec4
+dEQP-VK.subgroups.shuffle.compute.subgroupshuffledown_u16vec4_requiredsubgroupsize
 dEQP-VK.subgroups.shuffle.compute.subgroupshuffle_int
+dEQP-VK.subgroups.shuffle.compute.subgroupshuffle_int_requiredsubgroupsize
 dEQP-VK.subgroups.shuffle.compute.subgroupshufflexor_int
+dEQP-VK.subgroups.shuffle.compute.subgroupshufflexor_int_requiredsubgroupsize
 dEQP-VK.subgroups.shuffle.compute.subgroupshuffleup_int
+dEQP-VK.subgroups.shuffle.compute.subgroupshuffleup_int_requiredsubgroupsize
 dEQP-VK.subgroups.shuffle.compute.subgroupshuffledown_int
+dEQP-VK.subgroups.shuffle.compute.subgroupshuffledown_int_requiredsubgroupsize
 dEQP-VK.subgroups.shuffle.compute.subgroupshuffle_ivec2
+dEQP-VK.subgroups.shuffle.compute.subgroupshuffle_ivec2_requiredsubgroupsize
 dEQP-VK.subgroups.shuffle.compute.subgroupshufflexor_ivec2
+dEQP-VK.subgroups.shuffle.compute.subgroupshufflexor_ivec2_requiredsubgroupsize
 dEQP-VK.subgroups.shuffle.compute.subgroupshuffleup_ivec2
+dEQP-VK.subgroups.shuffle.compute.subgroupshuffleup_ivec2_requiredsubgroupsize
 dEQP-VK.subgroups.shuffle.compute.subgroupshuffledown_ivec2
+dEQP-VK.subgroups.shuffle.compute.subgroupshuffledown_ivec2_requiredsubgroupsize
 dEQP-VK.subgroups.shuffle.compute.subgroupshuffle_ivec3
+dEQP-VK.subgroups.shuffle.compute.subgroupshuffle_ivec3_requiredsubgroupsize
 dEQP-VK.subgroups.shuffle.compute.subgroupshufflexor_ivec3
+dEQP-VK.subgroups.shuffle.compute.subgroupshufflexor_ivec3_requiredsubgroupsize
 dEQP-VK.subgroups.shuffle.compute.subgroupshuffleup_ivec3
+dEQP-VK.subgroups.shuffle.compute.subgroupshuffleup_ivec3_requiredsubgroupsize
 dEQP-VK.subgroups.shuffle.compute.subgroupshuffledown_ivec3
+dEQP-VK.subgroups.shuffle.compute.subgroupshuffledown_ivec3_requiredsubgroupsize
 dEQP-VK.subgroups.shuffle.compute.subgroupshuffle_ivec4
+dEQP-VK.subgroups.shuffle.compute.subgroupshuffle_ivec4_requiredsubgroupsize
 dEQP-VK.subgroups.shuffle.compute.subgroupshufflexor_ivec4
+dEQP-VK.subgroups.shuffle.compute.subgroupshufflexor_ivec4_requiredsubgroupsize
 dEQP-VK.subgroups.shuffle.compute.subgroupshuffleup_ivec4
+dEQP-VK.subgroups.shuffle.compute.subgroupshuffleup_ivec4_requiredsubgroupsize
 dEQP-VK.subgroups.shuffle.compute.subgroupshuffledown_ivec4
+dEQP-VK.subgroups.shuffle.compute.subgroupshuffledown_ivec4_requiredsubgroupsize
 dEQP-VK.subgroups.shuffle.compute.subgroupshuffle_uint
+dEQP-VK.subgroups.shuffle.compute.subgroupshuffle_uint_requiredsubgroupsize
 dEQP-VK.subgroups.shuffle.compute.subgroupshufflexor_uint
+dEQP-VK.subgroups.shuffle.compute.subgroupshufflexor_uint_requiredsubgroupsize
 dEQP-VK.subgroups.shuffle.compute.subgroupshuffleup_uint
+dEQP-VK.subgroups.shuffle.compute.subgroupshuffleup_uint_requiredsubgroupsize
 dEQP-VK.subgroups.shuffle.compute.subgroupshuffledown_uint
+dEQP-VK.subgroups.shuffle.compute.subgroupshuffledown_uint_requiredsubgroupsize
 dEQP-VK.subgroups.shuffle.compute.subgroupshuffle_uvec2
+dEQP-VK.subgroups.shuffle.compute.subgroupshuffle_uvec2_requiredsubgroupsize
 dEQP-VK.subgroups.shuffle.compute.subgroupshufflexor_uvec2
+dEQP-VK.subgroups.shuffle.compute.subgroupshufflexor_uvec2_requiredsubgroupsize
 dEQP-VK.subgroups.shuffle.compute.subgroupshuffleup_uvec2
+dEQP-VK.subgroups.shuffle.compute.subgroupshuffleup_uvec2_requiredsubgroupsize
 dEQP-VK.subgroups.shuffle.compute.subgroupshuffledown_uvec2
+dEQP-VK.subgroups.shuffle.compute.subgroupshuffledown_uvec2_requiredsubgroupsize
 dEQP-VK.subgroups.shuffle.compute.subgroupshuffle_uvec3
+dEQP-VK.subgroups.shuffle.compute.subgroupshuffle_uvec3_requiredsubgroupsize
 dEQP-VK.subgroups.shuffle.compute.subgroupshufflexor_uvec3
+dEQP-VK.subgroups.shuffle.compute.subgroupshufflexor_uvec3_requiredsubgroupsize
 dEQP-VK.subgroups.shuffle.compute.subgroupshuffleup_uvec3
+dEQP-VK.subgroups.shuffle.compute.subgroupshuffleup_uvec3_requiredsubgroupsize
 dEQP-VK.subgroups.shuffle.compute.subgroupshuffledown_uvec3
+dEQP-VK.subgroups.shuffle.compute.subgroupshuffledown_uvec3_requiredsubgroupsize
 dEQP-VK.subgroups.shuffle.compute.subgroupshuffle_uvec4
+dEQP-VK.subgroups.shuffle.compute.subgroupshuffle_uvec4_requiredsubgroupsize
 dEQP-VK.subgroups.shuffle.compute.subgroupshufflexor_uvec4
+dEQP-VK.subgroups.shuffle.compute.subgroupshufflexor_uvec4_requiredsubgroupsize
 dEQP-VK.subgroups.shuffle.compute.subgroupshuffleup_uvec4
+dEQP-VK.subgroups.shuffle.compute.subgroupshuffleup_uvec4_requiredsubgroupsize
 dEQP-VK.subgroups.shuffle.compute.subgroupshuffledown_uvec4
+dEQP-VK.subgroups.shuffle.compute.subgroupshuffledown_uvec4_requiredsubgroupsize
 dEQP-VK.subgroups.shuffle.compute.subgroupshuffle_int64_t
+dEQP-VK.subgroups.shuffle.compute.subgroupshuffle_int64_t_requiredsubgroupsize
 dEQP-VK.subgroups.shuffle.compute.subgroupshufflexor_int64_t
+dEQP-VK.subgroups.shuffle.compute.subgroupshufflexor_int64_t_requiredsubgroupsize
 dEQP-VK.subgroups.shuffle.compute.subgroupshuffleup_int64_t
+dEQP-VK.subgroups.shuffle.compute.subgroupshuffleup_int64_t_requiredsubgroupsize
 dEQP-VK.subgroups.shuffle.compute.subgroupshuffledown_int64_t
+dEQP-VK.subgroups.shuffle.compute.subgroupshuffledown_int64_t_requiredsubgroupsize
 dEQP-VK.subgroups.shuffle.compute.subgroupshuffle_i64vec2
+dEQP-VK.subgroups.shuffle.compute.subgroupshuffle_i64vec2_requiredsubgroupsize
 dEQP-VK.subgroups.shuffle.compute.subgroupshufflexor_i64vec2
+dEQP-VK.subgroups.shuffle.compute.subgroupshufflexor_i64vec2_requiredsubgroupsize
 dEQP-VK.subgroups.shuffle.compute.subgroupshuffleup_i64vec2
+dEQP-VK.subgroups.shuffle.compute.subgroupshuffleup_i64vec2_requiredsubgroupsize
 dEQP-VK.subgroups.shuffle.compute.subgroupshuffledown_i64vec2
+dEQP-VK.subgroups.shuffle.compute.subgroupshuffledown_i64vec2_requiredsubgroupsize
 dEQP-VK.subgroups.shuffle.compute.subgroupshuffle_i64vec3
+dEQP-VK.subgroups.shuffle.compute.subgroupshuffle_i64vec3_requiredsubgroupsize
 dEQP-VK.subgroups.shuffle.compute.subgroupshufflexor_i64vec3
+dEQP-VK.subgroups.shuffle.compute.subgroupshufflexor_i64vec3_requiredsubgroupsize
 dEQP-VK.subgroups.shuffle.compute.subgroupshuffleup_i64vec3
+dEQP-VK.subgroups.shuffle.compute.subgroupshuffleup_i64vec3_requiredsubgroupsize
 dEQP-VK.subgroups.shuffle.compute.subgroupshuffledown_i64vec3
+dEQP-VK.subgroups.shuffle.compute.subgroupshuffledown_i64vec3_requiredsubgroupsize
 dEQP-VK.subgroups.shuffle.compute.subgroupshuffle_i64vec4
+dEQP-VK.subgroups.shuffle.compute.subgroupshuffle_i64vec4_requiredsubgroupsize
 dEQP-VK.subgroups.shuffle.compute.subgroupshufflexor_i64vec4
+dEQP-VK.subgroups.shuffle.compute.subgroupshufflexor_i64vec4_requiredsubgroupsize
 dEQP-VK.subgroups.shuffle.compute.subgroupshuffleup_i64vec4
+dEQP-VK.subgroups.shuffle.compute.subgroupshuffleup_i64vec4_requiredsubgroupsize
 dEQP-VK.subgroups.shuffle.compute.subgroupshuffledown_i64vec4
+dEQP-VK.subgroups.shuffle.compute.subgroupshuffledown_i64vec4_requiredsubgroupsize
 dEQP-VK.subgroups.shuffle.compute.subgroupshuffle_uint64_t
+dEQP-VK.subgroups.shuffle.compute.subgroupshuffle_uint64_t_requiredsubgroupsize
 dEQP-VK.subgroups.shuffle.compute.subgroupshufflexor_uint64_t
+dEQP-VK.subgroups.shuffle.compute.subgroupshufflexor_uint64_t_requiredsubgroupsize
 dEQP-VK.subgroups.shuffle.compute.subgroupshuffleup_uint64_t
+dEQP-VK.subgroups.shuffle.compute.subgroupshuffleup_uint64_t_requiredsubgroupsize
 dEQP-VK.subgroups.shuffle.compute.subgroupshuffledown_uint64_t
+dEQP-VK.subgroups.shuffle.compute.subgroupshuffledown_uint64_t_requiredsubgroupsize
 dEQP-VK.subgroups.shuffle.compute.subgroupshuffle_u64vec2
+dEQP-VK.subgroups.shuffle.compute.subgroupshuffle_u64vec2_requiredsubgroupsize
 dEQP-VK.subgroups.shuffle.compute.subgroupshufflexor_u64vec2
+dEQP-VK.subgroups.shuffle.compute.subgroupshufflexor_u64vec2_requiredsubgroupsize
 dEQP-VK.subgroups.shuffle.compute.subgroupshuffleup_u64vec2
+dEQP-VK.subgroups.shuffle.compute.subgroupshuffleup_u64vec2_requiredsubgroupsize
 dEQP-VK.subgroups.shuffle.compute.subgroupshuffledown_u64vec2
+dEQP-VK.subgroups.shuffle.compute.subgroupshuffledown_u64vec2_requiredsubgroupsize
 dEQP-VK.subgroups.shuffle.compute.subgroupshuffle_u64vec3
+dEQP-VK.subgroups.shuffle.compute.subgroupshuffle_u64vec3_requiredsubgroupsize
 dEQP-VK.subgroups.shuffle.compute.subgroupshufflexor_u64vec3
+dEQP-VK.subgroups.shuffle.compute.subgroupshufflexor_u64vec3_requiredsubgroupsize
 dEQP-VK.subgroups.shuffle.compute.subgroupshuffleup_u64vec3
+dEQP-VK.subgroups.shuffle.compute.subgroupshuffleup_u64vec3_requiredsubgroupsize
 dEQP-VK.subgroups.shuffle.compute.subgroupshuffledown_u64vec3
+dEQP-VK.subgroups.shuffle.compute.subgroupshuffledown_u64vec3_requiredsubgroupsize
 dEQP-VK.subgroups.shuffle.compute.subgroupshuffle_u64vec4
+dEQP-VK.subgroups.shuffle.compute.subgroupshuffle_u64vec4_requiredsubgroupsize
 dEQP-VK.subgroups.shuffle.compute.subgroupshufflexor_u64vec4
+dEQP-VK.subgroups.shuffle.compute.subgroupshufflexor_u64vec4_requiredsubgroupsize
 dEQP-VK.subgroups.shuffle.compute.subgroupshuffleup_u64vec4
+dEQP-VK.subgroups.shuffle.compute.subgroupshuffleup_u64vec4_requiredsubgroupsize
 dEQP-VK.subgroups.shuffle.compute.subgroupshuffledown_u64vec4
+dEQP-VK.subgroups.shuffle.compute.subgroupshuffledown_u64vec4_requiredsubgroupsize
 dEQP-VK.subgroups.shuffle.compute.subgroupshuffle_float16_t
+dEQP-VK.subgroups.shuffle.compute.subgroupshuffle_float16_t_requiredsubgroupsize
 dEQP-VK.subgroups.shuffle.compute.subgroupshufflexor_float16_t
+dEQP-VK.subgroups.shuffle.compute.subgroupshufflexor_float16_t_requiredsubgroupsize
 dEQP-VK.subgroups.shuffle.compute.subgroupshuffleup_float16_t
+dEQP-VK.subgroups.shuffle.compute.subgroupshuffleup_float16_t_requiredsubgroupsize
 dEQP-VK.subgroups.shuffle.compute.subgroupshuffledown_float16_t
+dEQP-VK.subgroups.shuffle.compute.subgroupshuffledown_float16_t_requiredsubgroupsize
 dEQP-VK.subgroups.shuffle.compute.subgroupshuffle_f16vec2
+dEQP-VK.subgroups.shuffle.compute.subgroupshuffle_f16vec2_requiredsubgroupsize
 dEQP-VK.subgroups.shuffle.compute.subgroupshufflexor_f16vec2
+dEQP-VK.subgroups.shuffle.compute.subgroupshufflexor_f16vec2_requiredsubgroupsize
 dEQP-VK.subgroups.shuffle.compute.subgroupshuffleup_f16vec2
+dEQP-VK.subgroups.shuffle.compute.subgroupshuffleup_f16vec2_requiredsubgroupsize
 dEQP-VK.subgroups.shuffle.compute.subgroupshuffledown_f16vec2
+dEQP-VK.subgroups.shuffle.compute.subgroupshuffledown_f16vec2_requiredsubgroupsize
 dEQP-VK.subgroups.shuffle.compute.subgroupshuffle_f16vec3
+dEQP-VK.subgroups.shuffle.compute.subgroupshuffle_f16vec3_requiredsubgroupsize
 dEQP-VK.subgroups.shuffle.compute.subgroupshufflexor_f16vec3
+dEQP-VK.subgroups.shuffle.compute.subgroupshufflexor_f16vec3_requiredsubgroupsize
 dEQP-VK.subgroups.shuffle.compute.subgroupshuffleup_f16vec3
+dEQP-VK.subgroups.shuffle.compute.subgroupshuffleup_f16vec3_requiredsubgroupsize
 dEQP-VK.subgroups.shuffle.compute.subgroupshuffledown_f16vec3
+dEQP-VK.subgroups.shuffle.compute.subgroupshuffledown_f16vec3_requiredsubgroupsize
 dEQP-VK.subgroups.shuffle.compute.subgroupshuffle_f16vec4
+dEQP-VK.subgroups.shuffle.compute.subgroupshuffle_f16vec4_requiredsubgroupsize
 dEQP-VK.subgroups.shuffle.compute.subgroupshufflexor_f16vec4
+dEQP-VK.subgroups.shuffle.compute.subgroupshufflexor_f16vec4_requiredsubgroupsize
 dEQP-VK.subgroups.shuffle.compute.subgroupshuffleup_f16vec4
+dEQP-VK.subgroups.shuffle.compute.subgroupshuffleup_f16vec4_requiredsubgroupsize
 dEQP-VK.subgroups.shuffle.compute.subgroupshuffledown_f16vec4
+dEQP-VK.subgroups.shuffle.compute.subgroupshuffledown_f16vec4_requiredsubgroupsize
 dEQP-VK.subgroups.shuffle.compute.subgroupshuffle_float
+dEQP-VK.subgroups.shuffle.compute.subgroupshuffle_float_requiredsubgroupsize
 dEQP-VK.subgroups.shuffle.compute.subgroupshufflexor_float
+dEQP-VK.subgroups.shuffle.compute.subgroupshufflexor_float_requiredsubgroupsize
 dEQP-VK.subgroups.shuffle.compute.subgroupshuffleup_float
+dEQP-VK.subgroups.shuffle.compute.subgroupshuffleup_float_requiredsubgroupsize
 dEQP-VK.subgroups.shuffle.compute.subgroupshuffledown_float
+dEQP-VK.subgroups.shuffle.compute.subgroupshuffledown_float_requiredsubgroupsize
 dEQP-VK.subgroups.shuffle.compute.subgroupshuffle_vec2
+dEQP-VK.subgroups.shuffle.compute.subgroupshuffle_vec2_requiredsubgroupsize
 dEQP-VK.subgroups.shuffle.compute.subgroupshufflexor_vec2
+dEQP-VK.subgroups.shuffle.compute.subgroupshufflexor_vec2_requiredsubgroupsize
 dEQP-VK.subgroups.shuffle.compute.subgroupshuffleup_vec2
+dEQP-VK.subgroups.shuffle.compute.subgroupshuffleup_vec2_requiredsubgroupsize
 dEQP-VK.subgroups.shuffle.compute.subgroupshuffledown_vec2
+dEQP-VK.subgroups.shuffle.compute.subgroupshuffledown_vec2_requiredsubgroupsize
 dEQP-VK.subgroups.shuffle.compute.subgroupshuffle_vec3
+dEQP-VK.subgroups.shuffle.compute.subgroupshuffle_vec3_requiredsubgroupsize
 dEQP-VK.subgroups.shuffle.compute.subgroupshufflexor_vec3
+dEQP-VK.subgroups.shuffle.compute.subgroupshufflexor_vec3_requiredsubgroupsize
 dEQP-VK.subgroups.shuffle.compute.subgroupshuffleup_vec3
+dEQP-VK.subgroups.shuffle.compute.subgroupshuffleup_vec3_requiredsubgroupsize
 dEQP-VK.subgroups.shuffle.compute.subgroupshuffledown_vec3
+dEQP-VK.subgroups.shuffle.compute.subgroupshuffledown_vec3_requiredsubgroupsize
 dEQP-VK.subgroups.shuffle.compute.subgroupshuffle_vec4
+dEQP-VK.subgroups.shuffle.compute.subgroupshuffle_vec4_requiredsubgroupsize
 dEQP-VK.subgroups.shuffle.compute.subgroupshufflexor_vec4
+dEQP-VK.subgroups.shuffle.compute.subgroupshufflexor_vec4_requiredsubgroupsize
 dEQP-VK.subgroups.shuffle.compute.subgroupshuffleup_vec4
+dEQP-VK.subgroups.shuffle.compute.subgroupshuffleup_vec4_requiredsubgroupsize
 dEQP-VK.subgroups.shuffle.compute.subgroupshuffledown_vec4
+dEQP-VK.subgroups.shuffle.compute.subgroupshuffledown_vec4_requiredsubgroupsize
 dEQP-VK.subgroups.shuffle.compute.subgroupshuffle_double
+dEQP-VK.subgroups.shuffle.compute.subgroupshuffle_double_requiredsubgroupsize
 dEQP-VK.subgroups.shuffle.compute.subgroupshufflexor_double
+dEQP-VK.subgroups.shuffle.compute.subgroupshufflexor_double_requiredsubgroupsize
 dEQP-VK.subgroups.shuffle.compute.subgroupshuffleup_double
+dEQP-VK.subgroups.shuffle.compute.subgroupshuffleup_double_requiredsubgroupsize
 dEQP-VK.subgroups.shuffle.compute.subgroupshuffledown_double
+dEQP-VK.subgroups.shuffle.compute.subgroupshuffledown_double_requiredsubgroupsize
 dEQP-VK.subgroups.shuffle.compute.subgroupshuffle_dvec2
+dEQP-VK.subgroups.shuffle.compute.subgroupshuffle_dvec2_requiredsubgroupsize
 dEQP-VK.subgroups.shuffle.compute.subgroupshufflexor_dvec2
+dEQP-VK.subgroups.shuffle.compute.subgroupshufflexor_dvec2_requiredsubgroupsize
 dEQP-VK.subgroups.shuffle.compute.subgroupshuffleup_dvec2
+dEQP-VK.subgroups.shuffle.compute.subgroupshuffleup_dvec2_requiredsubgroupsize
 dEQP-VK.subgroups.shuffle.compute.subgroupshuffledown_dvec2
+dEQP-VK.subgroups.shuffle.compute.subgroupshuffledown_dvec2_requiredsubgroupsize
 dEQP-VK.subgroups.shuffle.compute.subgroupshuffle_dvec3
+dEQP-VK.subgroups.shuffle.compute.subgroupshuffle_dvec3_requiredsubgroupsize
 dEQP-VK.subgroups.shuffle.compute.subgroupshufflexor_dvec3
+dEQP-VK.subgroups.shuffle.compute.subgroupshufflexor_dvec3_requiredsubgroupsize
 dEQP-VK.subgroups.shuffle.compute.subgroupshuffleup_dvec3
+dEQP-VK.subgroups.shuffle.compute.subgroupshuffleup_dvec3_requiredsubgroupsize
 dEQP-VK.subgroups.shuffle.compute.subgroupshuffledown_dvec3
+dEQP-VK.subgroups.shuffle.compute.subgroupshuffledown_dvec3_requiredsubgroupsize
 dEQP-VK.subgroups.shuffle.compute.subgroupshuffle_dvec4
+dEQP-VK.subgroups.shuffle.compute.subgroupshuffle_dvec4_requiredsubgroupsize
 dEQP-VK.subgroups.shuffle.compute.subgroupshufflexor_dvec4
+dEQP-VK.subgroups.shuffle.compute.subgroupshufflexor_dvec4_requiredsubgroupsize
 dEQP-VK.subgroups.shuffle.compute.subgroupshuffleup_dvec4
+dEQP-VK.subgroups.shuffle.compute.subgroupshuffleup_dvec4_requiredsubgroupsize
 dEQP-VK.subgroups.shuffle.compute.subgroupshuffledown_dvec4
+dEQP-VK.subgroups.shuffle.compute.subgroupshuffledown_dvec4_requiredsubgroupsize
 dEQP-VK.subgroups.shuffle.compute.subgroupshuffle_bool
+dEQP-VK.subgroups.shuffle.compute.subgroupshuffle_bool_requiredsubgroupsize
 dEQP-VK.subgroups.shuffle.compute.subgroupshufflexor_bool
+dEQP-VK.subgroups.shuffle.compute.subgroupshufflexor_bool_requiredsubgroupsize
 dEQP-VK.subgroups.shuffle.compute.subgroupshuffleup_bool
+dEQP-VK.subgroups.shuffle.compute.subgroupshuffleup_bool_requiredsubgroupsize
 dEQP-VK.subgroups.shuffle.compute.subgroupshuffledown_bool
+dEQP-VK.subgroups.shuffle.compute.subgroupshuffledown_bool_requiredsubgroupsize
 dEQP-VK.subgroups.shuffle.compute.subgroupshuffle_bvec2
+dEQP-VK.subgroups.shuffle.compute.subgroupshuffle_bvec2_requiredsubgroupsize
 dEQP-VK.subgroups.shuffle.compute.subgroupshufflexor_bvec2
+dEQP-VK.subgroups.shuffle.compute.subgroupshufflexor_bvec2_requiredsubgroupsize
 dEQP-VK.subgroups.shuffle.compute.subgroupshuffleup_bvec2
+dEQP-VK.subgroups.shuffle.compute.subgroupshuffleup_bvec2_requiredsubgroupsize
 dEQP-VK.subgroups.shuffle.compute.subgroupshuffledown_bvec2
+dEQP-VK.subgroups.shuffle.compute.subgroupshuffledown_bvec2_requiredsubgroupsize
 dEQP-VK.subgroups.shuffle.compute.subgroupshuffle_bvec3
+dEQP-VK.subgroups.shuffle.compute.subgroupshuffle_bvec3_requiredsubgroupsize
 dEQP-VK.subgroups.shuffle.compute.subgroupshufflexor_bvec3
+dEQP-VK.subgroups.shuffle.compute.subgroupshufflexor_bvec3_requiredsubgroupsize
 dEQP-VK.subgroups.shuffle.compute.subgroupshuffleup_bvec3
+dEQP-VK.subgroups.shuffle.compute.subgroupshuffleup_bvec3_requiredsubgroupsize
 dEQP-VK.subgroups.shuffle.compute.subgroupshuffledown_bvec3
+dEQP-VK.subgroups.shuffle.compute.subgroupshuffledown_bvec3_requiredsubgroupsize
 dEQP-VK.subgroups.shuffle.compute.subgroupshuffle_bvec4
+dEQP-VK.subgroups.shuffle.compute.subgroupshuffle_bvec4_requiredsubgroupsize
 dEQP-VK.subgroups.shuffle.compute.subgroupshufflexor_bvec4
+dEQP-VK.subgroups.shuffle.compute.subgroupshufflexor_bvec4_requiredsubgroupsize
 dEQP-VK.subgroups.shuffle.compute.subgroupshuffleup_bvec4
+dEQP-VK.subgroups.shuffle.compute.subgroupshuffleup_bvec4_requiredsubgroupsize
 dEQP-VK.subgroups.shuffle.compute.subgroupshuffledown_bvec4
+dEQP-VK.subgroups.shuffle.compute.subgroupshuffledown_bvec4_requiredsubgroupsize
 dEQP-VK.subgroups.shuffle.framebuffer.subgroupshuffle_int8_t_vertex
 dEQP-VK.subgroups.shuffle.framebuffer.subgroupshuffle_int8_t_tess_eval
 dEQP-VK.subgroups.shuffle.framebuffer.subgroupshuffle_int8_t_tess_control
@@ -522908,245 +525318,485 @@ dEQP-VK.subgroups.quad.graphics.subgroupquadswaphorizontal_bvec4
 dEQP-VK.subgroups.quad.graphics.subgroupquadswapvertical_bvec4
 dEQP-VK.subgroups.quad.graphics.subgroupquadswapdiagonal_bvec4
 dEQP-VK.subgroups.quad.compute.subgroupquadbroadcast_int8_t
+dEQP-VK.subgroups.quad.compute.subgroupquadbroadcast_int8_t_requiredsubgroupsize
 dEQP-VK.subgroups.quad.compute.subgroupquadbroadcast_nonconst_int8_t
+dEQP-VK.subgroups.quad.compute.subgroupquadbroadcast_nonconst_int8_t_requiredsubgroupsize
 dEQP-VK.subgroups.quad.compute.subgroupquadswaphorizontal_int8_t
+dEQP-VK.subgroups.quad.compute.subgroupquadswaphorizontal_int8_t_requiredsubgroupsize
 dEQP-VK.subgroups.quad.compute.subgroupquadswapvertical_int8_t
+dEQP-VK.subgroups.quad.compute.subgroupquadswapvertical_int8_t_requiredsubgroupsize
 dEQP-VK.subgroups.quad.compute.subgroupquadswapdiagonal_int8_t
+dEQP-VK.subgroups.quad.compute.subgroupquadswapdiagonal_int8_t_requiredsubgroupsize
 dEQP-VK.subgroups.quad.compute.subgroupquadbroadcast_i8vec2
+dEQP-VK.subgroups.quad.compute.subgroupquadbroadcast_i8vec2_requiredsubgroupsize
 dEQP-VK.subgroups.quad.compute.subgroupquadbroadcast_nonconst_i8vec2
+dEQP-VK.subgroups.quad.compute.subgroupquadbroadcast_nonconst_i8vec2_requiredsubgroupsize
 dEQP-VK.subgroups.quad.compute.subgroupquadswaphorizontal_i8vec2
+dEQP-VK.subgroups.quad.compute.subgroupquadswaphorizontal_i8vec2_requiredsubgroupsize
 dEQP-VK.subgroups.quad.compute.subgroupquadswapvertical_i8vec2
+dEQP-VK.subgroups.quad.compute.subgroupquadswapvertical_i8vec2_requiredsubgroupsize
 dEQP-VK.subgroups.quad.compute.subgroupquadswapdiagonal_i8vec2
+dEQP-VK.subgroups.quad.compute.subgroupquadswapdiagonal_i8vec2_requiredsubgroupsize
 dEQP-VK.subgroups.quad.compute.subgroupquadbroadcast_i8vec3
+dEQP-VK.subgroups.quad.compute.subgroupquadbroadcast_i8vec3_requiredsubgroupsize
 dEQP-VK.subgroups.quad.compute.subgroupquadbroadcast_nonconst_i8vec3
+dEQP-VK.subgroups.quad.compute.subgroupquadbroadcast_nonconst_i8vec3_requiredsubgroupsize
 dEQP-VK.subgroups.quad.compute.subgroupquadswaphorizontal_i8vec3
+dEQP-VK.subgroups.quad.compute.subgroupquadswaphorizontal_i8vec3_requiredsubgroupsize
 dEQP-VK.subgroups.quad.compute.subgroupquadswapvertical_i8vec3
+dEQP-VK.subgroups.quad.compute.subgroupquadswapvertical_i8vec3_requiredsubgroupsize
 dEQP-VK.subgroups.quad.compute.subgroupquadswapdiagonal_i8vec3
+dEQP-VK.subgroups.quad.compute.subgroupquadswapdiagonal_i8vec3_requiredsubgroupsize
 dEQP-VK.subgroups.quad.compute.subgroupquadbroadcast_i8vec4
+dEQP-VK.subgroups.quad.compute.subgroupquadbroadcast_i8vec4_requiredsubgroupsize
 dEQP-VK.subgroups.quad.compute.subgroupquadbroadcast_nonconst_i8vec4
+dEQP-VK.subgroups.quad.compute.subgroupquadbroadcast_nonconst_i8vec4_requiredsubgroupsize
 dEQP-VK.subgroups.quad.compute.subgroupquadswaphorizontal_i8vec4
+dEQP-VK.subgroups.quad.compute.subgroupquadswaphorizontal_i8vec4_requiredsubgroupsize
 dEQP-VK.subgroups.quad.compute.subgroupquadswapvertical_i8vec4
+dEQP-VK.subgroups.quad.compute.subgroupquadswapvertical_i8vec4_requiredsubgroupsize
 dEQP-VK.subgroups.quad.compute.subgroupquadswapdiagonal_i8vec4
+dEQP-VK.subgroups.quad.compute.subgroupquadswapdiagonal_i8vec4_requiredsubgroupsize
 dEQP-VK.subgroups.quad.compute.subgroupquadbroadcast_uint8_t
+dEQP-VK.subgroups.quad.compute.subgroupquadbroadcast_uint8_t_requiredsubgroupsize
 dEQP-VK.subgroups.quad.compute.subgroupquadbroadcast_nonconst_uint8_t
+dEQP-VK.subgroups.quad.compute.subgroupquadbroadcast_nonconst_uint8_t_requiredsubgroupsize
 dEQP-VK.subgroups.quad.compute.subgroupquadswaphorizontal_uint8_t
+dEQP-VK.subgroups.quad.compute.subgroupquadswaphorizontal_uint8_t_requiredsubgroupsize
 dEQP-VK.subgroups.quad.compute.subgroupquadswapvertical_uint8_t
+dEQP-VK.subgroups.quad.compute.subgroupquadswapvertical_uint8_t_requiredsubgroupsize
 dEQP-VK.subgroups.quad.compute.subgroupquadswapdiagonal_uint8_t
+dEQP-VK.subgroups.quad.compute.subgroupquadswapdiagonal_uint8_t_requiredsubgroupsize
 dEQP-VK.subgroups.quad.compute.subgroupquadbroadcast_u8vec2
+dEQP-VK.subgroups.quad.compute.subgroupquadbroadcast_u8vec2_requiredsubgroupsize
 dEQP-VK.subgroups.quad.compute.subgroupquadbroadcast_nonconst_u8vec2
+dEQP-VK.subgroups.quad.compute.subgroupquadbroadcast_nonconst_u8vec2_requiredsubgroupsize
 dEQP-VK.subgroups.quad.compute.subgroupquadswaphorizontal_u8vec2
+dEQP-VK.subgroups.quad.compute.subgroupquadswaphorizontal_u8vec2_requiredsubgroupsize
 dEQP-VK.subgroups.quad.compute.subgroupquadswapvertical_u8vec2
+dEQP-VK.subgroups.quad.compute.subgroupquadswapvertical_u8vec2_requiredsubgroupsize
 dEQP-VK.subgroups.quad.compute.subgroupquadswapdiagonal_u8vec2
+dEQP-VK.subgroups.quad.compute.subgroupquadswapdiagonal_u8vec2_requiredsubgroupsize
 dEQP-VK.subgroups.quad.compute.subgroupquadbroadcast_u8vec3
+dEQP-VK.subgroups.quad.compute.subgroupquadbroadcast_u8vec3_requiredsubgroupsize
 dEQP-VK.subgroups.quad.compute.subgroupquadbroadcast_nonconst_u8vec3
+dEQP-VK.subgroups.quad.compute.subgroupquadbroadcast_nonconst_u8vec3_requiredsubgroupsize
 dEQP-VK.subgroups.quad.compute.subgroupquadswaphorizontal_u8vec3
+dEQP-VK.subgroups.quad.compute.subgroupquadswaphorizontal_u8vec3_requiredsubgroupsize
 dEQP-VK.subgroups.quad.compute.subgroupquadswapvertical_u8vec3
+dEQP-VK.subgroups.quad.compute.subgroupquadswapvertical_u8vec3_requiredsubgroupsize
 dEQP-VK.subgroups.quad.compute.subgroupquadswapdiagonal_u8vec3
+dEQP-VK.subgroups.quad.compute.subgroupquadswapdiagonal_u8vec3_requiredsubgroupsize
 dEQP-VK.subgroups.quad.compute.subgroupquadbroadcast_u8vec4
+dEQP-VK.subgroups.quad.compute.subgroupquadbroadcast_u8vec4_requiredsubgroupsize
 dEQP-VK.subgroups.quad.compute.subgroupquadbroadcast_nonconst_u8vec4
+dEQP-VK.subgroups.quad.compute.subgroupquadbroadcast_nonconst_u8vec4_requiredsubgroupsize
 dEQP-VK.subgroups.quad.compute.subgroupquadswaphorizontal_u8vec4
+dEQP-VK.subgroups.quad.compute.subgroupquadswaphorizontal_u8vec4_requiredsubgroupsize
 dEQP-VK.subgroups.quad.compute.subgroupquadswapvertical_u8vec4
+dEQP-VK.subgroups.quad.compute.subgroupquadswapvertical_u8vec4_requiredsubgroupsize
 dEQP-VK.subgroups.quad.compute.subgroupquadswapdiagonal_u8vec4
+dEQP-VK.subgroups.quad.compute.subgroupquadswapdiagonal_u8vec4_requiredsubgroupsize
 dEQP-VK.subgroups.quad.compute.subgroupquadbroadcast_int16_t
+dEQP-VK.subgroups.quad.compute.subgroupquadbroadcast_int16_t_requiredsubgroupsize
 dEQP-VK.subgroups.quad.compute.subgroupquadbroadcast_nonconst_int16_t
+dEQP-VK.subgroups.quad.compute.subgroupquadbroadcast_nonconst_int16_t_requiredsubgroupsize
 dEQP-VK.subgroups.quad.compute.subgroupquadswaphorizontal_int16_t
+dEQP-VK.subgroups.quad.compute.subgroupquadswaphorizontal_int16_t_requiredsubgroupsize
 dEQP-VK.subgroups.quad.compute.subgroupquadswapvertical_int16_t
+dEQP-VK.subgroups.quad.compute.subgroupquadswapvertical_int16_t_requiredsubgroupsize
 dEQP-VK.subgroups.quad.compute.subgroupquadswapdiagonal_int16_t
+dEQP-VK.subgroups.quad.compute.subgroupquadswapdiagonal_int16_t_requiredsubgroupsize
 dEQP-VK.subgroups.quad.compute.subgroupquadbroadcast_i16vec2
+dEQP-VK.subgroups.quad.compute.subgroupquadbroadcast_i16vec2_requiredsubgroupsize
 dEQP-VK.subgroups.quad.compute.subgroupquadbroadcast_nonconst_i16vec2
+dEQP-VK.subgroups.quad.compute.subgroupquadbroadcast_nonconst_i16vec2_requiredsubgroupsize
 dEQP-VK.subgroups.quad.compute.subgroupquadswaphorizontal_i16vec2
+dEQP-VK.subgroups.quad.compute.subgroupquadswaphorizontal_i16vec2_requiredsubgroupsize
 dEQP-VK.subgroups.quad.compute.subgroupquadswapvertical_i16vec2
+dEQP-VK.subgroups.quad.compute.subgroupquadswapvertical_i16vec2_requiredsubgroupsize
 dEQP-VK.subgroups.quad.compute.subgroupquadswapdiagonal_i16vec2
+dEQP-VK.subgroups.quad.compute.subgroupquadswapdiagonal_i16vec2_requiredsubgroupsize
 dEQP-VK.subgroups.quad.compute.subgroupquadbroadcast_i16vec3
+dEQP-VK.subgroups.quad.compute.subgroupquadbroadcast_i16vec3_requiredsubgroupsize
 dEQP-VK.subgroups.quad.compute.subgroupquadbroadcast_nonconst_i16vec3
+dEQP-VK.subgroups.quad.compute.subgroupquadbroadcast_nonconst_i16vec3_requiredsubgroupsize
 dEQP-VK.subgroups.quad.compute.subgroupquadswaphorizontal_i16vec3
+dEQP-VK.subgroups.quad.compute.subgroupquadswaphorizontal_i16vec3_requiredsubgroupsize
 dEQP-VK.subgroups.quad.compute.subgroupquadswapvertical_i16vec3
+dEQP-VK.subgroups.quad.compute.subgroupquadswapvertical_i16vec3_requiredsubgroupsize
 dEQP-VK.subgroups.quad.compute.subgroupquadswapdiagonal_i16vec3
+dEQP-VK.subgroups.quad.compute.subgroupquadswapdiagonal_i16vec3_requiredsubgroupsize
 dEQP-VK.subgroups.quad.compute.subgroupquadbroadcast_i16vec4
+dEQP-VK.subgroups.quad.compute.subgroupquadbroadcast_i16vec4_requiredsubgroupsize
 dEQP-VK.subgroups.quad.compute.subgroupquadbroadcast_nonconst_i16vec4
+dEQP-VK.subgroups.quad.compute.subgroupquadbroadcast_nonconst_i16vec4_requiredsubgroupsize
 dEQP-VK.subgroups.quad.compute.subgroupquadswaphorizontal_i16vec4
+dEQP-VK.subgroups.quad.compute.subgroupquadswaphorizontal_i16vec4_requiredsubgroupsize
 dEQP-VK.subgroups.quad.compute.subgroupquadswapvertical_i16vec4
+dEQP-VK.subgroups.quad.compute.subgroupquadswapvertical_i16vec4_requiredsubgroupsize
 dEQP-VK.subgroups.quad.compute.subgroupquadswapdiagonal_i16vec4
+dEQP-VK.subgroups.quad.compute.subgroupquadswapdiagonal_i16vec4_requiredsubgroupsize
 dEQP-VK.subgroups.quad.compute.subgroupquadbroadcast_uint16_t
+dEQP-VK.subgroups.quad.compute.subgroupquadbroadcast_uint16_t_requiredsubgroupsize
 dEQP-VK.subgroups.quad.compute.subgroupquadbroadcast_nonconst_uint16_t
+dEQP-VK.subgroups.quad.compute.subgroupquadbroadcast_nonconst_uint16_t_requiredsubgroupsize
 dEQP-VK.subgroups.quad.compute.subgroupquadswaphorizontal_uint16_t
+dEQP-VK.subgroups.quad.compute.subgroupquadswaphorizontal_uint16_t_requiredsubgroupsize
 dEQP-VK.subgroups.quad.compute.subgroupquadswapvertical_uint16_t
+dEQP-VK.subgroups.quad.compute.subgroupquadswapvertical_uint16_t_requiredsubgroupsize
 dEQP-VK.subgroups.quad.compute.subgroupquadswapdiagonal_uint16_t
+dEQP-VK.subgroups.quad.compute.subgroupquadswapdiagonal_uint16_t_requiredsubgroupsize
 dEQP-VK.subgroups.quad.compute.subgroupquadbroadcast_u16vec2
+dEQP-VK.subgroups.quad.compute.subgroupquadbroadcast_u16vec2_requiredsubgroupsize
 dEQP-VK.subgroups.quad.compute.subgroupquadbroadcast_nonconst_u16vec2
+dEQP-VK.subgroups.quad.compute.subgroupquadbroadcast_nonconst_u16vec2_requiredsubgroupsize
 dEQP-VK.subgroups.quad.compute.subgroupquadswaphorizontal_u16vec2
+dEQP-VK.subgroups.quad.compute.subgroupquadswaphorizontal_u16vec2_requiredsubgroupsize
 dEQP-VK.subgroups.quad.compute.subgroupquadswapvertical_u16vec2
+dEQP-VK.subgroups.quad.compute.subgroupquadswapvertical_u16vec2_requiredsubgroupsize
 dEQP-VK.subgroups.quad.compute.subgroupquadswapdiagonal_u16vec2
+dEQP-VK.subgroups.quad.compute.subgroupquadswapdiagonal_u16vec2_requiredsubgroupsize
 dEQP-VK.subgroups.quad.compute.subgroupquadbroadcast_u16vec3
+dEQP-VK.subgroups.quad.compute.subgroupquadbroadcast_u16vec3_requiredsubgroupsize
 dEQP-VK.subgroups.quad.compute.subgroupquadbroadcast_nonconst_u16vec3
+dEQP-VK.subgroups.quad.compute.subgroupquadbroadcast_nonconst_u16vec3_requiredsubgroupsize
 dEQP-VK.subgroups.quad.compute.subgroupquadswaphorizontal_u16vec3
+dEQP-VK.subgroups.quad.compute.subgroupquadswaphorizontal_u16vec3_requiredsubgroupsize
 dEQP-VK.subgroups.quad.compute.subgroupquadswapvertical_u16vec3
+dEQP-VK.subgroups.quad.compute.subgroupquadswapvertical_u16vec3_requiredsubgroupsize
 dEQP-VK.subgroups.quad.compute.subgroupquadswapdiagonal_u16vec3
+dEQP-VK.subgroups.quad.compute.subgroupquadswapdiagonal_u16vec3_requiredsubgroupsize
 dEQP-VK.subgroups.quad.compute.subgroupquadbroadcast_u16vec4
+dEQP-VK.subgroups.quad.compute.subgroupquadbroadcast_u16vec4_requiredsubgroupsize
 dEQP-VK.subgroups.quad.compute.subgroupquadbroadcast_nonconst_u16vec4
+dEQP-VK.subgroups.quad.compute.subgroupquadbroadcast_nonconst_u16vec4_requiredsubgroupsize
 dEQP-VK.subgroups.quad.compute.subgroupquadswaphorizontal_u16vec4
+dEQP-VK.subgroups.quad.compute.subgroupquadswaphorizontal_u16vec4_requiredsubgroupsize
 dEQP-VK.subgroups.quad.compute.subgroupquadswapvertical_u16vec4
+dEQP-VK.subgroups.quad.compute.subgroupquadswapvertical_u16vec4_requiredsubgroupsize
 dEQP-VK.subgroups.quad.compute.subgroupquadswapdiagonal_u16vec4
+dEQP-VK.subgroups.quad.compute.subgroupquadswapdiagonal_u16vec4_requiredsubgroupsize
 dEQP-VK.subgroups.quad.compute.subgroupquadbroadcast_int
+dEQP-VK.subgroups.quad.compute.subgroupquadbroadcast_int_requiredsubgroupsize
 dEQP-VK.subgroups.quad.compute.subgroupquadbroadcast_nonconst_int
+dEQP-VK.subgroups.quad.compute.subgroupquadbroadcast_nonconst_int_requiredsubgroupsize
 dEQP-VK.subgroups.quad.compute.subgroupquadswaphorizontal_int
+dEQP-VK.subgroups.quad.compute.subgroupquadswaphorizontal_int_requiredsubgroupsize
 dEQP-VK.subgroups.quad.compute.subgroupquadswapvertical_int
+dEQP-VK.subgroups.quad.compute.subgroupquadswapvertical_int_requiredsubgroupsize
 dEQP-VK.subgroups.quad.compute.subgroupquadswapdiagonal_int
+dEQP-VK.subgroups.quad.compute.subgroupquadswapdiagonal_int_requiredsubgroupsize
 dEQP-VK.subgroups.quad.compute.subgroupquadbroadcast_ivec2
+dEQP-VK.subgroups.quad.compute.subgroupquadbroadcast_ivec2_requiredsubgroupsize
 dEQP-VK.subgroups.quad.compute.subgroupquadbroadcast_nonconst_ivec2
+dEQP-VK.subgroups.quad.compute.subgroupquadbroadcast_nonconst_ivec2_requiredsubgroupsize
 dEQP-VK.subgroups.quad.compute.subgroupquadswaphorizontal_ivec2
+dEQP-VK.subgroups.quad.compute.subgroupquadswaphorizontal_ivec2_requiredsubgroupsize
 dEQP-VK.subgroups.quad.compute.subgroupquadswapvertical_ivec2
+dEQP-VK.subgroups.quad.compute.subgroupquadswapvertical_ivec2_requiredsubgroupsize
 dEQP-VK.subgroups.quad.compute.subgroupquadswapdiagonal_ivec2
+dEQP-VK.subgroups.quad.compute.subgroupquadswapdiagonal_ivec2_requiredsubgroupsize
 dEQP-VK.subgroups.quad.compute.subgroupquadbroadcast_ivec3
+dEQP-VK.subgroups.quad.compute.subgroupquadbroadcast_ivec3_requiredsubgroupsize
 dEQP-VK.subgroups.quad.compute.subgroupquadbroadcast_nonconst_ivec3
+dEQP-VK.subgroups.quad.compute.subgroupquadbroadcast_nonconst_ivec3_requiredsubgroupsize
 dEQP-VK.subgroups.quad.compute.subgroupquadswaphorizontal_ivec3
+dEQP-VK.subgroups.quad.compute.subgroupquadswaphorizontal_ivec3_requiredsubgroupsize
 dEQP-VK.subgroups.quad.compute.subgroupquadswapvertical_ivec3
+dEQP-VK.subgroups.quad.compute.subgroupquadswapvertical_ivec3_requiredsubgroupsize
 dEQP-VK.subgroups.quad.compute.subgroupquadswapdiagonal_ivec3
+dEQP-VK.subgroups.quad.compute.subgroupquadswapdiagonal_ivec3_requiredsubgroupsize
 dEQP-VK.subgroups.quad.compute.subgroupquadbroadcast_ivec4
+dEQP-VK.subgroups.quad.compute.subgroupquadbroadcast_ivec4_requiredsubgroupsize
 dEQP-VK.subgroups.quad.compute.subgroupquadbroadcast_nonconst_ivec4
+dEQP-VK.subgroups.quad.compute.subgroupquadbroadcast_nonconst_ivec4_requiredsubgroupsize
 dEQP-VK.subgroups.quad.compute.subgroupquadswaphorizontal_ivec4
+dEQP-VK.subgroups.quad.compute.subgroupquadswaphorizontal_ivec4_requiredsubgroupsize
 dEQP-VK.subgroups.quad.compute.subgroupquadswapvertical_ivec4
+dEQP-VK.subgroups.quad.compute.subgroupquadswapvertical_ivec4_requiredsubgroupsize
 dEQP-VK.subgroups.quad.compute.subgroupquadswapdiagonal_ivec4
+dEQP-VK.subgroups.quad.compute.subgroupquadswapdiagonal_ivec4_requiredsubgroupsize
 dEQP-VK.subgroups.quad.compute.subgroupquadbroadcast_uint
+dEQP-VK.subgroups.quad.compute.subgroupquadbroadcast_uint_requiredsubgroupsize
 dEQP-VK.subgroups.quad.compute.subgroupquadbroadcast_nonconst_uint
+dEQP-VK.subgroups.quad.compute.subgroupquadbroadcast_nonconst_uint_requiredsubgroupsize
 dEQP-VK.subgroups.quad.compute.subgroupquadswaphorizontal_uint
+dEQP-VK.subgroups.quad.compute.subgroupquadswaphorizontal_uint_requiredsubgroupsize
 dEQP-VK.subgroups.quad.compute.subgroupquadswapvertical_uint
+dEQP-VK.subgroups.quad.compute.subgroupquadswapvertical_uint_requiredsubgroupsize
 dEQP-VK.subgroups.quad.compute.subgroupquadswapdiagonal_uint
+dEQP-VK.subgroups.quad.compute.subgroupquadswapdiagonal_uint_requiredsubgroupsize
 dEQP-VK.subgroups.quad.compute.subgroupquadbroadcast_uvec2
+dEQP-VK.subgroups.quad.compute.subgroupquadbroadcast_uvec2_requiredsubgroupsize
 dEQP-VK.subgroups.quad.compute.subgroupquadbroadcast_nonconst_uvec2
+dEQP-VK.subgroups.quad.compute.subgroupquadbroadcast_nonconst_uvec2_requiredsubgroupsize
 dEQP-VK.subgroups.quad.compute.subgroupquadswaphorizontal_uvec2
+dEQP-VK.subgroups.quad.compute.subgroupquadswaphorizontal_uvec2_requiredsubgroupsize
 dEQP-VK.subgroups.quad.compute.subgroupquadswapvertical_uvec2
+dEQP-VK.subgroups.quad.compute.subgroupquadswapvertical_uvec2_requiredsubgroupsize
 dEQP-VK.subgroups.quad.compute.subgroupquadswapdiagonal_uvec2
+dEQP-VK.subgroups.quad.compute.subgroupquadswapdiagonal_uvec2_requiredsubgroupsize
 dEQP-VK.subgroups.quad.compute.subgroupquadbroadcast_uvec3
+dEQP-VK.subgroups.quad.compute.subgroupquadbroadcast_uvec3_requiredsubgroupsize
 dEQP-VK.subgroups.quad.compute.subgroupquadbroadcast_nonconst_uvec3
+dEQP-VK.subgroups.quad.compute.subgroupquadbroadcast_nonconst_uvec3_requiredsubgroupsize
 dEQP-VK.subgroups.quad.compute.subgroupquadswaphorizontal_uvec3
+dEQP-VK.subgroups.quad.compute.subgroupquadswaphorizontal_uvec3_requiredsubgroupsize
 dEQP-VK.subgroups.quad.compute.subgroupquadswapvertical_uvec3
+dEQP-VK.subgroups.quad.compute.subgroupquadswapvertical_uvec3_requiredsubgroupsize
 dEQP-VK.subgroups.quad.compute.subgroupquadswapdiagonal_uvec3
+dEQP-VK.subgroups.quad.compute.subgroupquadswapdiagonal_uvec3_requiredsubgroupsize
 dEQP-VK.subgroups.quad.compute.subgroupquadbroadcast_uvec4
+dEQP-VK.subgroups.quad.compute.subgroupquadbroadcast_uvec4_requiredsubgroupsize
 dEQP-VK.subgroups.quad.compute.subgroupquadbroadcast_nonconst_uvec4
+dEQP-VK.subgroups.quad.compute.subgroupquadbroadcast_nonconst_uvec4_requiredsubgroupsize
 dEQP-VK.subgroups.quad.compute.subgroupquadswaphorizontal_uvec4
+dEQP-VK.subgroups.quad.compute.subgroupquadswaphorizontal_uvec4_requiredsubgroupsize
 dEQP-VK.subgroups.quad.compute.subgroupquadswapvertical_uvec4
+dEQP-VK.subgroups.quad.compute.subgroupquadswapvertical_uvec4_requiredsubgroupsize
 dEQP-VK.subgroups.quad.compute.subgroupquadswapdiagonal_uvec4
+dEQP-VK.subgroups.quad.compute.subgroupquadswapdiagonal_uvec4_requiredsubgroupsize
 dEQP-VK.subgroups.quad.compute.subgroupquadbroadcast_int64_t
+dEQP-VK.subgroups.quad.compute.subgroupquadbroadcast_int64_t_requiredsubgroupsize
 dEQP-VK.subgroups.quad.compute.subgroupquadbroadcast_nonconst_int64_t
+dEQP-VK.subgroups.quad.compute.subgroupquadbroadcast_nonconst_int64_t_requiredsubgroupsize
 dEQP-VK.subgroups.quad.compute.subgroupquadswaphorizontal_int64_t
+dEQP-VK.subgroups.quad.compute.subgroupquadswaphorizontal_int64_t_requiredsubgroupsize
 dEQP-VK.subgroups.quad.compute.subgroupquadswapvertical_int64_t
+dEQP-VK.subgroups.quad.compute.subgroupquadswapvertical_int64_t_requiredsubgroupsize
 dEQP-VK.subgroups.quad.compute.subgroupquadswapdiagonal_int64_t
+dEQP-VK.subgroups.quad.compute.subgroupquadswapdiagonal_int64_t_requiredsubgroupsize
 dEQP-VK.subgroups.quad.compute.subgroupquadbroadcast_i64vec2
+dEQP-VK.subgroups.quad.compute.subgroupquadbroadcast_i64vec2_requiredsubgroupsize
 dEQP-VK.subgroups.quad.compute.subgroupquadbroadcast_nonconst_i64vec2
+dEQP-VK.subgroups.quad.compute.subgroupquadbroadcast_nonconst_i64vec2_requiredsubgroupsize
 dEQP-VK.subgroups.quad.compute.subgroupquadswaphorizontal_i64vec2
+dEQP-VK.subgroups.quad.compute.subgroupquadswaphorizontal_i64vec2_requiredsubgroupsize
 dEQP-VK.subgroups.quad.compute.subgroupquadswapvertical_i64vec2
+dEQP-VK.subgroups.quad.compute.subgroupquadswapvertical_i64vec2_requiredsubgroupsize
 dEQP-VK.subgroups.quad.compute.subgroupquadswapdiagonal_i64vec2
+dEQP-VK.subgroups.quad.compute.subgroupquadswapdiagonal_i64vec2_requiredsubgroupsize
 dEQP-VK.subgroups.quad.compute.subgroupquadbroadcast_i64vec3
+dEQP-VK.subgroups.quad.compute.subgroupquadbroadcast_i64vec3_requiredsubgroupsize
 dEQP-VK.subgroups.quad.compute.subgroupquadbroadcast_nonconst_i64vec3
+dEQP-VK.subgroups.quad.compute.subgroupquadbroadcast_nonconst_i64vec3_requiredsubgroupsize
 dEQP-VK.subgroups.quad.compute.subgroupquadswaphorizontal_i64vec3
+dEQP-VK.subgroups.quad.compute.subgroupquadswaphorizontal_i64vec3_requiredsubgroupsize
 dEQP-VK.subgroups.quad.compute.subgroupquadswapvertical_i64vec3
+dEQP-VK.subgroups.quad.compute.subgroupquadswapvertical_i64vec3_requiredsubgroupsize
 dEQP-VK.subgroups.quad.compute.subgroupquadswapdiagonal_i64vec3
+dEQP-VK.subgroups.quad.compute.subgroupquadswapdiagonal_i64vec3_requiredsubgroupsize
 dEQP-VK.subgroups.quad.compute.subgroupquadbroadcast_i64vec4
+dEQP-VK.subgroups.quad.compute.subgroupquadbroadcast_i64vec4_requiredsubgroupsize
 dEQP-VK.subgroups.quad.compute.subgroupquadbroadcast_nonconst_i64vec4
+dEQP-VK.subgroups.quad.compute.subgroupquadbroadcast_nonconst_i64vec4_requiredsubgroupsize
 dEQP-VK.subgroups.quad.compute.subgroupquadswaphorizontal_i64vec4
+dEQP-VK.subgroups.quad.compute.subgroupquadswaphorizontal_i64vec4_requiredsubgroupsize
 dEQP-VK.subgroups.quad.compute.subgroupquadswapvertical_i64vec4
+dEQP-VK.subgroups.quad.compute.subgroupquadswapvertical_i64vec4_requiredsubgroupsize
 dEQP-VK.subgroups.quad.compute.subgroupquadswapdiagonal_i64vec4
+dEQP-VK.subgroups.quad.compute.subgroupquadswapdiagonal_i64vec4_requiredsubgroupsize
 dEQP-VK.subgroups.quad.compute.subgroupquadbroadcast_uint64_t
+dEQP-VK.subgroups.quad.compute.subgroupquadbroadcast_uint64_t_requiredsubgroupsize
 dEQP-VK.subgroups.quad.compute.subgroupquadbroadcast_nonconst_uint64_t
+dEQP-VK.subgroups.quad.compute.subgroupquadbroadcast_nonconst_uint64_t_requiredsubgroupsize
 dEQP-VK.subgroups.quad.compute.subgroupquadswaphorizontal_uint64_t
+dEQP-VK.subgroups.quad.compute.subgroupquadswaphorizontal_uint64_t_requiredsubgroupsize
 dEQP-VK.subgroups.quad.compute.subgroupquadswapvertical_uint64_t
+dEQP-VK.subgroups.quad.compute.subgroupquadswapvertical_uint64_t_requiredsubgroupsize
 dEQP-VK.subgroups.quad.compute.subgroupquadswapdiagonal_uint64_t
+dEQP-VK.subgroups.quad.compute.subgroupquadswapdiagonal_uint64_t_requiredsubgroupsize
 dEQP-VK.subgroups.quad.compute.subgroupquadbroadcast_u64vec2
+dEQP-VK.subgroups.quad.compute.subgroupquadbroadcast_u64vec2_requiredsubgroupsize
 dEQP-VK.subgroups.quad.compute.subgroupquadbroadcast_nonconst_u64vec2
+dEQP-VK.subgroups.quad.compute.subgroupquadbroadcast_nonconst_u64vec2_requiredsubgroupsize
 dEQP-VK.subgroups.quad.compute.subgroupquadswaphorizontal_u64vec2
+dEQP-VK.subgroups.quad.compute.subgroupquadswaphorizontal_u64vec2_requiredsubgroupsize
 dEQP-VK.subgroups.quad.compute.subgroupquadswapvertical_u64vec2
+dEQP-VK.subgroups.quad.compute.subgroupquadswapvertical_u64vec2_requiredsubgroupsize
 dEQP-VK.subgroups.quad.compute.subgroupquadswapdiagonal_u64vec2
+dEQP-VK.subgroups.quad.compute.subgroupquadswapdiagonal_u64vec2_requiredsubgroupsize
 dEQP-VK.subgroups.quad.compute.subgroupquadbroadcast_u64vec3
+dEQP-VK.subgroups.quad.compute.subgroupquadbroadcast_u64vec3_requiredsubgroupsize
 dEQP-VK.subgroups.quad.compute.subgroupquadbroadcast_nonconst_u64vec3
+dEQP-VK.subgroups.quad.compute.subgroupquadbroadcast_nonconst_u64vec3_requiredsubgroupsize
 dEQP-VK.subgroups.quad.compute.subgroupquadswaphorizontal_u64vec3
+dEQP-VK.subgroups.quad.compute.subgroupquadswaphorizontal_u64vec3_requiredsubgroupsize
 dEQP-VK.subgroups.quad.compute.subgroupquadswapvertical_u64vec3
+dEQP-VK.subgroups.quad.compute.subgroupquadswapvertical_u64vec3_requiredsubgroupsize
 dEQP-VK.subgroups.quad.compute.subgroupquadswapdiagonal_u64vec3
+dEQP-VK.subgroups.quad.compute.subgroupquadswapdiagonal_u64vec3_requiredsubgroupsize
 dEQP-VK.subgroups.quad.compute.subgroupquadbroadcast_u64vec4
+dEQP-VK.subgroups.quad.compute.subgroupquadbroadcast_u64vec4_requiredsubgroupsize
 dEQP-VK.subgroups.quad.compute.subgroupquadbroadcast_nonconst_u64vec4
+dEQP-VK.subgroups.quad.compute.subgroupquadbroadcast_nonconst_u64vec4_requiredsubgroupsize
 dEQP-VK.subgroups.quad.compute.subgroupquadswaphorizontal_u64vec4
+dEQP-VK.subgroups.quad.compute.subgroupquadswaphorizontal_u64vec4_requiredsubgroupsize
 dEQP-VK.subgroups.quad.compute.subgroupquadswapvertical_u64vec4
+dEQP-VK.subgroups.quad.compute.subgroupquadswapvertical_u64vec4_requiredsubgroupsize
 dEQP-VK.subgroups.quad.compute.subgroupquadswapdiagonal_u64vec4
+dEQP-VK.subgroups.quad.compute.subgroupquadswapdiagonal_u64vec4_requiredsubgroupsize
 dEQP-VK.subgroups.quad.compute.subgroupquadbroadcast_float16_t
+dEQP-VK.subgroups.quad.compute.subgroupquadbroadcast_float16_t_requiredsubgroupsize
 dEQP-VK.subgroups.quad.compute.subgroupquadbroadcast_nonconst_float16_t
+dEQP-VK.subgroups.quad.compute.subgroupquadbroadcast_nonconst_float16_t_requiredsubgroupsize
 dEQP-VK.subgroups.quad.compute.subgroupquadswaphorizontal_float16_t
+dEQP-VK.subgroups.quad.compute.subgroupquadswaphorizontal_float16_t_requiredsubgroupsize
 dEQP-VK.subgroups.quad.compute.subgroupquadswapvertical_float16_t
+dEQP-VK.subgroups.quad.compute.subgroupquadswapvertical_float16_t_requiredsubgroupsize
 dEQP-VK.subgroups.quad.compute.subgroupquadswapdiagonal_float16_t
+dEQP-VK.subgroups.quad.compute.subgroupquadswapdiagonal_float16_t_requiredsubgroupsize
 dEQP-VK.subgroups.quad.compute.subgroupquadbroadcast_f16vec2
+dEQP-VK.subgroups.quad.compute.subgroupquadbroadcast_f16vec2_requiredsubgroupsize
 dEQP-VK.subgroups.quad.compute.subgroupquadbroadcast_nonconst_f16vec2
+dEQP-VK.subgroups.quad.compute.subgroupquadbroadcast_nonconst_f16vec2_requiredsubgroupsize
 dEQP-VK.subgroups.quad.compute.subgroupquadswaphorizontal_f16vec2
+dEQP-VK.subgroups.quad.compute.subgroupquadswaphorizontal_f16vec2_requiredsubgroupsize
 dEQP-VK.subgroups.quad.compute.subgroupquadswapvertical_f16vec2
+dEQP-VK.subgroups.quad.compute.subgroupquadswapvertical_f16vec2_requiredsubgroupsize
 dEQP-VK.subgroups.quad.compute.subgroupquadswapdiagonal_f16vec2
+dEQP-VK.subgroups.quad.compute.subgroupquadswapdiagonal_f16vec2_requiredsubgroupsize
 dEQP-VK.subgroups.quad.compute.subgroupquadbroadcast_f16vec3
+dEQP-VK.subgroups.quad.compute.subgroupquadbroadcast_f16vec3_requiredsubgroupsize
 dEQP-VK.subgroups.quad.compute.subgroupquadbroadcast_nonconst_f16vec3
+dEQP-VK.subgroups.quad.compute.subgroupquadbroadcast_nonconst_f16vec3_requiredsubgroupsize
 dEQP-VK.subgroups.quad.compute.subgroupquadswaphorizontal_f16vec3
+dEQP-VK.subgroups.quad.compute.subgroupquadswaphorizontal_f16vec3_requiredsubgroupsize
 dEQP-VK.subgroups.quad.compute.subgroupquadswapvertical_f16vec3
+dEQP-VK.subgroups.quad.compute.subgroupquadswapvertical_f16vec3_requiredsubgroupsize
 dEQP-VK.subgroups.quad.compute.subgroupquadswapdiagonal_f16vec3
+dEQP-VK.subgroups.quad.compute.subgroupquadswapdiagonal_f16vec3_requiredsubgroupsize
 dEQP-VK.subgroups.quad.compute.subgroupquadbroadcast_f16vec4
+dEQP-VK.subgroups.quad.compute.subgroupquadbroadcast_f16vec4_requiredsubgroupsize
 dEQP-VK.subgroups.quad.compute.subgroupquadbroadcast_nonconst_f16vec4
+dEQP-VK.subgroups.quad.compute.subgroupquadbroadcast_nonconst_f16vec4_requiredsubgroupsize
 dEQP-VK.subgroups.quad.compute.subgroupquadswaphorizontal_f16vec4
+dEQP-VK.subgroups.quad.compute.subgroupquadswaphorizontal_f16vec4_requiredsubgroupsize
 dEQP-VK.subgroups.quad.compute.subgroupquadswapvertical_f16vec4
+dEQP-VK.subgroups.quad.compute.subgroupquadswapvertical_f16vec4_requiredsubgroupsize
 dEQP-VK.subgroups.quad.compute.subgroupquadswapdiagonal_f16vec4
+dEQP-VK.subgroups.quad.compute.subgroupquadswapdiagonal_f16vec4_requiredsubgroupsize
 dEQP-VK.subgroups.quad.compute.subgroupquadbroadcast_float
+dEQP-VK.subgroups.quad.compute.subgroupquadbroadcast_float_requiredsubgroupsize
 dEQP-VK.subgroups.quad.compute.subgroupquadbroadcast_nonconst_float
+dEQP-VK.subgroups.quad.compute.subgroupquadbroadcast_nonconst_float_requiredsubgroupsize
 dEQP-VK.subgroups.quad.compute.subgroupquadswaphorizontal_float
+dEQP-VK.subgroups.quad.compute.subgroupquadswaphorizontal_float_requiredsubgroupsize
 dEQP-VK.subgroups.quad.compute.subgroupquadswapvertical_float
+dEQP-VK.subgroups.quad.compute.subgroupquadswapvertical_float_requiredsubgroupsize
 dEQP-VK.subgroups.quad.compute.subgroupquadswapdiagonal_float
+dEQP-VK.subgroups.quad.compute.subgroupquadswapdiagonal_float_requiredsubgroupsize
 dEQP-VK.subgroups.quad.compute.subgroupquadbroadcast_vec2
+dEQP-VK.subgroups.quad.compute.subgroupquadbroadcast_vec2_requiredsubgroupsize
 dEQP-VK.subgroups.quad.compute.subgroupquadbroadcast_nonconst_vec2
+dEQP-VK.subgroups.quad.compute.subgroupquadbroadcast_nonconst_vec2_requiredsubgroupsize
 dEQP-VK.subgroups.quad.compute.subgroupquadswaphorizontal_vec2
+dEQP-VK.subgroups.quad.compute.subgroupquadswaphorizontal_vec2_requiredsubgroupsize
 dEQP-VK.subgroups.quad.compute.subgroupquadswapvertical_vec2
+dEQP-VK.subgroups.quad.compute.subgroupquadswapvertical_vec2_requiredsubgroupsize
 dEQP-VK.subgroups.quad.compute.subgroupquadswapdiagonal_vec2
+dEQP-VK.subgroups.quad.compute.subgroupquadswapdiagonal_vec2_requiredsubgroupsize
 dEQP-VK.subgroups.quad.compute.subgroupquadbroadcast_vec3
+dEQP-VK.subgroups.quad.compute.subgroupquadbroadcast_vec3_requiredsubgroupsize
 dEQP-VK.subgroups.quad.compute.subgroupquadbroadcast_nonconst_vec3
+dEQP-VK.subgroups.quad.compute.subgroupquadbroadcast_nonconst_vec3_requiredsubgroupsize
 dEQP-VK.subgroups.quad.compute.subgroupquadswaphorizontal_vec3
+dEQP-VK.subgroups.quad.compute.subgroupquadswaphorizontal_vec3_requiredsubgroupsize
 dEQP-VK.subgroups.quad.compute.subgroupquadswapvertical_vec3
+dEQP-VK.subgroups.quad.compute.subgroupquadswapvertical_vec3_requiredsubgroupsize
 dEQP-VK.subgroups.quad.compute.subgroupquadswapdiagonal_vec3
+dEQP-VK.subgroups.quad.compute.subgroupquadswapdiagonal_vec3_requiredsubgroupsize
 dEQP-VK.subgroups.quad.compute.subgroupquadbroadcast_vec4
+dEQP-VK.subgroups.quad.compute.subgroupquadbroadcast_vec4_requiredsubgroupsize
 dEQP-VK.subgroups.quad.compute.subgroupquadbroadcast_nonconst_vec4
+dEQP-VK.subgroups.quad.compute.subgroupquadbroadcast_nonconst_vec4_requiredsubgroupsize
 dEQP-VK.subgroups.quad.compute.subgroupquadswaphorizontal_vec4
+dEQP-VK.subgroups.quad.compute.subgroupquadswaphorizontal_vec4_requiredsubgroupsize
 dEQP-VK.subgroups.quad.compute.subgroupquadswapvertical_vec4
+dEQP-VK.subgroups.quad.compute.subgroupquadswapvertical_vec4_requiredsubgroupsize
 dEQP-VK.subgroups.quad.compute.subgroupquadswapdiagonal_vec4
+dEQP-VK.subgroups.quad.compute.subgroupquadswapdiagonal_vec4_requiredsubgroupsize
 dEQP-VK.subgroups.quad.compute.subgroupquadbroadcast_double
+dEQP-VK.subgroups.quad.compute.subgroupquadbroadcast_double_requiredsubgroupsize
 dEQP-VK.subgroups.quad.compute.subgroupquadbroadcast_nonconst_double
+dEQP-VK.subgroups.quad.compute.subgroupquadbroadcast_nonconst_double_requiredsubgroupsize
 dEQP-VK.subgroups.quad.compute.subgroupquadswaphorizontal_double
+dEQP-VK.subgroups.quad.compute.subgroupquadswaphorizontal_double_requiredsubgroupsize
 dEQP-VK.subgroups.quad.compute.subgroupquadswapvertical_double
+dEQP-VK.subgroups.quad.compute.subgroupquadswapvertical_double_requiredsubgroupsize
 dEQP-VK.subgroups.quad.compute.subgroupquadswapdiagonal_double
+dEQP-VK.subgroups.quad.compute.subgroupquadswapdiagonal_double_requiredsubgroupsize
 dEQP-VK.subgroups.quad.compute.subgroupquadbroadcast_dvec2
+dEQP-VK.subgroups.quad.compute.subgroupquadbroadcast_dvec2_requiredsubgroupsize
 dEQP-VK.subgroups.quad.compute.subgroupquadbroadcast_nonconst_dvec2
+dEQP-VK.subgroups.quad.compute.subgroupquadbroadcast_nonconst_dvec2_requiredsubgroupsize
 dEQP-VK.subgroups.quad.compute.subgroupquadswaphorizontal_dvec2
+dEQP-VK.subgroups.quad.compute.subgroupquadswaphorizontal_dvec2_requiredsubgroupsize
 dEQP-VK.subgroups.quad.compute.subgroupquadswapvertical_dvec2
+dEQP-VK.subgroups.quad.compute.subgroupquadswapvertical_dvec2_requiredsubgroupsize
 dEQP-VK.subgroups.quad.compute.subgroupquadswapdiagonal_dvec2
+dEQP-VK.subgroups.quad.compute.subgroupquadswapdiagonal_dvec2_requiredsubgroupsize
 dEQP-VK.subgroups.quad.compute.subgroupquadbroadcast_dvec3
+dEQP-VK.subgroups.quad.compute.subgroupquadbroadcast_dvec3_requiredsubgroupsize
 dEQP-VK.subgroups.quad.compute.subgroupquadbroadcast_nonconst_dvec3
+dEQP-VK.subgroups.quad.compute.subgroupquadbroadcast_nonconst_dvec3_requiredsubgroupsize
 dEQP-VK.subgroups.quad.compute.subgroupquadswaphorizontal_dvec3
+dEQP-VK.subgroups.quad.compute.subgroupquadswaphorizontal_dvec3_requiredsubgroupsize
 dEQP-VK.subgroups.quad.compute.subgroupquadswapvertical_dvec3
+dEQP-VK.subgroups.quad.compute.subgroupquadswapvertical_dvec3_requiredsubgroupsize
 dEQP-VK.subgroups.quad.compute.subgroupquadswapdiagonal_dvec3
+dEQP-VK.subgroups.quad.compute.subgroupquadswapdiagonal_dvec3_requiredsubgroupsize
 dEQP-VK.subgroups.quad.compute.subgroupquadbroadcast_dvec4
+dEQP-VK.subgroups.quad.compute.subgroupquadbroadcast_dvec4_requiredsubgroupsize
 dEQP-VK.subgroups.quad.compute.subgroupquadbroadcast_nonconst_dvec4
+dEQP-VK.subgroups.quad.compute.subgroupquadbroadcast_nonconst_dvec4_requiredsubgroupsize
 dEQP-VK.subgroups.quad.compute.subgroupquadswaphorizontal_dvec4
+dEQP-VK.subgroups.quad.compute.subgroupquadswaphorizontal_dvec4_requiredsubgroupsize
 dEQP-VK.subgroups.quad.compute.subgroupquadswapvertical_dvec4
+dEQP-VK.subgroups.quad.compute.subgroupquadswapvertical_dvec4_requiredsubgroupsize
 dEQP-VK.subgroups.quad.compute.subgroupquadswapdiagonal_dvec4
+dEQP-VK.subgroups.quad.compute.subgroupquadswapdiagonal_dvec4_requiredsubgroupsize
 dEQP-VK.subgroups.quad.compute.subgroupquadbroadcast_bool
+dEQP-VK.subgroups.quad.compute.subgroupquadbroadcast_bool_requiredsubgroupsize
 dEQP-VK.subgroups.quad.compute.subgroupquadbroadcast_nonconst_bool
+dEQP-VK.subgroups.quad.compute.subgroupquadbroadcast_nonconst_bool_requiredsubgroupsize
 dEQP-VK.subgroups.quad.compute.subgroupquadswaphorizontal_bool
+dEQP-VK.subgroups.quad.compute.subgroupquadswaphorizontal_bool_requiredsubgroupsize
 dEQP-VK.subgroups.quad.compute.subgroupquadswapvertical_bool
+dEQP-VK.subgroups.quad.compute.subgroupquadswapvertical_bool_requiredsubgroupsize
 dEQP-VK.subgroups.quad.compute.subgroupquadswapdiagonal_bool
+dEQP-VK.subgroups.quad.compute.subgroupquadswapdiagonal_bool_requiredsubgroupsize
 dEQP-VK.subgroups.quad.compute.subgroupquadbroadcast_bvec2
+dEQP-VK.subgroups.quad.compute.subgroupquadbroadcast_bvec2_requiredsubgroupsize
 dEQP-VK.subgroups.quad.compute.subgroupquadbroadcast_nonconst_bvec2
+dEQP-VK.subgroups.quad.compute.subgroupquadbroadcast_nonconst_bvec2_requiredsubgroupsize
 dEQP-VK.subgroups.quad.compute.subgroupquadswaphorizontal_bvec2
+dEQP-VK.subgroups.quad.compute.subgroupquadswaphorizontal_bvec2_requiredsubgroupsize
 dEQP-VK.subgroups.quad.compute.subgroupquadswapvertical_bvec2
+dEQP-VK.subgroups.quad.compute.subgroupquadswapvertical_bvec2_requiredsubgroupsize
 dEQP-VK.subgroups.quad.compute.subgroupquadswapdiagonal_bvec2
+dEQP-VK.subgroups.quad.compute.subgroupquadswapdiagonal_bvec2_requiredsubgroupsize
 dEQP-VK.subgroups.quad.compute.subgroupquadbroadcast_bvec3
+dEQP-VK.subgroups.quad.compute.subgroupquadbroadcast_bvec3_requiredsubgroupsize
 dEQP-VK.subgroups.quad.compute.subgroupquadbroadcast_nonconst_bvec3
+dEQP-VK.subgroups.quad.compute.subgroupquadbroadcast_nonconst_bvec3_requiredsubgroupsize
 dEQP-VK.subgroups.quad.compute.subgroupquadswaphorizontal_bvec3
+dEQP-VK.subgroups.quad.compute.subgroupquadswaphorizontal_bvec3_requiredsubgroupsize
 dEQP-VK.subgroups.quad.compute.subgroupquadswapvertical_bvec3
+dEQP-VK.subgroups.quad.compute.subgroupquadswapvertical_bvec3_requiredsubgroupsize
 dEQP-VK.subgroups.quad.compute.subgroupquadswapdiagonal_bvec3
+dEQP-VK.subgroups.quad.compute.subgroupquadswapdiagonal_bvec3_requiredsubgroupsize
 dEQP-VK.subgroups.quad.compute.subgroupquadbroadcast_bvec4
+dEQP-VK.subgroups.quad.compute.subgroupquadbroadcast_bvec4_requiredsubgroupsize
 dEQP-VK.subgroups.quad.compute.subgroupquadbroadcast_nonconst_bvec4
+dEQP-VK.subgroups.quad.compute.subgroupquadbroadcast_nonconst_bvec4_requiredsubgroupsize
 dEQP-VK.subgroups.quad.compute.subgroupquadswaphorizontal_bvec4
+dEQP-VK.subgroups.quad.compute.subgroupquadswaphorizontal_bvec4_requiredsubgroupsize
 dEQP-VK.subgroups.quad.compute.subgroupquadswapvertical_bvec4
+dEQP-VK.subgroups.quad.compute.subgroupquadswapvertical_bvec4_requiredsubgroupsize
 dEQP-VK.subgroups.quad.compute.subgroupquadswapdiagonal_bvec4
+dEQP-VK.subgroups.quad.compute.subgroupquadswapdiagonal_bvec4_requiredsubgroupsize
 dEQP-VK.subgroups.quad.framebuffer.subgroupquadbroadcast_int8_t_vertex
 dEQP-VK.subgroups.quad.framebuffer.subgroupquadbroadcast_int8_t_tess_eval
 dEQP-VK.subgroups.quad.framebuffer.subgroupquadbroadcast_int8_t_tess_control
@@ -524110,7 +526760,9 @@ dEQP-VK.subgroups.quad.framebuffer.subgroupquadswapdiagonal_bvec4_geometry
 dEQP-VK.subgroups.shape.graphics.clustered
 dEQP-VK.subgroups.shape.graphics.quad
 dEQP-VK.subgroups.shape.compute.clustered
+dEQP-VK.subgroups.shape.compute.clustered_requiredsubgroupsize
 dEQP-VK.subgroups.shape.compute.quad
+dEQP-VK.subgroups.shape.compute.quad_requiredsubgroupsize
 dEQP-VK.subgroups.shape.framebuffer.clustered_vertex
 dEQP-VK.subgroups.shape.framebuffer.clustered_tess_eval
 dEQP-VK.subgroups.shape.framebuffer.clustered_tess_control
@@ -524125,10 +526777,15 @@ dEQP-VK.subgroups.ballot_mask.ext_shader_subgroup_ballot.graphics.gl_subgroupgtm
 dEQP-VK.subgroups.ballot_mask.ext_shader_subgroup_ballot.graphics.gl_subgrouplemaskarb
 dEQP-VK.subgroups.ballot_mask.ext_shader_subgroup_ballot.graphics.gl_subgroupltmaskarb
 dEQP-VK.subgroups.ballot_mask.ext_shader_subgroup_ballot.compute.gl_subgroupeqmaskarb
+dEQP-VK.subgroups.ballot_mask.ext_shader_subgroup_ballot.compute.gl_subgroupeqmaskarb_requiredsubgroupsize
 dEQP-VK.subgroups.ballot_mask.ext_shader_subgroup_ballot.compute.gl_subgroupgemaskarb
+dEQP-VK.subgroups.ballot_mask.ext_shader_subgroup_ballot.compute.gl_subgroupgemaskarb_requiredsubgroupsize
 dEQP-VK.subgroups.ballot_mask.ext_shader_subgroup_ballot.compute.gl_subgroupgtmaskarb
+dEQP-VK.subgroups.ballot_mask.ext_shader_subgroup_ballot.compute.gl_subgroupgtmaskarb_requiredsubgroupsize
 dEQP-VK.subgroups.ballot_mask.ext_shader_subgroup_ballot.compute.gl_subgrouplemaskarb
+dEQP-VK.subgroups.ballot_mask.ext_shader_subgroup_ballot.compute.gl_subgrouplemaskarb_requiredsubgroupsize
 dEQP-VK.subgroups.ballot_mask.ext_shader_subgroup_ballot.compute.gl_subgroupltmaskarb
+dEQP-VK.subgroups.ballot_mask.ext_shader_subgroup_ballot.compute.gl_subgroupltmaskarb_requiredsubgroupsize
 dEQP-VK.subgroups.ballot_mask.ext_shader_subgroup_ballot.framebuffer.gl_subgroupeqmaskarb_vertex
 dEQP-VK.subgroups.ballot_mask.ext_shader_subgroup_ballot.framebuffer.gl_subgroupeqmaskarb_tess_eval
 dEQP-VK.subgroups.ballot_mask.ext_shader_subgroup_ballot.framebuffer.gl_subgroupeqmaskarb_tess_control
@@ -524149,6 +526806,32 @@ dEQP-VK.subgroups.ballot_mask.ext_shader_subgroup_ballot.framebuffer.gl_subgroup
 dEQP-VK.subgroups.ballot_mask.ext_shader_subgroup_ballot.framebuffer.gl_subgroupltmaskarb_tess_eval
 dEQP-VK.subgroups.ballot_mask.ext_shader_subgroup_ballot.framebuffer.gl_subgroupltmaskarb_tess_control
 dEQP-VK.subgroups.ballot_mask.ext_shader_subgroup_ballot.framebuffer.gl_subgroupltmaskarb_geometry
+dEQP-VK.subgroups.size_control.generic.subgroup_size_properties
+dEQP-VK.subgroups.size_control.graphics.allow_varying_subgroup_size
+dEQP-VK.subgroups.size_control.graphics.required_subgroup_size_max
+dEQP-VK.subgroups.size_control.graphics.required_subgroup_size_min
+dEQP-VK.subgroups.size_control.compute.allow_varying_subgroup_size
+dEQP-VK.subgroups.size_control.compute.require_full_subgroups
+dEQP-VK.subgroups.size_control.compute.require_full_subgroups_allow_varying_subgroup_size
+dEQP-VK.subgroups.size_control.compute.required_subgroup_size_max
+dEQP-VK.subgroups.size_control.compute.required_subgroup_size_min
+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
+dEQP-VK.subgroups.size_control.framebuffer.vertex_allow_varying_subgroup_size
+dEQP-VK.subgroups.size_control.framebuffer.tess_eval_allow_varying_subgroup_size
+dEQP-VK.subgroups.size_control.framebuffer.tess_control_allow_varying_subgroup_size
+dEQP-VK.subgroups.size_control.framebuffer.geometry_allow_varying_subgroup_size
+dEQP-VK.subgroups.size_control.framebuffer.fragment_allow_varying_subgroup_size
+dEQP-VK.subgroups.size_control.framebuffer.vertex_required_subgroup_size_max
+dEQP-VK.subgroups.size_control.framebuffer.vertex_required_subgroup_size_min
+dEQP-VK.subgroups.size_control.framebuffer.tess_eval_required_subgroup_size_max
+dEQP-VK.subgroups.size_control.framebuffer.tess_eval_required_subgroup_size_min
+dEQP-VK.subgroups.size_control.framebuffer.tess_control_required_subgroup_size_max
+dEQP-VK.subgroups.size_control.framebuffer.tess_control_required_subgroup_size_min
+dEQP-VK.subgroups.size_control.framebuffer.geometry_required_subgroup_size_max
+dEQP-VK.subgroups.size_control.framebuffer.geometry_required_subgroup_size_min
+dEQP-VK.subgroups.size_control.framebuffer.fragment_required_subgroup_size_max
+dEQP-VK.subgroups.size_control.framebuffer.fragment_required_subgroup_size_min
 dEQP-VK.ycbcr.format.g8b8g8r8_422_unorm.vertex_optimal
 dEQP-VK.ycbcr.format.g8b8g8r8_422_unorm.vertex_optimal_array
 dEQP-VK.ycbcr.format.g8b8g8r8_422_unorm.vertex_linear
index fe5d6cd..b81c94d 100644 (file)
@@ -508129,9 +508129,13 @@ dEQP-VK.multiview.renderpass2.index.tesellation_shader.max_multi_view_view_count
 dEQP-VK.subgroups.builtin_var.graphics.subgroupsize
 dEQP-VK.subgroups.builtin_var.graphics.subgroupinvocationid
 dEQP-VK.subgroups.builtin_var.compute.subgroupsize_compute
+dEQP-VK.subgroups.builtin_var.compute.subgroupsize_compute_requiredsubgroupsize
 dEQP-VK.subgroups.builtin_var.compute.subgroupinvocationid_compute
+dEQP-VK.subgroups.builtin_var.compute.subgroupinvocationid_compute_requiredsubgroupsize
 dEQP-VK.subgroups.builtin_var.compute.numsubgroups
+dEQP-VK.subgroups.builtin_var.compute.numsubgroups_requiredsubgroupsize
 dEQP-VK.subgroups.builtin_var.compute.subgroupid
+dEQP-VK.subgroups.builtin_var.compute.subgroupid_requiredsubgroupsize
 dEQP-VK.subgroups.builtin_var.framebuffer.subgroupsize_vertex
 dEQP-VK.subgroups.builtin_var.framebuffer.subgroupsize_tess_eval
 dEQP-VK.subgroups.builtin_var.framebuffer.subgroupsize_tess_control
@@ -508146,10 +508150,15 @@ dEQP-VK.subgroups.builtin_mask_var.graphics.subgroupgtmask
 dEQP-VK.subgroups.builtin_mask_var.graphics.subgrouplemask
 dEQP-VK.subgroups.builtin_mask_var.graphics.subgroupltmask
 dEQP-VK.subgroups.builtin_mask_var.compute.subgroupeqmask
+dEQP-VK.subgroups.builtin_mask_var.compute.subgroupeqmask_requiredsubgroupsize
 dEQP-VK.subgroups.builtin_mask_var.compute.subgroupgemask
+dEQP-VK.subgroups.builtin_mask_var.compute.subgroupgemask_requiredsubgroupsize
 dEQP-VK.subgroups.builtin_mask_var.compute.subgroupgtmask
+dEQP-VK.subgroups.builtin_mask_var.compute.subgroupgtmask_requiredsubgroupsize
 dEQP-VK.subgroups.builtin_mask_var.compute.subgrouplemask
+dEQP-VK.subgroups.builtin_mask_var.compute.subgrouplemask_requiredsubgroupsize
 dEQP-VK.subgroups.builtin_mask_var.compute.subgroupltmask
+dEQP-VK.subgroups.builtin_mask_var.compute.subgroupltmask_requiredsubgroupsize
 dEQP-VK.subgroups.builtin_mask_var.framebuffer.subgroupeqmask_vertex
 dEQP-VK.subgroups.builtin_mask_var.framebuffer.subgroupeqmask_tess_eval
 dEQP-VK.subgroups.builtin_mask_var.framebuffer.subgroupeqmask_tess_control
@@ -508176,11 +508185,17 @@ dEQP-VK.subgroups.basic.graphics.subgroupmemorybarrier
 dEQP-VK.subgroups.basic.graphics.subgroupmemorybarrierbuffer
 dEQP-VK.subgroups.basic.graphics.subgroupmemorybarrierimage
 dEQP-VK.subgroups.basic.compute.subgroupelect
+dEQP-VK.subgroups.basic.compute.subgroupelect_requiredsubgroupsize
 dEQP-VK.subgroups.basic.compute.subgroupbarrier
+dEQP-VK.subgroups.basic.compute.subgroupbarrier_requiredsubgroupsize
 dEQP-VK.subgroups.basic.compute.subgroupmemorybarrier
+dEQP-VK.subgroups.basic.compute.subgroupmemorybarrier_requiredsubgroupsize
 dEQP-VK.subgroups.basic.compute.subgroupmemorybarrierbuffer
+dEQP-VK.subgroups.basic.compute.subgroupmemorybarrierbuffer_requiredsubgroupsize
 dEQP-VK.subgroups.basic.compute.subgroupmemorybarriershared
+dEQP-VK.subgroups.basic.compute.subgroupmemorybarriershared_requiredsubgroupsize
 dEQP-VK.subgroups.basic.compute.subgroupmemorybarrierimage
+dEQP-VK.subgroups.basic.compute.subgroupmemorybarrierimage_requiredsubgroupsize
 dEQP-VK.subgroups.basic.framebuffer.subgroupelect_vertex
 dEQP-VK.subgroups.basic.framebuffer.subgroupelect_tess_eval
 dEQP-VK.subgroups.basic.framebuffer.subgroupelect_tess_control
@@ -508256,55 +508271,105 @@ dEQP-VK.subgroups.vote.graphics.subgroupallequal_bvec2
 dEQP-VK.subgroups.vote.graphics.subgroupallequal_bvec3
 dEQP-VK.subgroups.vote.graphics.subgroupallequal_bvec4
 dEQP-VK.subgroups.vote.compute.subgroupallequal_int8_t
+dEQP-VK.subgroups.vote.compute.subgroupallequal_int8_t_requiredsubgroupsize
 dEQP-VK.subgroups.vote.compute.subgroupallequal_i8vec2
+dEQP-VK.subgroups.vote.compute.subgroupallequal_i8vec2_requiredsubgroupsize
 dEQP-VK.subgroups.vote.compute.subgroupallequal_i8vec3
+dEQP-VK.subgroups.vote.compute.subgroupallequal_i8vec3_requiredsubgroupsize
 dEQP-VK.subgroups.vote.compute.subgroupallequal_i8vec4
+dEQP-VK.subgroups.vote.compute.subgroupallequal_i8vec4_requiredsubgroupsize
 dEQP-VK.subgroups.vote.compute.subgroupallequal_uint8_t
+dEQP-VK.subgroups.vote.compute.subgroupallequal_uint8_t_requiredsubgroupsize
 dEQP-VK.subgroups.vote.compute.subgroupallequal_u8vec2
+dEQP-VK.subgroups.vote.compute.subgroupallequal_u8vec2_requiredsubgroupsize
 dEQP-VK.subgroups.vote.compute.subgroupallequal_u8vec3
+dEQP-VK.subgroups.vote.compute.subgroupallequal_u8vec3_requiredsubgroupsize
 dEQP-VK.subgroups.vote.compute.subgroupallequal_u8vec4
+dEQP-VK.subgroups.vote.compute.subgroupallequal_u8vec4_requiredsubgroupsize
 dEQP-VK.subgroups.vote.compute.subgroupallequal_int16_t
+dEQP-VK.subgroups.vote.compute.subgroupallequal_int16_t_requiredsubgroupsize
 dEQP-VK.subgroups.vote.compute.subgroupallequal_i16vec2
+dEQP-VK.subgroups.vote.compute.subgroupallequal_i16vec2_requiredsubgroupsize
 dEQP-VK.subgroups.vote.compute.subgroupallequal_i16vec3
+dEQP-VK.subgroups.vote.compute.subgroupallequal_i16vec3_requiredsubgroupsize
 dEQP-VK.subgroups.vote.compute.subgroupallequal_i16vec4
+dEQP-VK.subgroups.vote.compute.subgroupallequal_i16vec4_requiredsubgroupsize
 dEQP-VK.subgroups.vote.compute.subgroupallequal_uint16_t
+dEQP-VK.subgroups.vote.compute.subgroupallequal_uint16_t_requiredsubgroupsize
 dEQP-VK.subgroups.vote.compute.subgroupallequal_u16vec2
+dEQP-VK.subgroups.vote.compute.subgroupallequal_u16vec2_requiredsubgroupsize
 dEQP-VK.subgroups.vote.compute.subgroupallequal_u16vec3
+dEQP-VK.subgroups.vote.compute.subgroupallequal_u16vec3_requiredsubgroupsize
 dEQP-VK.subgroups.vote.compute.subgroupallequal_u16vec4
+dEQP-VK.subgroups.vote.compute.subgroupallequal_u16vec4_requiredsubgroupsize
 dEQP-VK.subgroups.vote.compute.subgroupallequal_int
+dEQP-VK.subgroups.vote.compute.subgroupallequal_int_requiredsubgroupsize
 dEQP-VK.subgroups.vote.compute.subgroupallequal_ivec2
+dEQP-VK.subgroups.vote.compute.subgroupallequal_ivec2_requiredsubgroupsize
 dEQP-VK.subgroups.vote.compute.subgroupallequal_ivec3
+dEQP-VK.subgroups.vote.compute.subgroupallequal_ivec3_requiredsubgroupsize
 dEQP-VK.subgroups.vote.compute.subgroupallequal_ivec4
+dEQP-VK.subgroups.vote.compute.subgroupallequal_ivec4_requiredsubgroupsize
 dEQP-VK.subgroups.vote.compute.subgroupall_uint
+dEQP-VK.subgroups.vote.compute.subgroupall_uint_requiredsubgroupsize
 dEQP-VK.subgroups.vote.compute.subgroupany_uint
+dEQP-VK.subgroups.vote.compute.subgroupany_uint_requiredsubgroupsize
 dEQP-VK.subgroups.vote.compute.subgroupallequal_uint
+dEQP-VK.subgroups.vote.compute.subgroupallequal_uint_requiredsubgroupsize
 dEQP-VK.subgroups.vote.compute.subgroupallequal_uvec2
+dEQP-VK.subgroups.vote.compute.subgroupallequal_uvec2_requiredsubgroupsize
 dEQP-VK.subgroups.vote.compute.subgroupallequal_uvec3
+dEQP-VK.subgroups.vote.compute.subgroupallequal_uvec3_requiredsubgroupsize
 dEQP-VK.subgroups.vote.compute.subgroupallequal_uvec4
+dEQP-VK.subgroups.vote.compute.subgroupallequal_uvec4_requiredsubgroupsize
 dEQP-VK.subgroups.vote.compute.subgroupallequal_int64_t
+dEQP-VK.subgroups.vote.compute.subgroupallequal_int64_t_requiredsubgroupsize
 dEQP-VK.subgroups.vote.compute.subgroupallequal_i64vec2
+dEQP-VK.subgroups.vote.compute.subgroupallequal_i64vec2_requiredsubgroupsize
 dEQP-VK.subgroups.vote.compute.subgroupallequal_i64vec3
+dEQP-VK.subgroups.vote.compute.subgroupallequal_i64vec3_requiredsubgroupsize
 dEQP-VK.subgroups.vote.compute.subgroupallequal_i64vec4
+dEQP-VK.subgroups.vote.compute.subgroupallequal_i64vec4_requiredsubgroupsize
 dEQP-VK.subgroups.vote.compute.subgroupallequal_uint64_t
+dEQP-VK.subgroups.vote.compute.subgroupallequal_uint64_t_requiredsubgroupsize
 dEQP-VK.subgroups.vote.compute.subgroupallequal_u64vec2
+dEQP-VK.subgroups.vote.compute.subgroupallequal_u64vec2_requiredsubgroupsize
 dEQP-VK.subgroups.vote.compute.subgroupallequal_u64vec3
+dEQP-VK.subgroups.vote.compute.subgroupallequal_u64vec3_requiredsubgroupsize
 dEQP-VK.subgroups.vote.compute.subgroupallequal_u64vec4
+dEQP-VK.subgroups.vote.compute.subgroupallequal_u64vec4_requiredsubgroupsize
 dEQP-VK.subgroups.vote.compute.subgroupallequal_float16_t
+dEQP-VK.subgroups.vote.compute.subgroupallequal_float16_t_requiredsubgroupsize
 dEQP-VK.subgroups.vote.compute.subgroupallequal_f16vec2
+dEQP-VK.subgroups.vote.compute.subgroupallequal_f16vec2_requiredsubgroupsize
 dEQP-VK.subgroups.vote.compute.subgroupallequal_f16vec3
+dEQP-VK.subgroups.vote.compute.subgroupallequal_f16vec3_requiredsubgroupsize
 dEQP-VK.subgroups.vote.compute.subgroupallequal_f16vec4
+dEQP-VK.subgroups.vote.compute.subgroupallequal_f16vec4_requiredsubgroupsize
 dEQP-VK.subgroups.vote.compute.subgroupallequal_float
+dEQP-VK.subgroups.vote.compute.subgroupallequal_float_requiredsubgroupsize
 dEQP-VK.subgroups.vote.compute.subgroupallequal_vec2
+dEQP-VK.subgroups.vote.compute.subgroupallequal_vec2_requiredsubgroupsize
 dEQP-VK.subgroups.vote.compute.subgroupallequal_vec3
+dEQP-VK.subgroups.vote.compute.subgroupallequal_vec3_requiredsubgroupsize
 dEQP-VK.subgroups.vote.compute.subgroupallequal_vec4
+dEQP-VK.subgroups.vote.compute.subgroupallequal_vec4_requiredsubgroupsize
 dEQP-VK.subgroups.vote.compute.subgroupallequal_double
+dEQP-VK.subgroups.vote.compute.subgroupallequal_double_requiredsubgroupsize
 dEQP-VK.subgroups.vote.compute.subgroupallequal_dvec2
+dEQP-VK.subgroups.vote.compute.subgroupallequal_dvec2_requiredsubgroupsize
 dEQP-VK.subgroups.vote.compute.subgroupallequal_dvec3
+dEQP-VK.subgroups.vote.compute.subgroupallequal_dvec3_requiredsubgroupsize
 dEQP-VK.subgroups.vote.compute.subgroupallequal_dvec4
+dEQP-VK.subgroups.vote.compute.subgroupallequal_dvec4_requiredsubgroupsize
 dEQP-VK.subgroups.vote.compute.subgroupallequal_bool
+dEQP-VK.subgroups.vote.compute.subgroupallequal_bool_requiredsubgroupsize
 dEQP-VK.subgroups.vote.compute.subgroupallequal_bvec2
+dEQP-VK.subgroups.vote.compute.subgroupallequal_bvec2_requiredsubgroupsize
 dEQP-VK.subgroups.vote.compute.subgroupallequal_bvec3
+dEQP-VK.subgroups.vote.compute.subgroupallequal_bvec3_requiredsubgroupsize
 dEQP-VK.subgroups.vote.compute.subgroupallequal_bvec4
+dEQP-VK.subgroups.vote.compute.subgroupallequal_bvec4_requiredsubgroupsize
 dEQP-VK.subgroups.vote.framebuffer.subgroupallequal_int8_t_vertex
 dEQP-VK.subgroups.vote.framebuffer.subgroupallequal_int8_t_tess_eval
 dEQP-VK.subgroups.vote.framebuffer.subgroupallequal_int8_t_tess_control
@@ -508559,8 +508624,11 @@ dEQP-VK.subgroups.vote.ext_shader_subgroup_vote.graphics.allinvocationsarb_uint
 dEQP-VK.subgroups.vote.ext_shader_subgroup_vote.graphics.anyinvocationarb_uint
 dEQP-VK.subgroups.vote.ext_shader_subgroup_vote.graphics.allinvocationsequalarb_bool
 dEQP-VK.subgroups.vote.ext_shader_subgroup_vote.compute.allinvocationsarb_uint
+dEQP-VK.subgroups.vote.ext_shader_subgroup_vote.compute.allinvocationsarb_uint_requiredsubgroupsize
 dEQP-VK.subgroups.vote.ext_shader_subgroup_vote.compute.anyinvocationarb_uint
+dEQP-VK.subgroups.vote.ext_shader_subgroup_vote.compute.anyinvocationarb_uint_requiredsubgroupsize
 dEQP-VK.subgroups.vote.ext_shader_subgroup_vote.compute.allinvocationsequalarb_bool
+dEQP-VK.subgroups.vote.ext_shader_subgroup_vote.compute.allinvocationsequalarb_bool_requiredsubgroupsize
 dEQP-VK.subgroups.vote.ext_shader_subgroup_vote.framebuffer.allinvocationsarb_uint_vertex
 dEQP-VK.subgroups.vote.ext_shader_subgroup_vote.framebuffer.allinvocationsarb_uint_tess_eval
 dEQP-VK.subgroups.vote.ext_shader_subgroup_vote.framebuffer.allinvocationsarb_uint_tess_control
@@ -508578,12 +508646,14 @@ dEQP-VK.subgroups.vote.ext_shader_subgroup_vote.frag_helper.anyinvocationarb_uin
 dEQP-VK.subgroups.vote.ext_shader_subgroup_vote.frag_helper.allinvocationsequalarb_bool_fragment
 dEQP-VK.subgroups.ballot.graphics.graphic
 dEQP-VK.subgroups.ballot.compute.compute
+dEQP-VK.subgroups.ballot.compute.compute_requiredsubgroupsize
 dEQP-VK.subgroups.ballot.framebuffer.tess_eval
 dEQP-VK.subgroups.ballot.framebuffer.tess_control
 dEQP-VK.subgroups.ballot.framebuffer.geometry
 dEQP-VK.subgroups.ballot.framebuffer.vertex
 dEQP-VK.subgroups.ballot.ext_shader_subgroup_ballot.graphics.graphic
 dEQP-VK.subgroups.ballot.ext_shader_subgroup_ballot.compute.compute
+dEQP-VK.subgroups.ballot.ext_shader_subgroup_ballot.compute.compute_requiredsubgroupsize
 dEQP-VK.subgroups.ballot.ext_shader_subgroup_ballot.framebuffer.tess_eval
 dEQP-VK.subgroups.ballot.ext_shader_subgroup_ballot.framebuffer.tess_control
 dEQP-VK.subgroups.ballot.ext_shader_subgroup_ballot.framebuffer.geometry
@@ -508733,149 +508803,293 @@ dEQP-VK.subgroups.ballot_broadcast.graphics.subgroupbroadcast_bvec4
 dEQP-VK.subgroups.ballot_broadcast.graphics.subgroupbroadcast_nonconst_bvec4
 dEQP-VK.subgroups.ballot_broadcast.graphics.subgroupbroadcastfirst_bvec4
 dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_int8_t
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_int8_t_requiredsubgroupsize
 dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_nonconst_int8_t
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_nonconst_int8_t_requiredsubgroupsize
 dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcastfirst_int8_t
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcastfirst_int8_t_requiredsubgroupsize
 dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_i8vec2
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_i8vec2_requiredsubgroupsize
 dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_nonconst_i8vec2
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_nonconst_i8vec2_requiredsubgroupsize
 dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcastfirst_i8vec2
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcastfirst_i8vec2_requiredsubgroupsize
 dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_i8vec3
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_i8vec3_requiredsubgroupsize
 dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_nonconst_i8vec3
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_nonconst_i8vec3_requiredsubgroupsize
 dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcastfirst_i8vec3
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcastfirst_i8vec3_requiredsubgroupsize
 dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_i8vec4
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_i8vec4_requiredsubgroupsize
 dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_nonconst_i8vec4
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_nonconst_i8vec4_requiredsubgroupsize
 dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcastfirst_i8vec4
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcastfirst_i8vec4_requiredsubgroupsize
 dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_uint8_t
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_uint8_t_requiredsubgroupsize
 dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_nonconst_uint8_t
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_nonconst_uint8_t_requiredsubgroupsize
 dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcastfirst_uint8_t
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcastfirst_uint8_t_requiredsubgroupsize
 dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_u8vec2
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_u8vec2_requiredsubgroupsize
 dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_nonconst_u8vec2
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_nonconst_u8vec2_requiredsubgroupsize
 dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcastfirst_u8vec2
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcastfirst_u8vec2_requiredsubgroupsize
 dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_u8vec3
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_u8vec3_requiredsubgroupsize
 dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_nonconst_u8vec3
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_nonconst_u8vec3_requiredsubgroupsize
 dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcastfirst_u8vec3
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcastfirst_u8vec3_requiredsubgroupsize
 dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_u8vec4
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_u8vec4_requiredsubgroupsize
 dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_nonconst_u8vec4
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_nonconst_u8vec4_requiredsubgroupsize
 dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcastfirst_u8vec4
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcastfirst_u8vec4_requiredsubgroupsize
 dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_int16_t
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_int16_t_requiredsubgroupsize
 dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_nonconst_int16_t
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_nonconst_int16_t_requiredsubgroupsize
 dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcastfirst_int16_t
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcastfirst_int16_t_requiredsubgroupsize
 dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_i16vec2
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_i16vec2_requiredsubgroupsize
 dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_nonconst_i16vec2
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_nonconst_i16vec2_requiredsubgroupsize
 dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcastfirst_i16vec2
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcastfirst_i16vec2_requiredsubgroupsize
 dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_i16vec3
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_i16vec3_requiredsubgroupsize
 dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_nonconst_i16vec3
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_nonconst_i16vec3_requiredsubgroupsize
 dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcastfirst_i16vec3
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcastfirst_i16vec3_requiredsubgroupsize
 dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_i16vec4
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_i16vec4_requiredsubgroupsize
 dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_nonconst_i16vec4
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_nonconst_i16vec4_requiredsubgroupsize
 dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcastfirst_i16vec4
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcastfirst_i16vec4_requiredsubgroupsize
 dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_uint16_t
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_uint16_t_requiredsubgroupsize
 dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_nonconst_uint16_t
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_nonconst_uint16_t_requiredsubgroupsize
 dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcastfirst_uint16_t
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcastfirst_uint16_t_requiredsubgroupsize
 dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_u16vec2
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_u16vec2_requiredsubgroupsize
 dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_nonconst_u16vec2
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_nonconst_u16vec2_requiredsubgroupsize
 dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcastfirst_u16vec2
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcastfirst_u16vec2_requiredsubgroupsize
 dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_u16vec3
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_u16vec3_requiredsubgroupsize
 dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_nonconst_u16vec3
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_nonconst_u16vec3_requiredsubgroupsize
 dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcastfirst_u16vec3
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcastfirst_u16vec3_requiredsubgroupsize
 dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_u16vec4
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_u16vec4_requiredsubgroupsize
 dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_nonconst_u16vec4
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_nonconst_u16vec4_requiredsubgroupsize
 dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcastfirst_u16vec4
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcastfirst_u16vec4_requiredsubgroupsize
 dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_int
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_int_requiredsubgroupsize
 dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_nonconst_int
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_nonconst_int_requiredsubgroupsize
 dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcastfirst_int
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcastfirst_int_requiredsubgroupsize
 dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_ivec2
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_ivec2_requiredsubgroupsize
 dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_nonconst_ivec2
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_nonconst_ivec2_requiredsubgroupsize
 dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcastfirst_ivec2
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcastfirst_ivec2_requiredsubgroupsize
 dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_ivec3
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_ivec3_requiredsubgroupsize
 dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_nonconst_ivec3
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_nonconst_ivec3_requiredsubgroupsize
 dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcastfirst_ivec3
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcastfirst_ivec3_requiredsubgroupsize
 dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_ivec4
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_ivec4_requiredsubgroupsize
 dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_nonconst_ivec4
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_nonconst_ivec4_requiredsubgroupsize
 dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcastfirst_ivec4
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcastfirst_ivec4_requiredsubgroupsize
 dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_uint
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_uint_requiredsubgroupsize
 dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_nonconst_uint
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_nonconst_uint_requiredsubgroupsize
 dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcastfirst_uint
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcastfirst_uint_requiredsubgroupsize
 dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_uvec2
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_uvec2_requiredsubgroupsize
 dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_nonconst_uvec2
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_nonconst_uvec2_requiredsubgroupsize
 dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcastfirst_uvec2
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcastfirst_uvec2_requiredsubgroupsize
 dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_uvec3
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_uvec3_requiredsubgroupsize
 dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_nonconst_uvec3
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_nonconst_uvec3_requiredsubgroupsize
 dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcastfirst_uvec3
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcastfirst_uvec3_requiredsubgroupsize
 dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_uvec4
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_uvec4_requiredsubgroupsize
 dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_nonconst_uvec4
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_nonconst_uvec4_requiredsubgroupsize
 dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcastfirst_uvec4
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcastfirst_uvec4_requiredsubgroupsize
 dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_int64_t
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_int64_t_requiredsubgroupsize
 dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_nonconst_int64_t
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_nonconst_int64_t_requiredsubgroupsize
 dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcastfirst_int64_t
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcastfirst_int64_t_requiredsubgroupsize
 dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_i64vec2
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_i64vec2_requiredsubgroupsize
 dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_nonconst_i64vec2
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_nonconst_i64vec2_requiredsubgroupsize
 dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcastfirst_i64vec2
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcastfirst_i64vec2_requiredsubgroupsize
 dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_i64vec3
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_i64vec3_requiredsubgroupsize
 dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_nonconst_i64vec3
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_nonconst_i64vec3_requiredsubgroupsize
 dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcastfirst_i64vec3
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcastfirst_i64vec3_requiredsubgroupsize
 dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_i64vec4
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_i64vec4_requiredsubgroupsize
 dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_nonconst_i64vec4
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_nonconst_i64vec4_requiredsubgroupsize
 dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcastfirst_i64vec4
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcastfirst_i64vec4_requiredsubgroupsize
 dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_uint64_t
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_uint64_t_requiredsubgroupsize
 dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_nonconst_uint64_t
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_nonconst_uint64_t_requiredsubgroupsize
 dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcastfirst_uint64_t
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcastfirst_uint64_t_requiredsubgroupsize
 dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_u64vec2
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_u64vec2_requiredsubgroupsize
 dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_nonconst_u64vec2
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_nonconst_u64vec2_requiredsubgroupsize
 dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcastfirst_u64vec2
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcastfirst_u64vec2_requiredsubgroupsize
 dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_u64vec3
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_u64vec3_requiredsubgroupsize
 dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_nonconst_u64vec3
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_nonconst_u64vec3_requiredsubgroupsize
 dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcastfirst_u64vec3
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcastfirst_u64vec3_requiredsubgroupsize
 dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_u64vec4
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_u64vec4_requiredsubgroupsize
 dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_nonconst_u64vec4
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_nonconst_u64vec4_requiredsubgroupsize
 dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcastfirst_u64vec4
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcastfirst_u64vec4_requiredsubgroupsize
 dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_float16_t
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_float16_t_requiredsubgroupsize
 dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_nonconst_float16_t
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_nonconst_float16_t_requiredsubgroupsize
 dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcastfirst_float16_t
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcastfirst_float16_t_requiredsubgroupsize
 dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_f16vec2
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_f16vec2_requiredsubgroupsize
 dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_nonconst_f16vec2
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_nonconst_f16vec2_requiredsubgroupsize
 dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcastfirst_f16vec2
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcastfirst_f16vec2_requiredsubgroupsize
 dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_f16vec3
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_f16vec3_requiredsubgroupsize
 dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_nonconst_f16vec3
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_nonconst_f16vec3_requiredsubgroupsize
 dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcastfirst_f16vec3
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcastfirst_f16vec3_requiredsubgroupsize
 dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_f16vec4
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_f16vec4_requiredsubgroupsize
 dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_nonconst_f16vec4
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_nonconst_f16vec4_requiredsubgroupsize
 dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcastfirst_f16vec4
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcastfirst_f16vec4_requiredsubgroupsize
 dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_float
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_float_requiredsubgroupsize
 dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_nonconst_float
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_nonconst_float_requiredsubgroupsize
 dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcastfirst_float
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcastfirst_float_requiredsubgroupsize
 dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_vec2
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_vec2_requiredsubgroupsize
 dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_nonconst_vec2
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_nonconst_vec2_requiredsubgroupsize
 dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcastfirst_vec2
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcastfirst_vec2_requiredsubgroupsize
 dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_vec3
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_vec3_requiredsubgroupsize
 dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_nonconst_vec3
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_nonconst_vec3_requiredsubgroupsize
 dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcastfirst_vec3
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcastfirst_vec3_requiredsubgroupsize
 dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_vec4
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_vec4_requiredsubgroupsize
 dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_nonconst_vec4
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_nonconst_vec4_requiredsubgroupsize
 dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcastfirst_vec4
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcastfirst_vec4_requiredsubgroupsize
 dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_double
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_double_requiredsubgroupsize
 dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_nonconst_double
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_nonconst_double_requiredsubgroupsize
 dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcastfirst_double
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcastfirst_double_requiredsubgroupsize
 dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_dvec2
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_dvec2_requiredsubgroupsize
 dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_nonconst_dvec2
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_nonconst_dvec2_requiredsubgroupsize
 dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcastfirst_dvec2
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcastfirst_dvec2_requiredsubgroupsize
 dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_dvec3
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_dvec3_requiredsubgroupsize
 dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_nonconst_dvec3
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_nonconst_dvec3_requiredsubgroupsize
 dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcastfirst_dvec3
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcastfirst_dvec3_requiredsubgroupsize
 dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_dvec4
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_dvec4_requiredsubgroupsize
 dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_nonconst_dvec4
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_nonconst_dvec4_requiredsubgroupsize
 dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcastfirst_dvec4
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcastfirst_dvec4_requiredsubgroupsize
 dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_bool
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_bool_requiredsubgroupsize
 dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_nonconst_bool
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_nonconst_bool_requiredsubgroupsize
 dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcastfirst_bool
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcastfirst_bool_requiredsubgroupsize
 dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_bvec2
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_bvec2_requiredsubgroupsize
 dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_nonconst_bvec2
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_nonconst_bvec2_requiredsubgroupsize
 dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcastfirst_bvec2
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcastfirst_bvec2_requiredsubgroupsize
 dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_bvec3
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_bvec3_requiredsubgroupsize
 dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_nonconst_bvec3
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_nonconst_bvec3_requiredsubgroupsize
 dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcastfirst_bvec3
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcastfirst_bvec3_requiredsubgroupsize
 dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_bvec4
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_bvec4_requiredsubgroupsize
 dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_nonconst_bvec4
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_nonconst_bvec4_requiredsubgroupsize
 dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcastfirst_bvec4
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcastfirst_bvec4_requiredsubgroupsize
 dEQP-VK.subgroups.ballot_broadcast.framebuffer.subgroupbroadcast_int8_tvertex
 dEQP-VK.subgroups.ballot_broadcast.framebuffer.subgroupbroadcast_int8_ttess_eval
 dEQP-VK.subgroups.ballot_broadcast.framebuffer.subgroupbroadcast_int8_ttess_control
@@ -509462,14 +509676,23 @@ dEQP-VK.subgroups.ballot_broadcast.ext_shader_subgroup_ballot.graphics.subgroupb
 dEQP-VK.subgroups.ballot_broadcast.ext_shader_subgroup_ballot.graphics.subgroupbroadcast_nonconst_float
 dEQP-VK.subgroups.ballot_broadcast.ext_shader_subgroup_ballot.graphics.subgroupbroadcastfirst_float
 dEQP-VK.subgroups.ballot_broadcast.ext_shader_subgroup_ballot.compute.subgroupbroadcast_int
+dEQP-VK.subgroups.ballot_broadcast.ext_shader_subgroup_ballot.compute.subgroupbroadcast_int_requiredsubgroupsize
 dEQP-VK.subgroups.ballot_broadcast.ext_shader_subgroup_ballot.compute.subgroupbroadcast_nonconst_int
+dEQP-VK.subgroups.ballot_broadcast.ext_shader_subgroup_ballot.compute.subgroupbroadcast_nonconst_int_requiredsubgroupsize
 dEQP-VK.subgroups.ballot_broadcast.ext_shader_subgroup_ballot.compute.subgroupbroadcastfirst_int
+dEQP-VK.subgroups.ballot_broadcast.ext_shader_subgroup_ballot.compute.subgroupbroadcastfirst_int_requiredsubgroupsize
 dEQP-VK.subgroups.ballot_broadcast.ext_shader_subgroup_ballot.compute.subgroupbroadcast_uint
+dEQP-VK.subgroups.ballot_broadcast.ext_shader_subgroup_ballot.compute.subgroupbroadcast_uint_requiredsubgroupsize
 dEQP-VK.subgroups.ballot_broadcast.ext_shader_subgroup_ballot.compute.subgroupbroadcast_nonconst_uint
+dEQP-VK.subgroups.ballot_broadcast.ext_shader_subgroup_ballot.compute.subgroupbroadcast_nonconst_uint_requiredsubgroupsize
 dEQP-VK.subgroups.ballot_broadcast.ext_shader_subgroup_ballot.compute.subgroupbroadcastfirst_uint
+dEQP-VK.subgroups.ballot_broadcast.ext_shader_subgroup_ballot.compute.subgroupbroadcastfirst_uint_requiredsubgroupsize
 dEQP-VK.subgroups.ballot_broadcast.ext_shader_subgroup_ballot.compute.subgroupbroadcast_float
+dEQP-VK.subgroups.ballot_broadcast.ext_shader_subgroup_ballot.compute.subgroupbroadcast_float_requiredsubgroupsize
 dEQP-VK.subgroups.ballot_broadcast.ext_shader_subgroup_ballot.compute.subgroupbroadcast_nonconst_float
+dEQP-VK.subgroups.ballot_broadcast.ext_shader_subgroup_ballot.compute.subgroupbroadcast_nonconst_float_requiredsubgroupsize
 dEQP-VK.subgroups.ballot_broadcast.ext_shader_subgroup_ballot.compute.subgroupbroadcastfirst_float
+dEQP-VK.subgroups.ballot_broadcast.ext_shader_subgroup_ballot.compute.subgroupbroadcastfirst_float_requiredsubgroupsize
 dEQP-VK.subgroups.ballot_broadcast.ext_shader_subgroup_ballot.framebuffer.subgroupbroadcast_intvertex
 dEQP-VK.subgroups.ballot_broadcast.ext_shader_subgroup_ballot.framebuffer.subgroupbroadcast_inttess_eval
 dEQP-VK.subgroups.ballot_broadcast.ext_shader_subgroup_ballot.framebuffer.subgroupbroadcast_inttess_control
@@ -509514,12 +509737,19 @@ dEQP-VK.subgroups.ballot_other.graphics.subgroupballotexclusivebitcount
 dEQP-VK.subgroups.ballot_other.graphics.subgroupballotfindlsb
 dEQP-VK.subgroups.ballot_other.graphics.subgroupballotfindmsb
 dEQP-VK.subgroups.ballot_other.compute.subgroupinverseballot
+dEQP-VK.subgroups.ballot_other.compute.subgroupinverseballot_requiredsubgroupSize
 dEQP-VK.subgroups.ballot_other.compute.subgroupballotbitextract
+dEQP-VK.subgroups.ballot_other.compute.subgroupballotbitextract_requiredsubgroupSize
 dEQP-VK.subgroups.ballot_other.compute.subgroupballotbitcount
+dEQP-VK.subgroups.ballot_other.compute.subgroupballotbitcount_requiredsubgroupSize
 dEQP-VK.subgroups.ballot_other.compute.subgroupballotinclusivebitcount
+dEQP-VK.subgroups.ballot_other.compute.subgroupballotinclusivebitcount_requiredsubgroupSize
 dEQP-VK.subgroups.ballot_other.compute.subgroupballotexclusivebitcount
+dEQP-VK.subgroups.ballot_other.compute.subgroupballotexclusivebitcount_requiredsubgroupSize
 dEQP-VK.subgroups.ballot_other.compute.subgroupballotfindlsb
+dEQP-VK.subgroups.ballot_other.compute.subgroupballotfindlsb_requiredsubgroupSize
 dEQP-VK.subgroups.ballot_other.compute.subgroupballotfindmsb
+dEQP-VK.subgroups.ballot_other.compute.subgroupballotfindmsb_requiredsubgroupSize
 dEQP-VK.subgroups.ballot_other.framebuffer.subgroupinverseballot_vertex
 dEQP-VK.subgroups.ballot_other.framebuffer.subgroupinverseballot_tess_eval
 dEQP-VK.subgroups.ballot_other.framebuffer.subgroupinverseballot_tess_control
@@ -510401,857 +510631,1709 @@ dEQP-VK.subgroups.arithmetic.graphics.subgroupexclusiveand_bvec4
 dEQP-VK.subgroups.arithmetic.graphics.subgroupexclusiveor_bvec4
 dEQP-VK.subgroups.arithmetic.graphics.subgroupexclusivexor_bvec4
 dEQP-VK.subgroups.arithmetic.compute.subgroupadd_int8_t
+dEQP-VK.subgroups.arithmetic.compute.subgroupadd_int8_t_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupmul_int8_t
+dEQP-VK.subgroups.arithmetic.compute.subgroupmul_int8_t_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupmin_int8_t
+dEQP-VK.subgroups.arithmetic.compute.subgroupmin_int8_t_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupmax_int8_t
+dEQP-VK.subgroups.arithmetic.compute.subgroupmax_int8_t_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupand_int8_t
+dEQP-VK.subgroups.arithmetic.compute.subgroupand_int8_t_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupor_int8_t
+dEQP-VK.subgroups.arithmetic.compute.subgroupor_int8_t_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupxor_int8_t
+dEQP-VK.subgroups.arithmetic.compute.subgroupxor_int8_t_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupinclusiveadd_int8_t
+dEQP-VK.subgroups.arithmetic.compute.subgroupinclusiveadd_int8_t_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivemul_int8_t
+dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivemul_int8_t_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivemin_int8_t
+dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivemin_int8_t_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivemax_int8_t
+dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivemax_int8_t_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupinclusiveand_int8_t
+dEQP-VK.subgroups.arithmetic.compute.subgroupinclusiveand_int8_t_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupinclusiveor_int8_t
+dEQP-VK.subgroups.arithmetic.compute.subgroupinclusiveor_int8_t_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivexor_int8_t
+dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivexor_int8_t_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupexclusiveadd_int8_t
+dEQP-VK.subgroups.arithmetic.compute.subgroupexclusiveadd_int8_t_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivemul_int8_t
+dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivemul_int8_t_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivemin_int8_t
+dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivemin_int8_t_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivemax_int8_t
+dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivemax_int8_t_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupexclusiveand_int8_t
+dEQP-VK.subgroups.arithmetic.compute.subgroupexclusiveand_int8_t_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupexclusiveor_int8_t
+dEQP-VK.subgroups.arithmetic.compute.subgroupexclusiveor_int8_t_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivexor_int8_t
+dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivexor_int8_t_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupadd_i8vec2
+dEQP-VK.subgroups.arithmetic.compute.subgroupadd_i8vec2_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupmul_i8vec2
+dEQP-VK.subgroups.arithmetic.compute.subgroupmul_i8vec2_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupmin_i8vec2
+dEQP-VK.subgroups.arithmetic.compute.subgroupmin_i8vec2_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupmax_i8vec2
+dEQP-VK.subgroups.arithmetic.compute.subgroupmax_i8vec2_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupand_i8vec2
+dEQP-VK.subgroups.arithmetic.compute.subgroupand_i8vec2_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupor_i8vec2
+dEQP-VK.subgroups.arithmetic.compute.subgroupor_i8vec2_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupxor_i8vec2
+dEQP-VK.subgroups.arithmetic.compute.subgroupxor_i8vec2_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupinclusiveadd_i8vec2
+dEQP-VK.subgroups.arithmetic.compute.subgroupinclusiveadd_i8vec2_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivemul_i8vec2
+dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivemul_i8vec2_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivemin_i8vec2
+dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivemin_i8vec2_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivemax_i8vec2
+dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivemax_i8vec2_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupinclusiveand_i8vec2
+dEQP-VK.subgroups.arithmetic.compute.subgroupinclusiveand_i8vec2_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupinclusiveor_i8vec2
+dEQP-VK.subgroups.arithmetic.compute.subgroupinclusiveor_i8vec2_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivexor_i8vec2
+dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivexor_i8vec2_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupexclusiveadd_i8vec2
+dEQP-VK.subgroups.arithmetic.compute.subgroupexclusiveadd_i8vec2_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivemul_i8vec2
+dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivemul_i8vec2_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivemin_i8vec2
+dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivemin_i8vec2_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivemax_i8vec2
+dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivemax_i8vec2_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupexclusiveand_i8vec2
+dEQP-VK.subgroups.arithmetic.compute.subgroupexclusiveand_i8vec2_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupexclusiveor_i8vec2
+dEQP-VK.subgroups.arithmetic.compute.subgroupexclusiveor_i8vec2_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivexor_i8vec2
+dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivexor_i8vec2_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupadd_i8vec3
+dEQP-VK.subgroups.arithmetic.compute.subgroupadd_i8vec3_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupmul_i8vec3
+dEQP-VK.subgroups.arithmetic.compute.subgroupmul_i8vec3_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupmin_i8vec3
+dEQP-VK.subgroups.arithmetic.compute.subgroupmin_i8vec3_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupmax_i8vec3
+dEQP-VK.subgroups.arithmetic.compute.subgroupmax_i8vec3_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupand_i8vec3
+dEQP-VK.subgroups.arithmetic.compute.subgroupand_i8vec3_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupor_i8vec3
+dEQP-VK.subgroups.arithmetic.compute.subgroupor_i8vec3_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupxor_i8vec3
+dEQP-VK.subgroups.arithmetic.compute.subgroupxor_i8vec3_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupinclusiveadd_i8vec3
+dEQP-VK.subgroups.arithmetic.compute.subgroupinclusiveadd_i8vec3_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivemul_i8vec3
+dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivemul_i8vec3_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivemin_i8vec3
+dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivemin_i8vec3_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivemax_i8vec3
+dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivemax_i8vec3_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupinclusiveand_i8vec3
+dEQP-VK.subgroups.arithmetic.compute.subgroupinclusiveand_i8vec3_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupinclusiveor_i8vec3
+dEQP-VK.subgroups.arithmetic.compute.subgroupinclusiveor_i8vec3_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivexor_i8vec3
+dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivexor_i8vec3_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupexclusiveadd_i8vec3
+dEQP-VK.subgroups.arithmetic.compute.subgroupexclusiveadd_i8vec3_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivemul_i8vec3
+dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivemul_i8vec3_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivemin_i8vec3
+dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivemin_i8vec3_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivemax_i8vec3
+dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivemax_i8vec3_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupexclusiveand_i8vec3
+dEQP-VK.subgroups.arithmetic.compute.subgroupexclusiveand_i8vec3_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupexclusiveor_i8vec3
+dEQP-VK.subgroups.arithmetic.compute.subgroupexclusiveor_i8vec3_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivexor_i8vec3
+dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivexor_i8vec3_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupadd_i8vec4
+dEQP-VK.subgroups.arithmetic.compute.subgroupadd_i8vec4_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupmul_i8vec4
+dEQP-VK.subgroups.arithmetic.compute.subgroupmul_i8vec4_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupmin_i8vec4
+dEQP-VK.subgroups.arithmetic.compute.subgroupmin_i8vec4_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupmax_i8vec4
+dEQP-VK.subgroups.arithmetic.compute.subgroupmax_i8vec4_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupand_i8vec4
+dEQP-VK.subgroups.arithmetic.compute.subgroupand_i8vec4_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupor_i8vec4
+dEQP-VK.subgroups.arithmetic.compute.subgroupor_i8vec4_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupxor_i8vec4
+dEQP-VK.subgroups.arithmetic.compute.subgroupxor_i8vec4_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupinclusiveadd_i8vec4
+dEQP-VK.subgroups.arithmetic.compute.subgroupinclusiveadd_i8vec4_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivemul_i8vec4
+dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivemul_i8vec4_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivemin_i8vec4
+dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivemin_i8vec4_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivemax_i8vec4
+dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivemax_i8vec4_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupinclusiveand_i8vec4
+dEQP-VK.subgroups.arithmetic.compute.subgroupinclusiveand_i8vec4_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupinclusiveor_i8vec4
+dEQP-VK.subgroups.arithmetic.compute.subgroupinclusiveor_i8vec4_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivexor_i8vec4
+dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivexor_i8vec4_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupexclusiveadd_i8vec4
+dEQP-VK.subgroups.arithmetic.compute.subgroupexclusiveadd_i8vec4_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivemul_i8vec4
+dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivemul_i8vec4_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivemin_i8vec4
+dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivemin_i8vec4_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivemax_i8vec4
+dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivemax_i8vec4_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupexclusiveand_i8vec4
+dEQP-VK.subgroups.arithmetic.compute.subgroupexclusiveand_i8vec4_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupexclusiveor_i8vec4
+dEQP-VK.subgroups.arithmetic.compute.subgroupexclusiveor_i8vec4_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivexor_i8vec4
+dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivexor_i8vec4_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupadd_uint8_t
+dEQP-VK.subgroups.arithmetic.compute.subgroupadd_uint8_t_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupmul_uint8_t
+dEQP-VK.subgroups.arithmetic.compute.subgroupmul_uint8_t_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupmin_uint8_t
+dEQP-VK.subgroups.arithmetic.compute.subgroupmin_uint8_t_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupmax_uint8_t
+dEQP-VK.subgroups.arithmetic.compute.subgroupmax_uint8_t_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupand_uint8_t
+dEQP-VK.subgroups.arithmetic.compute.subgroupand_uint8_t_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupor_uint8_t
+dEQP-VK.subgroups.arithmetic.compute.subgroupor_uint8_t_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupxor_uint8_t
+dEQP-VK.subgroups.arithmetic.compute.subgroupxor_uint8_t_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupinclusiveadd_uint8_t
+dEQP-VK.subgroups.arithmetic.compute.subgroupinclusiveadd_uint8_t_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivemul_uint8_t
+dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivemul_uint8_t_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivemin_uint8_t
+dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivemin_uint8_t_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivemax_uint8_t
+dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivemax_uint8_t_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupinclusiveand_uint8_t
+dEQP-VK.subgroups.arithmetic.compute.subgroupinclusiveand_uint8_t_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupinclusiveor_uint8_t
+dEQP-VK.subgroups.arithmetic.compute.subgroupinclusiveor_uint8_t_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivexor_uint8_t
+dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivexor_uint8_t_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupexclusiveadd_uint8_t
+dEQP-VK.subgroups.arithmetic.compute.subgroupexclusiveadd_uint8_t_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivemul_uint8_t
+dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivemul_uint8_t_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivemin_uint8_t
+dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivemin_uint8_t_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivemax_uint8_t
+dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivemax_uint8_t_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupexclusiveand_uint8_t
+dEQP-VK.subgroups.arithmetic.compute.subgroupexclusiveand_uint8_t_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupexclusiveor_uint8_t
+dEQP-VK.subgroups.arithmetic.compute.subgroupexclusiveor_uint8_t_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivexor_uint8_t
+dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivexor_uint8_t_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupadd_u8vec2
+dEQP-VK.subgroups.arithmetic.compute.subgroupadd_u8vec2_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupmul_u8vec2
+dEQP-VK.subgroups.arithmetic.compute.subgroupmul_u8vec2_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupmin_u8vec2
+dEQP-VK.subgroups.arithmetic.compute.subgroupmin_u8vec2_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupmax_u8vec2
+dEQP-VK.subgroups.arithmetic.compute.subgroupmax_u8vec2_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupand_u8vec2
+dEQP-VK.subgroups.arithmetic.compute.subgroupand_u8vec2_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupor_u8vec2
+dEQP-VK.subgroups.arithmetic.compute.subgroupor_u8vec2_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupxor_u8vec2
+dEQP-VK.subgroups.arithmetic.compute.subgroupxor_u8vec2_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupinclusiveadd_u8vec2
+dEQP-VK.subgroups.arithmetic.compute.subgroupinclusiveadd_u8vec2_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivemul_u8vec2
+dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivemul_u8vec2_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivemin_u8vec2
+dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivemin_u8vec2_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivemax_u8vec2
+dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivemax_u8vec2_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupinclusiveand_u8vec2
+dEQP-VK.subgroups.arithmetic.compute.subgroupinclusiveand_u8vec2_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupinclusiveor_u8vec2
+dEQP-VK.subgroups.arithmetic.compute.subgroupinclusiveor_u8vec2_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivexor_u8vec2
+dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivexor_u8vec2_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupexclusiveadd_u8vec2
+dEQP-VK.subgroups.arithmetic.compute.subgroupexclusiveadd_u8vec2_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivemul_u8vec2
+dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivemul_u8vec2_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivemin_u8vec2
+dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivemin_u8vec2_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivemax_u8vec2
+dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivemax_u8vec2_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupexclusiveand_u8vec2
+dEQP-VK.subgroups.arithmetic.compute.subgroupexclusiveand_u8vec2_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupexclusiveor_u8vec2
+dEQP-VK.subgroups.arithmetic.compute.subgroupexclusiveor_u8vec2_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivexor_u8vec2
+dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivexor_u8vec2_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupadd_u8vec3
+dEQP-VK.subgroups.arithmetic.compute.subgroupadd_u8vec3_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupmul_u8vec3
+dEQP-VK.subgroups.arithmetic.compute.subgroupmul_u8vec3_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupmin_u8vec3
+dEQP-VK.subgroups.arithmetic.compute.subgroupmin_u8vec3_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupmax_u8vec3
+dEQP-VK.subgroups.arithmetic.compute.subgroupmax_u8vec3_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupand_u8vec3
+dEQP-VK.subgroups.arithmetic.compute.subgroupand_u8vec3_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupor_u8vec3
+dEQP-VK.subgroups.arithmetic.compute.subgroupor_u8vec3_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupxor_u8vec3
+dEQP-VK.subgroups.arithmetic.compute.subgroupxor_u8vec3_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupinclusiveadd_u8vec3
+dEQP-VK.subgroups.arithmetic.compute.subgroupinclusiveadd_u8vec3_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivemul_u8vec3
+dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivemul_u8vec3_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivemin_u8vec3
+dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivemin_u8vec3_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivemax_u8vec3
+dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivemax_u8vec3_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupinclusiveand_u8vec3
+dEQP-VK.subgroups.arithmetic.compute.subgroupinclusiveand_u8vec3_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupinclusiveor_u8vec3
+dEQP-VK.subgroups.arithmetic.compute.subgroupinclusiveor_u8vec3_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivexor_u8vec3
+dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivexor_u8vec3_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupexclusiveadd_u8vec3
+dEQP-VK.subgroups.arithmetic.compute.subgroupexclusiveadd_u8vec3_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivemul_u8vec3
+dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivemul_u8vec3_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivemin_u8vec3
+dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivemin_u8vec3_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivemax_u8vec3
+dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivemax_u8vec3_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupexclusiveand_u8vec3
+dEQP-VK.subgroups.arithmetic.compute.subgroupexclusiveand_u8vec3_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupexclusiveor_u8vec3
+dEQP-VK.subgroups.arithmetic.compute.subgroupexclusiveor_u8vec3_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivexor_u8vec3
+dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivexor_u8vec3_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupadd_u8vec4
+dEQP-VK.subgroups.arithmetic.compute.subgroupadd_u8vec4_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupmul_u8vec4
+dEQP-VK.subgroups.arithmetic.compute.subgroupmul_u8vec4_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupmin_u8vec4
+dEQP-VK.subgroups.arithmetic.compute.subgroupmin_u8vec4_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupmax_u8vec4
+dEQP-VK.subgroups.arithmetic.compute.subgroupmax_u8vec4_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupand_u8vec4
+dEQP-VK.subgroups.arithmetic.compute.subgroupand_u8vec4_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupor_u8vec4
+dEQP-VK.subgroups.arithmetic.compute.subgroupor_u8vec4_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupxor_u8vec4
+dEQP-VK.subgroups.arithmetic.compute.subgroupxor_u8vec4_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupinclusiveadd_u8vec4
+dEQP-VK.subgroups.arithmetic.compute.subgroupinclusiveadd_u8vec4_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivemul_u8vec4
+dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivemul_u8vec4_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivemin_u8vec4
+dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivemin_u8vec4_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivemax_u8vec4
+dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivemax_u8vec4_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupinclusiveand_u8vec4
+dEQP-VK.subgroups.arithmetic.compute.subgroupinclusiveand_u8vec4_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupinclusiveor_u8vec4
+dEQP-VK.subgroups.arithmetic.compute.subgroupinclusiveor_u8vec4_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivexor_u8vec4
+dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivexor_u8vec4_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupexclusiveadd_u8vec4
+dEQP-VK.subgroups.arithmetic.compute.subgroupexclusiveadd_u8vec4_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivemul_u8vec4
+dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivemul_u8vec4_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivemin_u8vec4
+dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivemin_u8vec4_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivemax_u8vec4
+dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivemax_u8vec4_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupexclusiveand_u8vec4
+dEQP-VK.subgroups.arithmetic.compute.subgroupexclusiveand_u8vec4_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupexclusiveor_u8vec4
+dEQP-VK.subgroups.arithmetic.compute.subgroupexclusiveor_u8vec4_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivexor_u8vec4
+dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivexor_u8vec4_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupadd_int16_t
+dEQP-VK.subgroups.arithmetic.compute.subgroupadd_int16_t_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupmul_int16_t
+dEQP-VK.subgroups.arithmetic.compute.subgroupmul_int16_t_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupmin_int16_t
+dEQP-VK.subgroups.arithmetic.compute.subgroupmin_int16_t_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupmax_int16_t
+dEQP-VK.subgroups.arithmetic.compute.subgroupmax_int16_t_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupand_int16_t
+dEQP-VK.subgroups.arithmetic.compute.subgroupand_int16_t_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupor_int16_t
+dEQP-VK.subgroups.arithmetic.compute.subgroupor_int16_t_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupxor_int16_t
+dEQP-VK.subgroups.arithmetic.compute.subgroupxor_int16_t_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupinclusiveadd_int16_t
+dEQP-VK.subgroups.arithmetic.compute.subgroupinclusiveadd_int16_t_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivemul_int16_t
+dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivemul_int16_t_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivemin_int16_t
+dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivemin_int16_t_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivemax_int16_t
+dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivemax_int16_t_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupinclusiveand_int16_t
+dEQP-VK.subgroups.arithmetic.compute.subgroupinclusiveand_int16_t_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupinclusiveor_int16_t
+dEQP-VK.subgroups.arithmetic.compute.subgroupinclusiveor_int16_t_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivexor_int16_t
+dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivexor_int16_t_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupexclusiveadd_int16_t
+dEQP-VK.subgroups.arithmetic.compute.subgroupexclusiveadd_int16_t_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivemul_int16_t
+dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivemul_int16_t_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivemin_int16_t
+dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivemin_int16_t_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivemax_int16_t
+dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivemax_int16_t_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupexclusiveand_int16_t
+dEQP-VK.subgroups.arithmetic.compute.subgroupexclusiveand_int16_t_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupexclusiveor_int16_t
+dEQP-VK.subgroups.arithmetic.compute.subgroupexclusiveor_int16_t_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivexor_int16_t
+dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivexor_int16_t_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupadd_i16vec2
+dEQP-VK.subgroups.arithmetic.compute.subgroupadd_i16vec2_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupmul_i16vec2
+dEQP-VK.subgroups.arithmetic.compute.subgroupmul_i16vec2_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupmin_i16vec2
+dEQP-VK.subgroups.arithmetic.compute.subgroupmin_i16vec2_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupmax_i16vec2
+dEQP-VK.subgroups.arithmetic.compute.subgroupmax_i16vec2_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupand_i16vec2
+dEQP-VK.subgroups.arithmetic.compute.subgroupand_i16vec2_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupor_i16vec2
+dEQP-VK.subgroups.arithmetic.compute.subgroupor_i16vec2_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupxor_i16vec2
+dEQP-VK.subgroups.arithmetic.compute.subgroupxor_i16vec2_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupinclusiveadd_i16vec2
+dEQP-VK.subgroups.arithmetic.compute.subgroupinclusiveadd_i16vec2_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivemul_i16vec2
+dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivemul_i16vec2_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivemin_i16vec2
+dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivemin_i16vec2_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivemax_i16vec2
+dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivemax_i16vec2_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupinclusiveand_i16vec2
+dEQP-VK.subgroups.arithmetic.compute.subgroupinclusiveand_i16vec2_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupinclusiveor_i16vec2
+dEQP-VK.subgroups.arithmetic.compute.subgroupinclusiveor_i16vec2_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivexor_i16vec2
+dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivexor_i16vec2_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupexclusiveadd_i16vec2
+dEQP-VK.subgroups.arithmetic.compute.subgroupexclusiveadd_i16vec2_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivemul_i16vec2
+dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivemul_i16vec2_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivemin_i16vec2
+dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivemin_i16vec2_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivemax_i16vec2
+dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivemax_i16vec2_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupexclusiveand_i16vec2
+dEQP-VK.subgroups.arithmetic.compute.subgroupexclusiveand_i16vec2_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupexclusiveor_i16vec2
+dEQP-VK.subgroups.arithmetic.compute.subgroupexclusiveor_i16vec2_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivexor_i16vec2
+dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivexor_i16vec2_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupadd_i16vec3
+dEQP-VK.subgroups.arithmetic.compute.subgroupadd_i16vec3_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupmul_i16vec3
+dEQP-VK.subgroups.arithmetic.compute.subgroupmul_i16vec3_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupmin_i16vec3
+dEQP-VK.subgroups.arithmetic.compute.subgroupmin_i16vec3_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupmax_i16vec3
+dEQP-VK.subgroups.arithmetic.compute.subgroupmax_i16vec3_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupand_i16vec3
+dEQP-VK.subgroups.arithmetic.compute.subgroupand_i16vec3_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupor_i16vec3
+dEQP-VK.subgroups.arithmetic.compute.subgroupor_i16vec3_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupxor_i16vec3
+dEQP-VK.subgroups.arithmetic.compute.subgroupxor_i16vec3_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupinclusiveadd_i16vec3
+dEQP-VK.subgroups.arithmetic.compute.subgroupinclusiveadd_i16vec3_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivemul_i16vec3
+dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivemul_i16vec3_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivemin_i16vec3
+dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivemin_i16vec3_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivemax_i16vec3
+dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivemax_i16vec3_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupinclusiveand_i16vec3
+dEQP-VK.subgroups.arithmetic.compute.subgroupinclusiveand_i16vec3_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupinclusiveor_i16vec3
+dEQP-VK.subgroups.arithmetic.compute.subgroupinclusiveor_i16vec3_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivexor_i16vec3
+dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivexor_i16vec3_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupexclusiveadd_i16vec3
+dEQP-VK.subgroups.arithmetic.compute.subgroupexclusiveadd_i16vec3_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivemul_i16vec3
+dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivemul_i16vec3_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivemin_i16vec3
+dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivemin_i16vec3_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivemax_i16vec3
+dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivemax_i16vec3_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupexclusiveand_i16vec3
+dEQP-VK.subgroups.arithmetic.compute.subgroupexclusiveand_i16vec3_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupexclusiveor_i16vec3
+dEQP-VK.subgroups.arithmetic.compute.subgroupexclusiveor_i16vec3_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivexor_i16vec3
+dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivexor_i16vec3_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupadd_i16vec4
+dEQP-VK.subgroups.arithmetic.compute.subgroupadd_i16vec4_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupmul_i16vec4
+dEQP-VK.subgroups.arithmetic.compute.subgroupmul_i16vec4_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupmin_i16vec4
+dEQP-VK.subgroups.arithmetic.compute.subgroupmin_i16vec4_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupmax_i16vec4
+dEQP-VK.subgroups.arithmetic.compute.subgroupmax_i16vec4_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupand_i16vec4
+dEQP-VK.subgroups.arithmetic.compute.subgroupand_i16vec4_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupor_i16vec4
+dEQP-VK.subgroups.arithmetic.compute.subgroupor_i16vec4_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupxor_i16vec4
+dEQP-VK.subgroups.arithmetic.compute.subgroupxor_i16vec4_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupinclusiveadd_i16vec4
+dEQP-VK.subgroups.arithmetic.compute.subgroupinclusiveadd_i16vec4_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivemul_i16vec4
+dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivemul_i16vec4_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivemin_i16vec4
+dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivemin_i16vec4_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivemax_i16vec4
+dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivemax_i16vec4_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupinclusiveand_i16vec4
+dEQP-VK.subgroups.arithmetic.compute.subgroupinclusiveand_i16vec4_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupinclusiveor_i16vec4
+dEQP-VK.subgroups.arithmetic.compute.subgroupinclusiveor_i16vec4_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivexor_i16vec4
+dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivexor_i16vec4_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupexclusiveadd_i16vec4
+dEQP-VK.subgroups.arithmetic.compute.subgroupexclusiveadd_i16vec4_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivemul_i16vec4
+dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivemul_i16vec4_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivemin_i16vec4
+dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivemin_i16vec4_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivemax_i16vec4
+dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivemax_i16vec4_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupexclusiveand_i16vec4
+dEQP-VK.subgroups.arithmetic.compute.subgroupexclusiveand_i16vec4_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupexclusiveor_i16vec4
+dEQP-VK.subgroups.arithmetic.compute.subgroupexclusiveor_i16vec4_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivexor_i16vec4
+dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivexor_i16vec4_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupadd_uint16_t
+dEQP-VK.subgroups.arithmetic.compute.subgroupadd_uint16_t_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupmul_uint16_t
+dEQP-VK.subgroups.arithmetic.compute.subgroupmul_uint16_t_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupmin_uint16_t
+dEQP-VK.subgroups.arithmetic.compute.subgroupmin_uint16_t_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupmax_uint16_t
+dEQP-VK.subgroups.arithmetic.compute.subgroupmax_uint16_t_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupand_uint16_t
+dEQP-VK.subgroups.arithmetic.compute.subgroupand_uint16_t_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupor_uint16_t
+dEQP-VK.subgroups.arithmetic.compute.subgroupor_uint16_t_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupxor_uint16_t
+dEQP-VK.subgroups.arithmetic.compute.subgroupxor_uint16_t_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupinclusiveadd_uint16_t
+dEQP-VK.subgroups.arithmetic.compute.subgroupinclusiveadd_uint16_t_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivemul_uint16_t
+dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivemul_uint16_t_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivemin_uint16_t
+dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivemin_uint16_t_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivemax_uint16_t
+dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivemax_uint16_t_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupinclusiveand_uint16_t
+dEQP-VK.subgroups.arithmetic.compute.subgroupinclusiveand_uint16_t_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupinclusiveor_uint16_t
+dEQP-VK.subgroups.arithmetic.compute.subgroupinclusiveor_uint16_t_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivexor_uint16_t
+dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivexor_uint16_t_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupexclusiveadd_uint16_t
+dEQP-VK.subgroups.arithmetic.compute.subgroupexclusiveadd_uint16_t_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivemul_uint16_t
+dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivemul_uint16_t_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivemin_uint16_t
+dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivemin_uint16_t_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivemax_uint16_t
+dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivemax_uint16_t_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupexclusiveand_uint16_t
+dEQP-VK.subgroups.arithmetic.compute.subgroupexclusiveand_uint16_t_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupexclusiveor_uint16_t
+dEQP-VK.subgroups.arithmetic.compute.subgroupexclusiveor_uint16_t_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivexor_uint16_t
+dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivexor_uint16_t_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupadd_u16vec2
+dEQP-VK.subgroups.arithmetic.compute.subgroupadd_u16vec2_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupmul_u16vec2
+dEQP-VK.subgroups.arithmetic.compute.subgroupmul_u16vec2_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupmin_u16vec2
+dEQP-VK.subgroups.arithmetic.compute.subgroupmin_u16vec2_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupmax_u16vec2
+dEQP-VK.subgroups.arithmetic.compute.subgroupmax_u16vec2_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupand_u16vec2
+dEQP-VK.subgroups.arithmetic.compute.subgroupand_u16vec2_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupor_u16vec2
+dEQP-VK.subgroups.arithmetic.compute.subgroupor_u16vec2_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupxor_u16vec2
+dEQP-VK.subgroups.arithmetic.compute.subgroupxor_u16vec2_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupinclusiveadd_u16vec2
+dEQP-VK.subgroups.arithmetic.compute.subgroupinclusiveadd_u16vec2_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivemul_u16vec2
+dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivemul_u16vec2_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivemin_u16vec2
+dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivemin_u16vec2_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivemax_u16vec2
+dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivemax_u16vec2_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupinclusiveand_u16vec2
+dEQP-VK.subgroups.arithmetic.compute.subgroupinclusiveand_u16vec2_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupinclusiveor_u16vec2
+dEQP-VK.subgroups.arithmetic.compute.subgroupinclusiveor_u16vec2_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivexor_u16vec2
+dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivexor_u16vec2_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupexclusiveadd_u16vec2
+dEQP-VK.subgroups.arithmetic.compute.subgroupexclusiveadd_u16vec2_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivemul_u16vec2
+dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivemul_u16vec2_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivemin_u16vec2
+dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivemin_u16vec2_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivemax_u16vec2
+dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivemax_u16vec2_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupexclusiveand_u16vec2
+dEQP-VK.subgroups.arithmetic.compute.subgroupexclusiveand_u16vec2_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupexclusiveor_u16vec2
+dEQP-VK.subgroups.arithmetic.compute.subgroupexclusiveor_u16vec2_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivexor_u16vec2
+dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivexor_u16vec2_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupadd_u16vec3
+dEQP-VK.subgroups.arithmetic.compute.subgroupadd_u16vec3_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupmul_u16vec3
+dEQP-VK.subgroups.arithmetic.compute.subgroupmul_u16vec3_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupmin_u16vec3
+dEQP-VK.subgroups.arithmetic.compute.subgroupmin_u16vec3_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupmax_u16vec3
+dEQP-VK.subgroups.arithmetic.compute.subgroupmax_u16vec3_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupand_u16vec3
+dEQP-VK.subgroups.arithmetic.compute.subgroupand_u16vec3_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupor_u16vec3
+dEQP-VK.subgroups.arithmetic.compute.subgroupor_u16vec3_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupxor_u16vec3
+dEQP-VK.subgroups.arithmetic.compute.subgroupxor_u16vec3_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupinclusiveadd_u16vec3
+dEQP-VK.subgroups.arithmetic.compute.subgroupinclusiveadd_u16vec3_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivemul_u16vec3
+dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivemul_u16vec3_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivemin_u16vec3
+dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivemin_u16vec3_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivemax_u16vec3
+dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivemax_u16vec3_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupinclusiveand_u16vec3
+dEQP-VK.subgroups.arithmetic.compute.subgroupinclusiveand_u16vec3_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupinclusiveor_u16vec3
+dEQP-VK.subgroups.arithmetic.compute.subgroupinclusiveor_u16vec3_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivexor_u16vec3
+dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivexor_u16vec3_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupexclusiveadd_u16vec3
+dEQP-VK.subgroups.arithmetic.compute.subgroupexclusiveadd_u16vec3_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivemul_u16vec3
+dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivemul_u16vec3_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivemin_u16vec3
+dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivemin_u16vec3_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivemax_u16vec3
+dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivemax_u16vec3_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupexclusiveand_u16vec3
+dEQP-VK.subgroups.arithmetic.compute.subgroupexclusiveand_u16vec3_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupexclusiveor_u16vec3
+dEQP-VK.subgroups.arithmetic.compute.subgroupexclusiveor_u16vec3_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivexor_u16vec3
+dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivexor_u16vec3_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupadd_u16vec4
+dEQP-VK.subgroups.arithmetic.compute.subgroupadd_u16vec4_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupmul_u16vec4
+dEQP-VK.subgroups.arithmetic.compute.subgroupmul_u16vec4_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupmin_u16vec4
+dEQP-VK.subgroups.arithmetic.compute.subgroupmin_u16vec4_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupmax_u16vec4
+dEQP-VK.subgroups.arithmetic.compute.subgroupmax_u16vec4_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupand_u16vec4
+dEQP-VK.subgroups.arithmetic.compute.subgroupand_u16vec4_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupor_u16vec4
+dEQP-VK.subgroups.arithmetic.compute.subgroupor_u16vec4_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupxor_u16vec4
+dEQP-VK.subgroups.arithmetic.compute.subgroupxor_u16vec4_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupinclusiveadd_u16vec4
+dEQP-VK.subgroups.arithmetic.compute.subgroupinclusiveadd_u16vec4_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivemul_u16vec4
+dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivemul_u16vec4_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivemin_u16vec4
+dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivemin_u16vec4_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivemax_u16vec4
+dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivemax_u16vec4_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupinclusiveand_u16vec4
+dEQP-VK.subgroups.arithmetic.compute.subgroupinclusiveand_u16vec4_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupinclusiveor_u16vec4
+dEQP-VK.subgroups.arithmetic.compute.subgroupinclusiveor_u16vec4_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivexor_u16vec4
+dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivexor_u16vec4_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupexclusiveadd_u16vec4
+dEQP-VK.subgroups.arithmetic.compute.subgroupexclusiveadd_u16vec4_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivemul_u16vec4
+dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivemul_u16vec4_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivemin_u16vec4
+dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivemin_u16vec4_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivemax_u16vec4
+dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivemax_u16vec4_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupexclusiveand_u16vec4
+dEQP-VK.subgroups.arithmetic.compute.subgroupexclusiveand_u16vec4_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupexclusiveor_u16vec4
+dEQP-VK.subgroups.arithmetic.compute.subgroupexclusiveor_u16vec4_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivexor_u16vec4
+dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivexor_u16vec4_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupadd_int
+dEQP-VK.subgroups.arithmetic.compute.subgroupadd_int_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupmul_int
+dEQP-VK.subgroups.arithmetic.compute.subgroupmul_int_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupmin_int
+dEQP-VK.subgroups.arithmetic.compute.subgroupmin_int_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupmax_int
+dEQP-VK.subgroups.arithmetic.compute.subgroupmax_int_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupand_int
+dEQP-VK.subgroups.arithmetic.compute.subgroupand_int_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupor_int
+dEQP-VK.subgroups.arithmetic.compute.subgroupor_int_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupxor_int
+dEQP-VK.subgroups.arithmetic.compute.subgroupxor_int_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupinclusiveadd_int
+dEQP-VK.subgroups.arithmetic.compute.subgroupinclusiveadd_int_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivemul_int
+dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivemul_int_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivemin_int
+dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivemin_int_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivemax_int
+dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivemax_int_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupinclusiveand_int
+dEQP-VK.subgroups.arithmetic.compute.subgroupinclusiveand_int_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupinclusiveor_int
+dEQP-VK.subgroups.arithmetic.compute.subgroupinclusiveor_int_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivexor_int
+dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivexor_int_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupexclusiveadd_int
+dEQP-VK.subgroups.arithmetic.compute.subgroupexclusiveadd_int_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivemul_int
+dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivemul_int_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivemin_int
+dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivemin_int_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivemax_int
+dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivemax_int_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupexclusiveand_int
+dEQP-VK.subgroups.arithmetic.compute.subgroupexclusiveand_int_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupexclusiveor_int
+dEQP-VK.subgroups.arithmetic.compute.subgroupexclusiveor_int_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivexor_int
+dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivexor_int_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupadd_ivec2
+dEQP-VK.subgroups.arithmetic.compute.subgroupadd_ivec2_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupmul_ivec2
+dEQP-VK.subgroups.arithmetic.compute.subgroupmul_ivec2_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupmin_ivec2
+dEQP-VK.subgroups.arithmetic.compute.subgroupmin_ivec2_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupmax_ivec2
+dEQP-VK.subgroups.arithmetic.compute.subgroupmax_ivec2_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupand_ivec2
+dEQP-VK.subgroups.arithmetic.compute.subgroupand_ivec2_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupor_ivec2
+dEQP-VK.subgroups.arithmetic.compute.subgroupor_ivec2_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupxor_ivec2
+dEQP-VK.subgroups.arithmetic.compute.subgroupxor_ivec2_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupinclusiveadd_ivec2
+dEQP-VK.subgroups.arithmetic.compute.subgroupinclusiveadd_ivec2_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivemul_ivec2
+dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivemul_ivec2_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivemin_ivec2
+dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivemin_ivec2_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivemax_ivec2
+dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivemax_ivec2_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupinclusiveand_ivec2
+dEQP-VK.subgroups.arithmetic.compute.subgroupinclusiveand_ivec2_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupinclusiveor_ivec2
+dEQP-VK.subgroups.arithmetic.compute.subgroupinclusiveor_ivec2_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivexor_ivec2
+dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivexor_ivec2_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupexclusiveadd_ivec2
+dEQP-VK.subgroups.arithmetic.compute.subgroupexclusiveadd_ivec2_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivemul_ivec2
+dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivemul_ivec2_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivemin_ivec2
+dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivemin_ivec2_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivemax_ivec2
+dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivemax_ivec2_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupexclusiveand_ivec2
+dEQP-VK.subgroups.arithmetic.compute.subgroupexclusiveand_ivec2_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupexclusiveor_ivec2
+dEQP-VK.subgroups.arithmetic.compute.subgroupexclusiveor_ivec2_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivexor_ivec2
+dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivexor_ivec2_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupadd_ivec3
+dEQP-VK.subgroups.arithmetic.compute.subgroupadd_ivec3_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupmul_ivec3
+dEQP-VK.subgroups.arithmetic.compute.subgroupmul_ivec3_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupmin_ivec3
+dEQP-VK.subgroups.arithmetic.compute.subgroupmin_ivec3_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupmax_ivec3
+dEQP-VK.subgroups.arithmetic.compute.subgroupmax_ivec3_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupand_ivec3
+dEQP-VK.subgroups.arithmetic.compute.subgroupand_ivec3_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupor_ivec3
+dEQP-VK.subgroups.arithmetic.compute.subgroupor_ivec3_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupxor_ivec3
+dEQP-VK.subgroups.arithmetic.compute.subgroupxor_ivec3_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupinclusiveadd_ivec3
+dEQP-VK.subgroups.arithmetic.compute.subgroupinclusiveadd_ivec3_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivemul_ivec3
+dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivemul_ivec3_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivemin_ivec3
+dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivemin_ivec3_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivemax_ivec3
+dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivemax_ivec3_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupinclusiveand_ivec3
+dEQP-VK.subgroups.arithmetic.compute.subgroupinclusiveand_ivec3_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupinclusiveor_ivec3
+dEQP-VK.subgroups.arithmetic.compute.subgroupinclusiveor_ivec3_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivexor_ivec3
+dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivexor_ivec3_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupexclusiveadd_ivec3
+dEQP-VK.subgroups.arithmetic.compute.subgroupexclusiveadd_ivec3_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivemul_ivec3
+dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivemul_ivec3_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivemin_ivec3
+dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivemin_ivec3_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivemax_ivec3
+dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivemax_ivec3_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupexclusiveand_ivec3
+dEQP-VK.subgroups.arithmetic.compute.subgroupexclusiveand_ivec3_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupexclusiveor_ivec3
+dEQP-VK.subgroups.arithmetic.compute.subgroupexclusiveor_ivec3_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivexor_ivec3
+dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivexor_ivec3_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupadd_ivec4
+dEQP-VK.subgroups.arithmetic.compute.subgroupadd_ivec4_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupmul_ivec4
+dEQP-VK.subgroups.arithmetic.compute.subgroupmul_ivec4_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupmin_ivec4
+dEQP-VK.subgroups.arithmetic.compute.subgroupmin_ivec4_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupmax_ivec4
+dEQP-VK.subgroups.arithmetic.compute.subgroupmax_ivec4_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupand_ivec4
+dEQP-VK.subgroups.arithmetic.compute.subgroupand_ivec4_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupor_ivec4
+dEQP-VK.subgroups.arithmetic.compute.subgroupor_ivec4_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupxor_ivec4
+dEQP-VK.subgroups.arithmetic.compute.subgroupxor_ivec4_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupinclusiveadd_ivec4
+dEQP-VK.subgroups.arithmetic.compute.subgroupinclusiveadd_ivec4_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivemul_ivec4
+dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivemul_ivec4_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivemin_ivec4
+dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivemin_ivec4_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivemax_ivec4
+dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivemax_ivec4_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupinclusiveand_ivec4
+dEQP-VK.subgroups.arithmetic.compute.subgroupinclusiveand_ivec4_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupinclusiveor_ivec4
+dEQP-VK.subgroups.arithmetic.compute.subgroupinclusiveor_ivec4_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivexor_ivec4
+dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivexor_ivec4_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupexclusiveadd_ivec4
+dEQP-VK.subgroups.arithmetic.compute.subgroupexclusiveadd_ivec4_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivemul_ivec4
+dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivemul_ivec4_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivemin_ivec4
+dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivemin_ivec4_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivemax_ivec4
+dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivemax_ivec4_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupexclusiveand_ivec4
+dEQP-VK.subgroups.arithmetic.compute.subgroupexclusiveand_ivec4_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupexclusiveor_ivec4
+dEQP-VK.subgroups.arithmetic.compute.subgroupexclusiveor_ivec4_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivexor_ivec4
+dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivexor_ivec4_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupadd_uint
+dEQP-VK.subgroups.arithmetic.compute.subgroupadd_uint_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupmul_uint
+dEQP-VK.subgroups.arithmetic.compute.subgroupmul_uint_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupmin_uint
+dEQP-VK.subgroups.arithmetic.compute.subgroupmin_uint_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupmax_uint
+dEQP-VK.subgroups.arithmetic.compute.subgroupmax_uint_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupand_uint
+dEQP-VK.subgroups.arithmetic.compute.subgroupand_uint_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupor_uint
+dEQP-VK.subgroups.arithmetic.compute.subgroupor_uint_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupxor_uint
+dEQP-VK.subgroups.arithmetic.compute.subgroupxor_uint_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupinclusiveadd_uint
+dEQP-VK.subgroups.arithmetic.compute.subgroupinclusiveadd_uint_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivemul_uint
+dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivemul_uint_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivemin_uint
+dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivemin_uint_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivemax_uint
+dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivemax_uint_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupinclusiveand_uint
+dEQP-VK.subgroups.arithmetic.compute.subgroupinclusiveand_uint_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupinclusiveor_uint
+dEQP-VK.subgroups.arithmetic.compute.subgroupinclusiveor_uint_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivexor_uint
+dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivexor_uint_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupexclusiveadd_uint
+dEQP-VK.subgroups.arithmetic.compute.subgroupexclusiveadd_uint_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivemul_uint
+dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivemul_uint_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivemin_uint
+dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivemin_uint_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivemax_uint
+dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivemax_uint_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupexclusiveand_uint
+dEQP-VK.subgroups.arithmetic.compute.subgroupexclusiveand_uint_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupexclusiveor_uint
+dEQP-VK.subgroups.arithmetic.compute.subgroupexclusiveor_uint_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivexor_uint
+dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivexor_uint_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupadd_uvec2
+dEQP-VK.subgroups.arithmetic.compute.subgroupadd_uvec2_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupmul_uvec2
+dEQP-VK.subgroups.arithmetic.compute.subgroupmul_uvec2_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupmin_uvec2
+dEQP-VK.subgroups.arithmetic.compute.subgroupmin_uvec2_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupmax_uvec2
+dEQP-VK.subgroups.arithmetic.compute.subgroupmax_uvec2_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupand_uvec2
+dEQP-VK.subgroups.arithmetic.compute.subgroupand_uvec2_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupor_uvec2
+dEQP-VK.subgroups.arithmetic.compute.subgroupor_uvec2_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupxor_uvec2
+dEQP-VK.subgroups.arithmetic.compute.subgroupxor_uvec2_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupinclusiveadd_uvec2
+dEQP-VK.subgroups.arithmetic.compute.subgroupinclusiveadd_uvec2_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivemul_uvec2
+dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivemul_uvec2_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivemin_uvec2
+dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivemin_uvec2_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivemax_uvec2
+dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivemax_uvec2_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupinclusiveand_uvec2
+dEQP-VK.subgroups.arithmetic.compute.subgroupinclusiveand_uvec2_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupinclusiveor_uvec2
+dEQP-VK.subgroups.arithmetic.compute.subgroupinclusiveor_uvec2_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivexor_uvec2
+dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivexor_uvec2_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupexclusiveadd_uvec2
+dEQP-VK.subgroups.arithmetic.compute.subgroupexclusiveadd_uvec2_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivemul_uvec2
+dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivemul_uvec2_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivemin_uvec2
+dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivemin_uvec2_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivemax_uvec2
+dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivemax_uvec2_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupexclusiveand_uvec2
+dEQP-VK.subgroups.arithmetic.compute.subgroupexclusiveand_uvec2_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupexclusiveor_uvec2
+dEQP-VK.subgroups.arithmetic.compute.subgroupexclusiveor_uvec2_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivexor_uvec2
+dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivexor_uvec2_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupadd_uvec3
+dEQP-VK.subgroups.arithmetic.compute.subgroupadd_uvec3_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupmul_uvec3
+dEQP-VK.subgroups.arithmetic.compute.subgroupmul_uvec3_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupmin_uvec3
+dEQP-VK.subgroups.arithmetic.compute.subgroupmin_uvec3_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupmax_uvec3
+dEQP-VK.subgroups.arithmetic.compute.subgroupmax_uvec3_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupand_uvec3
+dEQP-VK.subgroups.arithmetic.compute.subgroupand_uvec3_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupor_uvec3
+dEQP-VK.subgroups.arithmetic.compute.subgroupor_uvec3_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupxor_uvec3
+dEQP-VK.subgroups.arithmetic.compute.subgroupxor_uvec3_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupinclusiveadd_uvec3
+dEQP-VK.subgroups.arithmetic.compute.subgroupinclusiveadd_uvec3_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivemul_uvec3
+dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivemul_uvec3_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivemin_uvec3
+dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivemin_uvec3_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivemax_uvec3
+dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivemax_uvec3_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupinclusiveand_uvec3
+dEQP-VK.subgroups.arithmetic.compute.subgroupinclusiveand_uvec3_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupinclusiveor_uvec3
+dEQP-VK.subgroups.arithmetic.compute.subgroupinclusiveor_uvec3_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivexor_uvec3
+dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivexor_uvec3_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupexclusiveadd_uvec3
+dEQP-VK.subgroups.arithmetic.compute.subgroupexclusiveadd_uvec3_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivemul_uvec3
+dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivemul_uvec3_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivemin_uvec3
+dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivemin_uvec3_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivemax_uvec3
+dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivemax_uvec3_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupexclusiveand_uvec3
+dEQP-VK.subgroups.arithmetic.compute.subgroupexclusiveand_uvec3_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupexclusiveor_uvec3
+dEQP-VK.subgroups.arithmetic.compute.subgroupexclusiveor_uvec3_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivexor_uvec3
+dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivexor_uvec3_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupadd_uvec4
+dEQP-VK.subgroups.arithmetic.compute.subgroupadd_uvec4_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupmul_uvec4
+dEQP-VK.subgroups.arithmetic.compute.subgroupmul_uvec4_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupmin_uvec4
+dEQP-VK.subgroups.arithmetic.compute.subgroupmin_uvec4_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupmax_uvec4
+dEQP-VK.subgroups.arithmetic.compute.subgroupmax_uvec4_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupand_uvec4
+dEQP-VK.subgroups.arithmetic.compute.subgroupand_uvec4_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupor_uvec4
+dEQP-VK.subgroups.arithmetic.compute.subgroupor_uvec4_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupxor_uvec4
+dEQP-VK.subgroups.arithmetic.compute.subgroupxor_uvec4_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupinclusiveadd_uvec4
+dEQP-VK.subgroups.arithmetic.compute.subgroupinclusiveadd_uvec4_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivemul_uvec4
+dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivemul_uvec4_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivemin_uvec4
+dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivemin_uvec4_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivemax_uvec4
+dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivemax_uvec4_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupinclusiveand_uvec4
+dEQP-VK.subgroups.arithmetic.compute.subgroupinclusiveand_uvec4_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupinclusiveor_uvec4
+dEQP-VK.subgroups.arithmetic.compute.subgroupinclusiveor_uvec4_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivexor_uvec4
+dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivexor_uvec4_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupexclusiveadd_uvec4
+dEQP-VK.subgroups.arithmetic.compute.subgroupexclusiveadd_uvec4_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivemul_uvec4
+dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivemul_uvec4_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivemin_uvec4
+dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivemin_uvec4_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivemax_uvec4
+dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivemax_uvec4_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupexclusiveand_uvec4
+dEQP-VK.subgroups.arithmetic.compute.subgroupexclusiveand_uvec4_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupexclusiveor_uvec4
+dEQP-VK.subgroups.arithmetic.compute.subgroupexclusiveor_uvec4_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivexor_uvec4
+dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivexor_uvec4_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupadd_int64_t
+dEQP-VK.subgroups.arithmetic.compute.subgroupadd_int64_t_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupmul_int64_t
+dEQP-VK.subgroups.arithmetic.compute.subgroupmul_int64_t_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupmin_int64_t
+dEQP-VK.subgroups.arithmetic.compute.subgroupmin_int64_t_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupmax_int64_t
+dEQP-VK.subgroups.arithmetic.compute.subgroupmax_int64_t_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupand_int64_t
+dEQP-VK.subgroups.arithmetic.compute.subgroupand_int64_t_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupor_int64_t
+dEQP-VK.subgroups.arithmetic.compute.subgroupor_int64_t_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupxor_int64_t
+dEQP-VK.subgroups.arithmetic.compute.subgroupxor_int64_t_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupinclusiveadd_int64_t
+dEQP-VK.subgroups.arithmetic.compute.subgroupinclusiveadd_int64_t_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivemul_int64_t
+dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivemul_int64_t_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivemin_int64_t
+dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivemin_int64_t_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivemax_int64_t
+dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivemax_int64_t_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupinclusiveand_int64_t
+dEQP-VK.subgroups.arithmetic.compute.subgroupinclusiveand_int64_t_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupinclusiveor_int64_t
+dEQP-VK.subgroups.arithmetic.compute.subgroupinclusiveor_int64_t_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivexor_int64_t
+dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivexor_int64_t_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupexclusiveadd_int64_t
+dEQP-VK.subgroups.arithmetic.compute.subgroupexclusiveadd_int64_t_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivemul_int64_t
+dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivemul_int64_t_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivemin_int64_t
+dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivemin_int64_t_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivemax_int64_t
+dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivemax_int64_t_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupexclusiveand_int64_t
+dEQP-VK.subgroups.arithmetic.compute.subgroupexclusiveand_int64_t_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupexclusiveor_int64_t
+dEQP-VK.subgroups.arithmetic.compute.subgroupexclusiveor_int64_t_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivexor_int64_t
+dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivexor_int64_t_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupadd_i64vec2
+dEQP-VK.subgroups.arithmetic.compute.subgroupadd_i64vec2_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupmul_i64vec2
+dEQP-VK.subgroups.arithmetic.compute.subgroupmul_i64vec2_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupmin_i64vec2
+dEQP-VK.subgroups.arithmetic.compute.subgroupmin_i64vec2_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupmax_i64vec2
+dEQP-VK.subgroups.arithmetic.compute.subgroupmax_i64vec2_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupand_i64vec2
+dEQP-VK.subgroups.arithmetic.compute.subgroupand_i64vec2_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupor_i64vec2
+dEQP-VK.subgroups.arithmetic.compute.subgroupor_i64vec2_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupxor_i64vec2
+dEQP-VK.subgroups.arithmetic.compute.subgroupxor_i64vec2_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupinclusiveadd_i64vec2
+dEQP-VK.subgroups.arithmetic.compute.subgroupinclusiveadd_i64vec2_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivemul_i64vec2
+dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivemul_i64vec2_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivemin_i64vec2
+dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivemin_i64vec2_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivemax_i64vec2
+dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivemax_i64vec2_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupinclusiveand_i64vec2
+dEQP-VK.subgroups.arithmetic.compute.subgroupinclusiveand_i64vec2_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupinclusiveor_i64vec2
+dEQP-VK.subgroups.arithmetic.compute.subgroupinclusiveor_i64vec2_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivexor_i64vec2
+dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivexor_i64vec2_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupexclusiveadd_i64vec2
+dEQP-VK.subgroups.arithmetic.compute.subgroupexclusiveadd_i64vec2_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivemul_i64vec2
+dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivemul_i64vec2_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivemin_i64vec2
+dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivemin_i64vec2_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivemax_i64vec2
+dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivemax_i64vec2_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupexclusiveand_i64vec2
+dEQP-VK.subgroups.arithmetic.compute.subgroupexclusiveand_i64vec2_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupexclusiveor_i64vec2
+dEQP-VK.subgroups.arithmetic.compute.subgroupexclusiveor_i64vec2_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivexor_i64vec2
+dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivexor_i64vec2_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupadd_i64vec3
+dEQP-VK.subgroups.arithmetic.compute.subgroupadd_i64vec3_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupmul_i64vec3
+dEQP-VK.subgroups.arithmetic.compute.subgroupmul_i64vec3_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupmin_i64vec3
+dEQP-VK.subgroups.arithmetic.compute.subgroupmin_i64vec3_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupmax_i64vec3
+dEQP-VK.subgroups.arithmetic.compute.subgroupmax_i64vec3_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupand_i64vec3
+dEQP-VK.subgroups.arithmetic.compute.subgroupand_i64vec3_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupor_i64vec3
+dEQP-VK.subgroups.arithmetic.compute.subgroupor_i64vec3_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupxor_i64vec3
+dEQP-VK.subgroups.arithmetic.compute.subgroupxor_i64vec3_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupinclusiveadd_i64vec3
+dEQP-VK.subgroups.arithmetic.compute.subgroupinclusiveadd_i64vec3_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivemul_i64vec3
+dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivemul_i64vec3_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivemin_i64vec3
+dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivemin_i64vec3_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivemax_i64vec3
+dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivemax_i64vec3_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupinclusiveand_i64vec3
+dEQP-VK.subgroups.arithmetic.compute.subgroupinclusiveand_i64vec3_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupinclusiveor_i64vec3
+dEQP-VK.subgroups.arithmetic.compute.subgroupinclusiveor_i64vec3_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivexor_i64vec3
+dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivexor_i64vec3_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupexclusiveadd_i64vec3
+dEQP-VK.subgroups.arithmetic.compute.subgroupexclusiveadd_i64vec3_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivemul_i64vec3
+dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivemul_i64vec3_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivemin_i64vec3
+dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivemin_i64vec3_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivemax_i64vec3
+dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivemax_i64vec3_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupexclusiveand_i64vec3
+dEQP-VK.subgroups.arithmetic.compute.subgroupexclusiveand_i64vec3_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupexclusiveor_i64vec3
+dEQP-VK.subgroups.arithmetic.compute.subgroupexclusiveor_i64vec3_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivexor_i64vec3
+dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivexor_i64vec3_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupadd_i64vec4
+dEQP-VK.subgroups.arithmetic.compute.subgroupadd_i64vec4_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupmul_i64vec4
+dEQP-VK.subgroups.arithmetic.compute.subgroupmul_i64vec4_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupmin_i64vec4
+dEQP-VK.subgroups.arithmetic.compute.subgroupmin_i64vec4_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupmax_i64vec4
+dEQP-VK.subgroups.arithmetic.compute.subgroupmax_i64vec4_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupand_i64vec4
+dEQP-VK.subgroups.arithmetic.compute.subgroupand_i64vec4_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupor_i64vec4
+dEQP-VK.subgroups.arithmetic.compute.subgroupor_i64vec4_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupxor_i64vec4
+dEQP-VK.subgroups.arithmetic.compute.subgroupxor_i64vec4_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupinclusiveadd_i64vec4
+dEQP-VK.subgroups.arithmetic.compute.subgroupinclusiveadd_i64vec4_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivemul_i64vec4
+dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivemul_i64vec4_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivemin_i64vec4
+dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivemin_i64vec4_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivemax_i64vec4
+dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivemax_i64vec4_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupinclusiveand_i64vec4
+dEQP-VK.subgroups.arithmetic.compute.subgroupinclusiveand_i64vec4_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupinclusiveor_i64vec4
+dEQP-VK.subgroups.arithmetic.compute.subgroupinclusiveor_i64vec4_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivexor_i64vec4
+dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivexor_i64vec4_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupexclusiveadd_i64vec4
+dEQP-VK.subgroups.arithmetic.compute.subgroupexclusiveadd_i64vec4_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivemul_i64vec4
+dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivemul_i64vec4_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivemin_i64vec4
+dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivemin_i64vec4_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivemax_i64vec4
+dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivemax_i64vec4_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupexclusiveand_i64vec4
+dEQP-VK.subgroups.arithmetic.compute.subgroupexclusiveand_i64vec4_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupexclusiveor_i64vec4
+dEQP-VK.subgroups.arithmetic.compute.subgroupexclusiveor_i64vec4_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivexor_i64vec4
+dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivexor_i64vec4_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupadd_uint64_t
+dEQP-VK.subgroups.arithmetic.compute.subgroupadd_uint64_t_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupmul_uint64_t
+dEQP-VK.subgroups.arithmetic.compute.subgroupmul_uint64_t_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupmin_uint64_t
+dEQP-VK.subgroups.arithmetic.compute.subgroupmin_uint64_t_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupmax_uint64_t
+dEQP-VK.subgroups.arithmetic.compute.subgroupmax_uint64_t_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupand_uint64_t
+dEQP-VK.subgroups.arithmetic.compute.subgroupand_uint64_t_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupor_uint64_t
+dEQP-VK.subgroups.arithmetic.compute.subgroupor_uint64_t_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupxor_uint64_t
+dEQP-VK.subgroups.arithmetic.compute.subgroupxor_uint64_t_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupinclusiveadd_uint64_t
+dEQP-VK.subgroups.arithmetic.compute.subgroupinclusiveadd_uint64_t_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivemul_uint64_t
+dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivemul_uint64_t_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivemin_uint64_t
+dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivemin_uint64_t_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivemax_uint64_t
+dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivemax_uint64_t_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupinclusiveand_uint64_t
+dEQP-VK.subgroups.arithmetic.compute.subgroupinclusiveand_uint64_t_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupinclusiveor_uint64_t
+dEQP-VK.subgroups.arithmetic.compute.subgroupinclusiveor_uint64_t_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivexor_uint64_t
+dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivexor_uint64_t_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupexclusiveadd_uint64_t
+dEQP-VK.subgroups.arithmetic.compute.subgroupexclusiveadd_uint64_t_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivemul_uint64_t
+dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivemul_uint64_t_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivemin_uint64_t
+dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivemin_uint64_t_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivemax_uint64_t
+dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivemax_uint64_t_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupexclusiveand_uint64_t
+dEQP-VK.subgroups.arithmetic.compute.subgroupexclusiveand_uint64_t_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupexclusiveor_uint64_t
+dEQP-VK.subgroups.arithmetic.compute.subgroupexclusiveor_uint64_t_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivexor_uint64_t
+dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivexor_uint64_t_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupadd_u64vec2
+dEQP-VK.subgroups.arithmetic.compute.subgroupadd_u64vec2_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupmul_u64vec2
+dEQP-VK.subgroups.arithmetic.compute.subgroupmul_u64vec2_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupmin_u64vec2
+dEQP-VK.subgroups.arithmetic.compute.subgroupmin_u64vec2_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupmax_u64vec2
+dEQP-VK.subgroups.arithmetic.compute.subgroupmax_u64vec2_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupand_u64vec2
+dEQP-VK.subgroups.arithmetic.compute.subgroupand_u64vec2_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupor_u64vec2
+dEQP-VK.subgroups.arithmetic.compute.subgroupor_u64vec2_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupxor_u64vec2
+dEQP-VK.subgroups.arithmetic.compute.subgroupxor_u64vec2_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupinclusiveadd_u64vec2
+dEQP-VK.subgroups.arithmetic.compute.subgroupinclusiveadd_u64vec2_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivemul_u64vec2
+dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivemul_u64vec2_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivemin_u64vec2
+dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivemin_u64vec2_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivemax_u64vec2
+dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivemax_u64vec2_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupinclusiveand_u64vec2
+dEQP-VK.subgroups.arithmetic.compute.subgroupinclusiveand_u64vec2_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupinclusiveor_u64vec2
+dEQP-VK.subgroups.arithmetic.compute.subgroupinclusiveor_u64vec2_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivexor_u64vec2
+dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivexor_u64vec2_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupexclusiveadd_u64vec2
+dEQP-VK.subgroups.arithmetic.compute.subgroupexclusiveadd_u64vec2_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivemul_u64vec2
+dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivemul_u64vec2_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivemin_u64vec2
+dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivemin_u64vec2_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivemax_u64vec2
+dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivemax_u64vec2_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupexclusiveand_u64vec2
+dEQP-VK.subgroups.arithmetic.compute.subgroupexclusiveand_u64vec2_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupexclusiveor_u64vec2
+dEQP-VK.subgroups.arithmetic.compute.subgroupexclusiveor_u64vec2_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivexor_u64vec2
+dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivexor_u64vec2_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupadd_u64vec3
+dEQP-VK.subgroups.arithmetic.compute.subgroupadd_u64vec3_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupmul_u64vec3
+dEQP-VK.subgroups.arithmetic.compute.subgroupmul_u64vec3_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupmin_u64vec3
+dEQP-VK.subgroups.arithmetic.compute.subgroupmin_u64vec3_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupmax_u64vec3
+dEQP-VK.subgroups.arithmetic.compute.subgroupmax_u64vec3_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupand_u64vec3
+dEQP-VK.subgroups.arithmetic.compute.subgroupand_u64vec3_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupor_u64vec3
+dEQP-VK.subgroups.arithmetic.compute.subgroupor_u64vec3_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupxor_u64vec3
+dEQP-VK.subgroups.arithmetic.compute.subgroupxor_u64vec3_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupinclusiveadd_u64vec3
+dEQP-VK.subgroups.arithmetic.compute.subgroupinclusiveadd_u64vec3_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivemul_u64vec3
+dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivemul_u64vec3_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivemin_u64vec3
+dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivemin_u64vec3_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivemax_u64vec3
+dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivemax_u64vec3_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupinclusiveand_u64vec3
+dEQP-VK.subgroups.arithmetic.compute.subgroupinclusiveand_u64vec3_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupinclusiveor_u64vec3
+dEQP-VK.subgroups.arithmetic.compute.subgroupinclusiveor_u64vec3_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivexor_u64vec3
+dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivexor_u64vec3_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupexclusiveadd_u64vec3
+dEQP-VK.subgroups.arithmetic.compute.subgroupexclusiveadd_u64vec3_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivemul_u64vec3
+dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivemul_u64vec3_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivemin_u64vec3
+dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivemin_u64vec3_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivemax_u64vec3
+dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivemax_u64vec3_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupexclusiveand_u64vec3
+dEQP-VK.subgroups.arithmetic.compute.subgroupexclusiveand_u64vec3_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupexclusiveor_u64vec3
+dEQP-VK.subgroups.arithmetic.compute.subgroupexclusiveor_u64vec3_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivexor_u64vec3
+dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivexor_u64vec3_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupadd_u64vec4
+dEQP-VK.subgroups.arithmetic.compute.subgroupadd_u64vec4_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupmul_u64vec4
+dEQP-VK.subgroups.arithmetic.compute.subgroupmul_u64vec4_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupmin_u64vec4
+dEQP-VK.subgroups.arithmetic.compute.subgroupmin_u64vec4_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupmax_u64vec4
+dEQP-VK.subgroups.arithmetic.compute.subgroupmax_u64vec4_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupand_u64vec4
+dEQP-VK.subgroups.arithmetic.compute.subgroupand_u64vec4_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupor_u64vec4
+dEQP-VK.subgroups.arithmetic.compute.subgroupor_u64vec4_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupxor_u64vec4
+dEQP-VK.subgroups.arithmetic.compute.subgroupxor_u64vec4_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupinclusiveadd_u64vec4
+dEQP-VK.subgroups.arithmetic.compute.subgroupinclusiveadd_u64vec4_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivemul_u64vec4
+dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivemul_u64vec4_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivemin_u64vec4
+dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivemin_u64vec4_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivemax_u64vec4
+dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivemax_u64vec4_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupinclusiveand_u64vec4
+dEQP-VK.subgroups.arithmetic.compute.subgroupinclusiveand_u64vec4_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupinclusiveor_u64vec4
+dEQP-VK.subgroups.arithmetic.compute.subgroupinclusiveor_u64vec4_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivexor_u64vec4
+dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivexor_u64vec4_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupexclusiveadd_u64vec4
+dEQP-VK.subgroups.arithmetic.compute.subgroupexclusiveadd_u64vec4_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivemul_u64vec4
+dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivemul_u64vec4_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivemin_u64vec4
+dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivemin_u64vec4_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivemax_u64vec4
+dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivemax_u64vec4_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupexclusiveand_u64vec4
+dEQP-VK.subgroups.arithmetic.compute.subgroupexclusiveand_u64vec4_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupexclusiveor_u64vec4
+dEQP-VK.subgroups.arithmetic.compute.subgroupexclusiveor_u64vec4_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivexor_u64vec4
+dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivexor_u64vec4_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupadd_float16_t
+dEQP-VK.subgroups.arithmetic.compute.subgroupadd_float16_t_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupmul_float16_t
+dEQP-VK.subgroups.arithmetic.compute.subgroupmul_float16_t_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupmin_float16_t
+dEQP-VK.subgroups.arithmetic.compute.subgroupmin_float16_t_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupmax_float16_t
+dEQP-VK.subgroups.arithmetic.compute.subgroupmax_float16_t_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupinclusiveadd_float16_t
+dEQP-VK.subgroups.arithmetic.compute.subgroupinclusiveadd_float16_t_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivemul_float16_t
+dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivemul_float16_t_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivemin_float16_t
+dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivemin_float16_t_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivemax_float16_t
+dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivemax_float16_t_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupexclusiveadd_float16_t
+dEQP-VK.subgroups.arithmetic.compute.subgroupexclusiveadd_float16_t_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivemul_float16_t
+dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivemul_float16_t_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivemin_float16_t
+dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivemin_float16_t_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivemax_float16_t
+dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivemax_float16_t_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupadd_f16vec2
+dEQP-VK.subgroups.arithmetic.compute.subgroupadd_f16vec2_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupmul_f16vec2
+dEQP-VK.subgroups.arithmetic.compute.subgroupmul_f16vec2_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupmin_f16vec2
+dEQP-VK.subgroups.arithmetic.compute.subgroupmin_f16vec2_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupmax_f16vec2
+dEQP-VK.subgroups.arithmetic.compute.subgroupmax_f16vec2_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupinclusiveadd_f16vec2
+dEQP-VK.subgroups.arithmetic.compute.subgroupinclusiveadd_f16vec2_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivemul_f16vec2
+dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivemul_f16vec2_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivemin_f16vec2
+dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivemin_f16vec2_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivemax_f16vec2
+dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivemax_f16vec2_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupexclusiveadd_f16vec2
+dEQP-VK.subgroups.arithmetic.compute.subgroupexclusiveadd_f16vec2_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivemul_f16vec2
+dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivemul_f16vec2_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivemin_f16vec2
+dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivemin_f16vec2_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivemax_f16vec2
+dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivemax_f16vec2_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupadd_f16vec3
+dEQP-VK.subgroups.arithmetic.compute.subgroupadd_f16vec3_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupmul_f16vec3
+dEQP-VK.subgroups.arithmetic.compute.subgroupmul_f16vec3_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupmin_f16vec3
+dEQP-VK.subgroups.arithmetic.compute.subgroupmin_f16vec3_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupmax_f16vec3
+dEQP-VK.subgroups.arithmetic.compute.subgroupmax_f16vec3_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupinclusiveadd_f16vec3
+dEQP-VK.subgroups.arithmetic.compute.subgroupinclusiveadd_f16vec3_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivemul_f16vec3
+dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivemul_f16vec3_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivemin_f16vec3
+dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivemin_f16vec3_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivemax_f16vec3
+dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivemax_f16vec3_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupexclusiveadd_f16vec3
+dEQP-VK.subgroups.arithmetic.compute.subgroupexclusiveadd_f16vec3_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivemul_f16vec3
+dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivemul_f16vec3_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivemin_f16vec3
+dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivemin_f16vec3_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivemax_f16vec3
+dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivemax_f16vec3_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupadd_f16vec4
+dEQP-VK.subgroups.arithmetic.compute.subgroupadd_f16vec4_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupmul_f16vec4
+dEQP-VK.subgroups.arithmetic.compute.subgroupmul_f16vec4_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupmin_f16vec4
+dEQP-VK.subgroups.arithmetic.compute.subgroupmin_f16vec4_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupmax_f16vec4
+dEQP-VK.subgroups.arithmetic.compute.subgroupmax_f16vec4_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupinclusiveadd_f16vec4
+dEQP-VK.subgroups.arithmetic.compute.subgroupinclusiveadd_f16vec4_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivemul_f16vec4
+dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivemul_f16vec4_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivemin_f16vec4
+dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivemin_f16vec4_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivemax_f16vec4
+dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivemax_f16vec4_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupexclusiveadd_f16vec4
+dEQP-VK.subgroups.arithmetic.compute.subgroupexclusiveadd_f16vec4_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivemul_f16vec4
+dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivemul_f16vec4_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivemin_f16vec4
+dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivemin_f16vec4_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivemax_f16vec4
+dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivemax_f16vec4_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupadd_float
+dEQP-VK.subgroups.arithmetic.compute.subgroupadd_float_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupmul_float
+dEQP-VK.subgroups.arithmetic.compute.subgroupmul_float_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupmin_float
+dEQP-VK.subgroups.arithmetic.compute.subgroupmin_float_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupmax_float
+dEQP-VK.subgroups.arithmetic.compute.subgroupmax_float_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupinclusiveadd_float
+dEQP-VK.subgroups.arithmetic.compute.subgroupinclusiveadd_float_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivemul_float
+dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivemul_float_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivemin_float
+dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivemin_float_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivemax_float
+dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivemax_float_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupexclusiveadd_float
+dEQP-VK.subgroups.arithmetic.compute.subgroupexclusiveadd_float_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivemul_float
+dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivemul_float_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivemin_float
+dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivemin_float_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivemax_float
+dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivemax_float_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupadd_vec2
+dEQP-VK.subgroups.arithmetic.compute.subgroupadd_vec2_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupmul_vec2
+dEQP-VK.subgroups.arithmetic.compute.subgroupmul_vec2_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupmin_vec2
+dEQP-VK.subgroups.arithmetic.compute.subgroupmin_vec2_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupmax_vec2
+dEQP-VK.subgroups.arithmetic.compute.subgroupmax_vec2_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupinclusiveadd_vec2
+dEQP-VK.subgroups.arithmetic.compute.subgroupinclusiveadd_vec2_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivemul_vec2
+dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivemul_vec2_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivemin_vec2
+dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivemin_vec2_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivemax_vec2
+dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivemax_vec2_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupexclusiveadd_vec2
+dEQP-VK.subgroups.arithmetic.compute.subgroupexclusiveadd_vec2_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivemul_vec2
+dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivemul_vec2_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivemin_vec2
+dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivemin_vec2_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivemax_vec2
+dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivemax_vec2_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupadd_vec3
+dEQP-VK.subgroups.arithmetic.compute.subgroupadd_vec3_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupmul_vec3
+dEQP-VK.subgroups.arithmetic.compute.subgroupmul_vec3_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupmin_vec3
+dEQP-VK.subgroups.arithmetic.compute.subgroupmin_vec3_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupmax_vec3
+dEQP-VK.subgroups.arithmetic.compute.subgroupmax_vec3_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupinclusiveadd_vec3
+dEQP-VK.subgroups.arithmetic.compute.subgroupinclusiveadd_vec3_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivemul_vec3
+dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivemul_vec3_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivemin_vec3
+dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivemin_vec3_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivemax_vec3
+dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivemax_vec3_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupexclusiveadd_vec3
+dEQP-VK.subgroups.arithmetic.compute.subgroupexclusiveadd_vec3_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivemul_vec3
+dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivemul_vec3_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivemin_vec3
+dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivemin_vec3_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivemax_vec3
+dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivemax_vec3_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupadd_vec4
+dEQP-VK.subgroups.arithmetic.compute.subgroupadd_vec4_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupmul_vec4
+dEQP-VK.subgroups.arithmetic.compute.subgroupmul_vec4_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupmin_vec4
+dEQP-VK.subgroups.arithmetic.compute.subgroupmin_vec4_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupmax_vec4
+dEQP-VK.subgroups.arithmetic.compute.subgroupmax_vec4_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupinclusiveadd_vec4
+dEQP-VK.subgroups.arithmetic.compute.subgroupinclusiveadd_vec4_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivemul_vec4
+dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivemul_vec4_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivemin_vec4
+dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivemin_vec4_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivemax_vec4
+dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivemax_vec4_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupexclusiveadd_vec4
+dEQP-VK.subgroups.arithmetic.compute.subgroupexclusiveadd_vec4_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivemul_vec4
+dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivemul_vec4_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivemin_vec4
+dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivemin_vec4_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivemax_vec4
+dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivemax_vec4_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupadd_double
+dEQP-VK.subgroups.arithmetic.compute.subgroupadd_double_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupmul_double
+dEQP-VK.subgroups.arithmetic.compute.subgroupmul_double_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupmin_double
+dEQP-VK.subgroups.arithmetic.compute.subgroupmin_double_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupmax_double
+dEQP-VK.subgroups.arithmetic.compute.subgroupmax_double_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupinclusiveadd_double
+dEQP-VK.subgroups.arithmetic.compute.subgroupinclusiveadd_double_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivemul_double
+dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivemul_double_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivemin_double
+dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivemin_double_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivemax_double
+dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivemax_double_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupexclusiveadd_double
+dEQP-VK.subgroups.arithmetic.compute.subgroupexclusiveadd_double_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivemul_double
+dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivemul_double_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivemin_double
+dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivemin_double_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivemax_double
+dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivemax_double_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupadd_dvec2
+dEQP-VK.subgroups.arithmetic.compute.subgroupadd_dvec2_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupmul_dvec2
+dEQP-VK.subgroups.arithmetic.compute.subgroupmul_dvec2_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupmin_dvec2
+dEQP-VK.subgroups.arithmetic.compute.subgroupmin_dvec2_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupmax_dvec2
+dEQP-VK.subgroups.arithmetic.compute.subgroupmax_dvec2_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupinclusiveadd_dvec2
+dEQP-VK.subgroups.arithmetic.compute.subgroupinclusiveadd_dvec2_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivemul_dvec2
+dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivemul_dvec2_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivemin_dvec2
+dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivemin_dvec2_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivemax_dvec2
+dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivemax_dvec2_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupexclusiveadd_dvec2
+dEQP-VK.subgroups.arithmetic.compute.subgroupexclusiveadd_dvec2_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivemul_dvec2
+dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivemul_dvec2_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivemin_dvec2
+dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivemin_dvec2_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivemax_dvec2
+dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivemax_dvec2_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupadd_dvec3
+dEQP-VK.subgroups.arithmetic.compute.subgroupadd_dvec3_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupmul_dvec3
+dEQP-VK.subgroups.arithmetic.compute.subgroupmul_dvec3_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupmin_dvec3
+dEQP-VK.subgroups.arithmetic.compute.subgroupmin_dvec3_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupmax_dvec3
+dEQP-VK.subgroups.arithmetic.compute.subgroupmax_dvec3_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupinclusiveadd_dvec3
+dEQP-VK.subgroups.arithmetic.compute.subgroupinclusiveadd_dvec3_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivemul_dvec3
+dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivemul_dvec3_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivemin_dvec3
+dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivemin_dvec3_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivemax_dvec3
+dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivemax_dvec3_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupexclusiveadd_dvec3
+dEQP-VK.subgroups.arithmetic.compute.subgroupexclusiveadd_dvec3_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivemul_dvec3
+dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivemul_dvec3_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivemin_dvec3
+dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivemin_dvec3_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivemax_dvec3
+dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivemax_dvec3_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupadd_dvec4
+dEQP-VK.subgroups.arithmetic.compute.subgroupadd_dvec4_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupmul_dvec4
+dEQP-VK.subgroups.arithmetic.compute.subgroupmul_dvec4_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupmin_dvec4
+dEQP-VK.subgroups.arithmetic.compute.subgroupmin_dvec4_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupmax_dvec4
+dEQP-VK.subgroups.arithmetic.compute.subgroupmax_dvec4_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupinclusiveadd_dvec4
+dEQP-VK.subgroups.arithmetic.compute.subgroupinclusiveadd_dvec4_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivemul_dvec4
+dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivemul_dvec4_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivemin_dvec4
+dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivemin_dvec4_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivemax_dvec4
+dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivemax_dvec4_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupexclusiveadd_dvec4
+dEQP-VK.subgroups.arithmetic.compute.subgroupexclusiveadd_dvec4_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivemul_dvec4
+dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivemul_dvec4_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivemin_dvec4
+dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivemin_dvec4_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivemax_dvec4
+dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivemax_dvec4_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupand_bool
+dEQP-VK.subgroups.arithmetic.compute.subgroupand_bool_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupor_bool
+dEQP-VK.subgroups.arithmetic.compute.subgroupor_bool_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupxor_bool
+dEQP-VK.subgroups.arithmetic.compute.subgroupxor_bool_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupinclusiveand_bool
+dEQP-VK.subgroups.arithmetic.compute.subgroupinclusiveand_bool_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupinclusiveor_bool
+dEQP-VK.subgroups.arithmetic.compute.subgroupinclusiveor_bool_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivexor_bool
+dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivexor_bool_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupexclusiveand_bool
+dEQP-VK.subgroups.arithmetic.compute.subgroupexclusiveand_bool_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupexclusiveor_bool
+dEQP-VK.subgroups.arithmetic.compute.subgroupexclusiveor_bool_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivexor_bool
+dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivexor_bool_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupand_bvec2
+dEQP-VK.subgroups.arithmetic.compute.subgroupand_bvec2_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupor_bvec2
+dEQP-VK.subgroups.arithmetic.compute.subgroupor_bvec2_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupxor_bvec2
+dEQP-VK.subgroups.arithmetic.compute.subgroupxor_bvec2_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupinclusiveand_bvec2
+dEQP-VK.subgroups.arithmetic.compute.subgroupinclusiveand_bvec2_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupinclusiveor_bvec2
+dEQP-VK.subgroups.arithmetic.compute.subgroupinclusiveor_bvec2_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivexor_bvec2
+dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivexor_bvec2_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupexclusiveand_bvec2
+dEQP-VK.subgroups.arithmetic.compute.subgroupexclusiveand_bvec2_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupexclusiveor_bvec2
+dEQP-VK.subgroups.arithmetic.compute.subgroupexclusiveor_bvec2_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivexor_bvec2
+dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivexor_bvec2_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupand_bvec3
+dEQP-VK.subgroups.arithmetic.compute.subgroupand_bvec3_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupor_bvec3
+dEQP-VK.subgroups.arithmetic.compute.subgroupor_bvec3_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupxor_bvec3
+dEQP-VK.subgroups.arithmetic.compute.subgroupxor_bvec3_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupinclusiveand_bvec3
+dEQP-VK.subgroups.arithmetic.compute.subgroupinclusiveand_bvec3_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupinclusiveor_bvec3
+dEQP-VK.subgroups.arithmetic.compute.subgroupinclusiveor_bvec3_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivexor_bvec3
+dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivexor_bvec3_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupexclusiveand_bvec3
+dEQP-VK.subgroups.arithmetic.compute.subgroupexclusiveand_bvec3_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupexclusiveor_bvec3
+dEQP-VK.subgroups.arithmetic.compute.subgroupexclusiveor_bvec3_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivexor_bvec3
+dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivexor_bvec3_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupand_bvec4
+dEQP-VK.subgroups.arithmetic.compute.subgroupand_bvec4_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupor_bvec4
+dEQP-VK.subgroups.arithmetic.compute.subgroupor_bvec4_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupxor_bvec4
+dEQP-VK.subgroups.arithmetic.compute.subgroupxor_bvec4_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupinclusiveand_bvec4
+dEQP-VK.subgroups.arithmetic.compute.subgroupinclusiveand_bvec4_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupinclusiveor_bvec4
+dEQP-VK.subgroups.arithmetic.compute.subgroupinclusiveor_bvec4_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivexor_bvec4
+dEQP-VK.subgroups.arithmetic.compute.subgroupinclusivexor_bvec4_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupexclusiveand_bvec4
+dEQP-VK.subgroups.arithmetic.compute.subgroupexclusiveand_bvec4_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupexclusiveor_bvec4
+dEQP-VK.subgroups.arithmetic.compute.subgroupexclusiveor_bvec4_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivexor_bvec4
+dEQP-VK.subgroups.arithmetic.compute.subgroupexclusivexor_bvec4_requiredsubgroupsize
 dEQP-VK.subgroups.arithmetic.framebuffer.subgroupadd_int8_t_vertex
 dEQP-VK.subgroups.arithmetic.framebuffer.subgroupadd_int8_t_tess_eval
 dEQP-VK.subgroups.arithmetic.framebuffer.subgroupadd_int8_t_tess_control
@@ -514945,289 +516027,573 @@ dEQP-VK.subgroups.clustered.graphics.subgroupclusteredand_bvec4
 dEQP-VK.subgroups.clustered.graphics.subgroupclusteredor_bvec4
 dEQP-VK.subgroups.clustered.graphics.subgroupclusteredxor_bvec4
 dEQP-VK.subgroups.clustered.compute.subgroupclusteredadd_int8_t
+dEQP-VK.subgroups.clustered.compute.subgroupclusteredadd_int8_t_requiredsubgroupsize
 dEQP-VK.subgroups.clustered.compute.subgroupclusteredmul_int8_t
+dEQP-VK.subgroups.clustered.compute.subgroupclusteredmul_int8_t_requiredsubgroupsize
 dEQP-VK.subgroups.clustered.compute.subgroupclusteredmin_int8_t
+dEQP-VK.subgroups.clustered.compute.subgroupclusteredmin_int8_t_requiredsubgroupsize
 dEQP-VK.subgroups.clustered.compute.subgroupclusteredmax_int8_t
+dEQP-VK.subgroups.clustered.compute.subgroupclusteredmax_int8_t_requiredsubgroupsize
 dEQP-VK.subgroups.clustered.compute.subgroupclusteredand_int8_t
+dEQP-VK.subgroups.clustered.compute.subgroupclusteredand_int8_t_requiredsubgroupsize
 dEQP-VK.subgroups.clustered.compute.subgroupclusteredor_int8_t
+dEQP-VK.subgroups.clustered.compute.subgroupclusteredor_int8_t_requiredsubgroupsize
 dEQP-VK.subgroups.clustered.compute.subgroupclusteredxor_int8_t
+dEQP-VK.subgroups.clustered.compute.subgroupclusteredxor_int8_t_requiredsubgroupsize
 dEQP-VK.subgroups.clustered.compute.subgroupclusteredadd_i8vec2
+dEQP-VK.subgroups.clustered.compute.subgroupclusteredadd_i8vec2_requiredsubgroupsize
 dEQP-VK.subgroups.clustered.compute.subgroupclusteredmul_i8vec2
+dEQP-VK.subgroups.clustered.compute.subgroupclusteredmul_i8vec2_requiredsubgroupsize
 dEQP-VK.subgroups.clustered.compute.subgroupclusteredmin_i8vec2
+dEQP-VK.subgroups.clustered.compute.subgroupclusteredmin_i8vec2_requiredsubgroupsize
 dEQP-VK.subgroups.clustered.compute.subgroupclusteredmax_i8vec2
+dEQP-VK.subgroups.clustered.compute.subgroupclusteredmax_i8vec2_requiredsubgroupsize
 dEQP-VK.subgroups.clustered.compute.subgroupclusteredand_i8vec2
+dEQP-VK.subgroups.clustered.compute.subgroupclusteredand_i8vec2_requiredsubgroupsize
 dEQP-VK.subgroups.clustered.compute.subgroupclusteredor_i8vec2
+dEQP-VK.subgroups.clustered.compute.subgroupclusteredor_i8vec2_requiredsubgroupsize
 dEQP-VK.subgroups.clustered.compute.subgroupclusteredxor_i8vec2
+dEQP-VK.subgroups.clustered.compute.subgroupclusteredxor_i8vec2_requiredsubgroupsize
 dEQP-VK.subgroups.clustered.compute.subgroupclusteredadd_i8vec3
+dEQP-VK.subgroups.clustered.compute.subgroupclusteredadd_i8vec3_requiredsubgroupsize
 dEQP-VK.subgroups.clustered.compute.subgroupclusteredmul_i8vec3
+dEQP-VK.subgroups.clustered.compute.subgroupclusteredmul_i8vec3_requiredsubgroupsize
 dEQP-VK.subgroups.clustered.compute.subgroupclusteredmin_i8vec3
+dEQP-VK.subgroups.clustered.compute.subgroupclusteredmin_i8vec3_requiredsubgroupsize
 dEQP-VK.subgroups.clustered.compute.subgroupclusteredmax_i8vec3
+dEQP-VK.subgroups.clustered.compute.subgroupclusteredmax_i8vec3_requiredsubgroupsize
 dEQP-VK.subgroups.clustered.compute.subgroupclusteredand_i8vec3
+dEQP-VK.subgroups.clustered.compute.subgroupclusteredand_i8vec3_requiredsubgroupsize
 dEQP-VK.subgroups.clustered.compute.subgroupclusteredor_i8vec3
+dEQP-VK.subgroups.clustered.compute.subgroupclusteredor_i8vec3_requiredsubgroupsize
 dEQP-VK.subgroups.clustered.compute.subgroupclusteredxor_i8vec3
+dEQP-VK.subgroups.clustered.compute.subgroupclusteredxor_i8vec3_requiredsubgroupsize
 dEQP-VK.subgroups.clustered.compute.subgroupclusteredadd_i8vec4
+dEQP-VK.subgroups.clustered.compute.subgroupclusteredadd_i8vec4_requiredsubgroupsize
 dEQP-VK.subgroups.clustered.compute.subgroupclusteredmul_i8vec4
+dEQP-VK.subgroups.clustered.compute.subgroupclusteredmul_i8vec4_requiredsubgroupsize
 dEQP-VK.subgroups.clustered.compute.subgroupclusteredmin_i8vec4
+dEQP-VK.subgroups.clustered.compute.subgroupclusteredmin_i8vec4_requiredsubgroupsize
 dEQP-VK.subgroups.clustered.compute.subgroupclusteredmax_i8vec4
+dEQP-VK.subgroups.clustered.compute.subgroupclusteredmax_i8vec4_requiredsubgroupsize
 dEQP-VK.subgroups.clustered.compute.subgroupclusteredand_i8vec4
+dEQP-VK.subgroups.clustered.compute.subgroupclusteredand_i8vec4_requiredsubgroupsize
 dEQP-VK.subgroups.clustered.compute.subgroupclusteredor_i8vec4
+dEQP-VK.subgroups.clustered.compute.subgroupclusteredor_i8vec4_requiredsubgroupsize
 dEQP-VK.subgroups.clustered.compute.subgroupclusteredxor_i8vec4
+dEQP-VK.subgroups.clustered.compute.subgroupclusteredxor_i8vec4_requiredsubgroupsize
 dEQP-VK.subgroups.clustered.compute.subgroupclusteredadd_uint8_t
+dEQP-VK.subgroups.clustered.compute.subgroupclusteredadd_uint8_t_requiredsubgroupsize
 dEQP-VK.subgroups.clustered.compute.subgroupclusteredmul_uint8_t
+dEQP-VK.subgroups.clustered.compute.subgroupclusteredmul_uint8_t_requiredsubgroupsize
 dEQP-VK.subgroups.clustered.compute.subgroupclusteredmin_uint8_t
+dEQP-VK.subgroups.clustered.compute.subgroupclusteredmin_uint8_t_requiredsubgroupsize
 dEQP-VK.subgroups.clustered.compute.subgroupclusteredmax_uint8_t
+dEQP-VK.subgroups.clustered.compute.subgroupclusteredmax_uint8_t_requiredsubgroupsize
 dEQP-VK.subgroups.clustered.compute.subgroupclusteredand_uint8_t
+dEQP-VK.subgroups.clustered.compute.subgroupclusteredand_uint8_t_requiredsubgroupsize
 dEQP-VK.subgroups.clustered.compute.subgroupclusteredor_uint8_t
+dEQP-VK.subgroups.clustered.compute.subgroupclusteredor_uint8_t_requiredsubgroupsize
 dEQP-VK.subgroups.clustered.compute.subgroupclusteredxor_uint8_t
+dEQP-VK.subgroups.clustered.compute.subgroupclusteredxor_uint8_t_requiredsubgroupsize
 dEQP-VK.subgroups.clustered.compute.subgroupclusteredadd_u8vec2
+dEQP-VK.subgroups.clustered.compute.subgroupclusteredadd_u8vec2_requiredsubgroupsize
 dEQP-VK.subgroups.clustered.compute.subgroupclusteredmul_u8vec2
+dEQP-VK.subgroups.clustered.compute.subgroupclusteredmul_u8vec2_requiredsubgroupsize
 dEQP-VK.subgroups.clustered.compute.subgroupclusteredmin_u8vec2
+dEQP-VK.subgroups.clustered.compute.subgroupclusteredmin_u8vec2_requiredsubgroupsize
 dEQP-VK.subgroups.clustered.compute.subgroupclusteredmax_u8vec2
+dEQP-VK.subgroups.clustered.compute.subgroupclusteredmax_u8vec2_requiredsubgroupsize
 dEQP-VK.subgroups.clustered.compute.subgroupclusteredand_u8vec2
+dEQP-VK.subgroups.clustered.compute.subgroupclusteredand_u8vec2_requiredsubgroupsize
 dEQP-VK.subgroups.clustered.compute.subgroupclusteredor_u8vec2
+dEQP-VK.subgroups.clustered.compute.subgroupclusteredor_u8vec2_requiredsubgroupsize
 dEQP-VK.subgroups.clustered.compute.subgroupclusteredxor_u8vec2
+dEQP-VK.subgroups.clustered.compute.subgroupclusteredxor_u8vec2_requiredsubgroupsize
 dEQP-VK.subgroups.clustered.compute.subgroupclusteredadd_u8vec3
+dEQP-VK.subgroups.clustered.compute.subgroupclusteredadd_u8vec3_requiredsubgroupsize
 dEQP-VK.subgroups.clustered.compute.subgroupclusteredmul_u8vec3
+dEQP-VK.subgroups.clustered.compute.subgroupclusteredmul_u8vec3_requiredsubgroupsize
 dEQP-VK.subgroups.clustered.compute.subgroupclusteredmin_u8vec3
+dEQP-VK.subgroups.clustered.compute.subgroupclusteredmin_u8vec3_requiredsubgroupsize
 dEQP-VK.subgroups.clustered.compute.subgroupclusteredmax_u8vec3
+dEQP-VK.subgroups.clustered.compute.subgroupclusteredmax_u8vec3_requiredsubgroupsize
 dEQP-VK.subgroups.clustered.compute.subgroupclusteredand_u8vec3
+dEQP-VK.subgroups.clustered.compute.subgroupclusteredand_u8vec3_requiredsubgroupsize
 dEQP-VK.subgroups.clustered.compute.subgroupclusteredor_u8vec3
+dEQP-VK.subgroups.clustered.compute.subgroupclusteredor_u8vec3_requiredsubgroupsize
 dEQP-VK.subgroups.clustered.compute.subgroupclusteredxor_u8vec3
+dEQP-VK.subgroups.clustered.compute.subgroupclusteredxor_u8vec3_requiredsubgroupsize
 dEQP-VK.subgroups.clustered.compute.subgroupclusteredadd_u8vec4
+dEQP-VK.subgroups.clustered.compute.subgroupclusteredadd_u8vec4_requiredsubgroupsize
 dEQP-VK.subgroups.clustered.compute.subgroupclusteredmul_u8vec4
+dEQP-VK.subgroups.clustered.compute.subgroupclusteredmul_u8vec4_requiredsubgroupsize
 dEQP-VK.subgroups.clustered.compute.subgroupclusteredmin_u8vec4
+dEQP-VK.subgroups.clustered.compute.subgroupclusteredmin_u8vec4_requiredsubgroupsize
 dEQP-VK.subgroups.clustered.compute.subgroupclusteredmax_u8vec4
+dEQP-VK.subgroups.clustered.compute.subgroupclusteredmax_u8vec4_requiredsubgroupsize
 dEQP-VK.subgroups.clustered.compute.subgroupclusteredand_u8vec4
+dEQP-VK.subgroups.clustered.compute.subgroupclusteredand_u8vec4_requiredsubgroupsize
 dEQP-VK.subgroups.clustered.compute.subgroupclusteredor_u8vec4
+dEQP-VK.subgroups.clustered.compute.subgroupclusteredor_u8vec4_requiredsubgroupsize
 dEQP-VK.subgroups.clustered.compute.subgroupclusteredxor_u8vec4
+dEQP-VK.subgroups.clustered.compute.subgroupclusteredxor_u8vec4_requiredsubgroupsize
 dEQP-VK.subgroups.clustered.compute.subgroupclusteredadd_int16_t
+dEQP-VK.subgroups.clustered.compute.subgroupclusteredadd_int16_t_requiredsubgroupsize
 dEQP-VK.subgroups.clustered.compute.subgroupclusteredmul_int16_t
+dEQP-VK.subgroups.clustered.compute.subgroupclusteredmul_int16_t_requiredsubgroupsize
 dEQP-VK.subgroups.clustered.compute.subgroupclusteredmin_int16_t
+dEQP-VK.subgroups.clustered.compute.subgroupclusteredmin_int16_t_requiredsubgroupsize
 dEQP-VK.subgroups.clustered.compute.subgroupclusteredmax_int16_t
+dEQP-VK.subgroups.clustered.compute.subgroupclusteredmax_int16_t_requiredsubgroupsize
 dEQP-VK.subgroups.clustered.compute.subgroupclusteredand_int16_t
+dEQP-VK.subgroups.clustered.compute.subgroupclusteredand_int16_t_requiredsubgroupsize
 dEQP-VK.subgroups.clustered.compute.subgroupclusteredor_int16_t
+dEQP-VK.subgroups.clustered.compute.subgroupclusteredor_int16_t_requiredsubgroupsize
 dEQP-VK.subgroups.clustered.compute.subgroupclusteredxor_int16_t
+dEQP-VK.subgroups.clustered.compute.subgroupclusteredxor_int16_t_requiredsubgroupsize
 dEQP-VK.subgroups.clustered.compute.subgroupclusteredadd_i16vec2
+dEQP-VK.subgroups.clustered.compute.subgroupclusteredadd_i16vec2_requiredsubgroupsize
 dEQP-VK.subgroups.clustered.compute.subgroupclusteredmul_i16vec2
+dEQP-VK.subgroups.clustered.compute.subgroupclusteredmul_i16vec2_requiredsubgroupsize
 dEQP-VK.subgroups.clustered.compute.subgroupclusteredmin_i16vec2
+dEQP-VK.subgroups.clustered.compute.subgroupclusteredmin_i16vec2_requiredsubgroupsize
 dEQP-VK.subgroups.clustered.compute.subgroupclusteredmax_i16vec2
+dEQP-VK.subgroups.clustered.compute.subgroupclusteredmax_i16vec2_requiredsubgroupsize
 dEQP-VK.subgroups.clustered.compute.subgroupclusteredand_i16vec2
+dEQP-VK.subgroups.clustered.compute.subgroupclusteredand_i16vec2_requiredsubgroupsize
 dEQP-VK.subgroups.clustered.compute.subgroupclusteredor_i16vec2
+dEQP-VK.subgroups.clustered.compute.subgroupclusteredor_i16vec2_requiredsubgroupsize
 dEQP-VK.subgroups.clustered.compute.subgroupclusteredxor_i16vec2
+dEQP-VK.subgroups.clustered.compute.subgroupclusteredxor_i16vec2_requiredsubgroupsize
 dEQP-VK.subgroups.clustered.compute.subgroupclusteredadd_i16vec3
+dEQP-VK.subgroups.clustered.compute.subgroupclusteredadd_i16vec3_requiredsubgroupsize
 dEQP-VK.subgroups.clustered.compute.subgroupclusteredmul_i16vec3
+dEQP-VK.subgroups.clustered.compute.subgroupclusteredmul_i16vec3_requiredsubgroupsize
 dEQP-VK.subgroups.clustered.compute.subgroupclusteredmin_i16vec3
+dEQP-VK.subgroups.clustered.compute.subgroupclusteredmin_i16vec3_requiredsubgroupsize
 dEQP-VK.subgroups.clustered.compute.subgroupclusteredmax_i16vec3
+dEQP-VK.subgroups.clustered.compute.subgroupclusteredmax_i16vec3_requiredsubgroupsize
 dEQP-VK.subgroups.clustered.compute.subgroupclusteredand_i16vec3
+dEQP-VK.subgroups.clustered.compute.subgroupclusteredand_i16vec3_requiredsubgroupsize
 dEQP-VK.subgroups.clustered.compute.subgroupclusteredor_i16vec3
+dEQP-VK.subgroups.clustered.compute.subgroupclusteredor_i16vec3_requiredsubgroupsize
 dEQP-VK.subgroups.clustered.compute.subgroupclusteredxor_i16vec3
+dEQP-VK.subgroups.clustered.compute.subgroupclusteredxor_i16vec3_requiredsubgroupsize
 dEQP-VK.subgroups.clustered.compute.subgroupclusteredadd_i16vec4
+dEQP-VK.subgroups.clustered.compute.subgroupclusteredadd_i16vec4_requiredsubgroupsize
 dEQP-VK.subgroups.clustered.compute.subgroupclusteredmul_i16vec4
+dEQP-VK.subgroups.clustered.compute.subgroupclusteredmul_i16vec4_requiredsubgroupsize
 dEQP-VK.subgroups.clustered.compute.subgroupclusteredmin_i16vec4
+dEQP-VK.subgroups.clustered.compute.subgroupclusteredmin_i16vec4_requiredsubgroupsize
 dEQP-VK.subgroups.clustered.compute.subgroupclusteredmax_i16vec4
+dEQP-VK.subgroups.clustered.compute.subgroupclusteredmax_i16vec4_requiredsubgroupsize
 dEQP-VK.subgroups.clustered.compute.subgroupclusteredand_i16vec4
+dEQP-VK.subgroups.clustered.compute.subgroupclusteredand_i16vec4_requiredsubgroupsize
 dEQP-VK.subgroups.clustered.compute.subgroupclusteredor_i16vec4
+dEQP-VK.subgroups.clustered.compute.subgroupclusteredor_i16vec4_requiredsubgroupsize
 dEQP-VK.subgroups.clustered.compute.subgroupclusteredxor_i16vec4
+dEQP-VK.subgroups.clustered.compute.subgroupclusteredxor_i16vec4_requiredsubgroupsize
 dEQP-VK.subgroups.clustered.compute.subgroupclusteredadd_uint16_t
+dEQP-VK.subgroups.clustered.compute.subgroupclusteredadd_uint16_t_requiredsubgroupsize
 dEQP-VK.subgroups.clustered.compute.subgroupclusteredmul_uint16_t
+dEQP-VK.subgroups.clustered.compute.subgroupclusteredmul_uint16_t_requiredsubgroupsize
 dEQP-VK.subgroups.clustered.compute.subgroupclusteredmin_uint16_t
+dEQP-VK.subgroups.clustered.compute.subgroupclusteredmin_uint16_t_requiredsubgroupsize
 dEQP-VK.subgroups.clustered.compute.subgroupclusteredmax_uint16_t
+dEQP-VK.subgroups.clustered.compute.subgroupclusteredmax_uint16_t_requiredsubgroupsize
 dEQP-VK.subgroups.clustered.compute.subgroupclusteredand_uint16_t
+dEQP-VK.subgroups.clustered.compute.subgroupclusteredand_uint16_t_requiredsubgroupsize
 dEQP-VK.subgroups.clustered.compute.subgroupclusteredor_uint16_t
+dEQP-VK.subgroups.clustered.compute.subgroupclusteredor_uint16_t_requiredsubgroupsize
 dEQP-VK.subgroups.clustered.compute.subgroupclusteredxor_uint16_t
+dEQP-VK.subgroups.clustered.compute.subgroupclusteredxor_uint16_t_requiredsubgroupsize
 dEQP-VK.subgroups.clustered.compute.subgroupclusteredadd_u16vec2
+dEQP-VK.subgroups.clustered.compute.subgroupclusteredadd_u16vec2_requiredsubgroupsize
 dEQP-VK.subgroups.clustered.compute.subgroupclusteredmul_u16vec2
+dEQP-VK.subgroups.clustered.compute.subgroupclusteredmul_u16vec2_requiredsubgroupsize
 dEQP-VK.subgroups.clustered.compute.subgroupclusteredmin_u16vec2
+dEQP-VK.subgroups.clustered.compute.subgroupclusteredmin_u16vec2_requiredsubgroupsize
 dEQP-VK.subgroups.clustered.compute.subgroupclusteredmax_u16vec2
+dEQP-VK.subgroups.clustered.compute.subgroupclusteredmax_u16vec2_requiredsubgroupsize
 dEQP-VK.subgroups.clustered.compute.subgroupclusteredand_u16vec2
+dEQP-VK.subgroups.clustered.compute.subgroupclusteredand_u16vec2_requiredsubgroupsize
 dEQP-VK.subgroups.clustered.compute.subgroupclusteredor_u16vec2
+dEQP-VK.subgroups.clustered.compute.subgroupclusteredor_u16vec2_requiredsubgroupsize
 dEQP-VK.subgroups.clustered.compute.subgroupclusteredxor_u16vec2
+dEQP-VK.subgroups.clustered.compute.subgroupclusteredxor_u16vec2_requiredsubgroupsize
 dEQP-VK.subgroups.clustered.compute.subgroupclusteredadd_u16vec3
+dEQP-VK.subgroups.clustered.compute.subgroupclusteredadd_u16vec3_requiredsubgroupsize
 dEQP-VK.subgroups.clustered.compute.subgroupclusteredmul_u16vec3
+dEQP-VK.subgroups.clustered.compute.subgroupclusteredmul_u16vec3_requiredsubgroupsize
 dEQP-VK.subgroups.clustered.compute.subgroupclusteredmin_u16vec3
+dEQP-VK.subgroups.clustered.compute.subgroupclusteredmin_u16vec3_requiredsubgroupsize
 dEQP-VK.subgroups.clustered.compute.subgroupclusteredmax_u16vec3
+dEQP-VK.subgroups.clustered.compute.subgroupclusteredmax_u16vec3_requiredsubgroupsize
 dEQP-VK.subgroups.clustered.compute.subgroupclusteredand_u16vec3
+dEQP-VK.subgroups.clustered.compute.subgroupclusteredand_u16vec3_requiredsubgroupsize
 dEQP-VK.subgroups.clustered.compute.subgroupclusteredor_u16vec3
+dEQP-VK.subgroups.clustered.compute.subgroupclusteredor_u16vec3_requiredsubgroupsize
 dEQP-VK.subgroups.clustered.compute.subgroupclusteredxor_u16vec3
+dEQP-VK.subgroups.clustered.compute.subgroupclusteredxor_u16vec3_requiredsubgroupsize
 dEQP-VK.subgroups.clustered.compute.subgroupclusteredadd_u16vec4
+dEQP-VK.subgroups.clustered.compute.subgroupclusteredadd_u16vec4_requiredsubgroupsize
 dEQP-VK.subgroups.clustered.compute.subgroupclusteredmul_u16vec4
+dEQP-VK.subgroups.clustered.compute.subgroupclusteredmul_u16vec4_requiredsubgroupsize
 dEQP-VK.subgroups.clustered.compute.subgroupclusteredmin_u16vec4
+dEQP-VK.subgroups.clustered.compute.subgroupclusteredmin_u16vec4_requiredsubgroupsize
 dEQP-VK.subgroups.clustered.compute.subgroupclusteredmax_u16vec4
+dEQP-VK.subgroups.clustered.compute.subgroupclusteredmax_u16vec4_requiredsubgroupsize
 dEQP-VK.subgroups.clustered.compute.subgroupclusteredand_u16vec4
+dEQP-VK.subgroups.clustered.compute.subgroupclusteredand_u16vec4_requiredsubgroupsize
 dEQP-VK.subgroups.clustered.compute.subgroupclusteredor_u16vec4
+dEQP-VK.subgroups.clustered.compute.subgroupclusteredor_u16vec4_requiredsubgroupsize
 dEQP-VK.subgroups.clustered.compute.subgroupclusteredxor_u16vec4
+dEQP-VK.subgroups.clustered.compute.subgroupclusteredxor_u16vec4_requiredsubgroupsize
 dEQP-VK.subgroups.clustered.compute.subgroupclusteredadd_int
+dEQP-VK.subgroups.clustered.compute.subgroupclusteredadd_int_requiredsubgroupsize
 dEQP-VK.subgroups.clustered.compute.subgroupclusteredmul_int
+dEQP-VK.subgroups.clustered.compute.subgroupclusteredmul_int_requiredsubgroupsize
 dEQP-VK.subgroups.clustered.compute.subgroupclusteredmin_int
+dEQP-VK.subgroups.clustered.compute.subgroupclusteredmin_int_requiredsubgroupsize
 dEQP-VK.subgroups.clustered.compute.subgroupclusteredmax_int
+dEQP-VK.subgroups.clustered.compute.subgroupclusteredmax_int_requiredsubgroupsize
 dEQP-VK.subgroups.clustered.compute.subgroupclusteredand_int
+dEQP-VK.subgroups.clustered.compute.subgroupclusteredand_int_requiredsubgroupsize
 dEQP-VK.subgroups.clustered.compute.subgroupclusteredor_int
+dEQP-VK.subgroups.clustered.compute.subgroupclusteredor_int_requiredsubgroupsize
 dEQP-VK.subgroups.clustered.compute.subgroupclusteredxor_int
+dEQP-VK.subgroups.clustered.compute.subgroupclusteredxor_int_requiredsubgroupsize
 dEQP-VK.subgroups.clustered.compute.subgroupclusteredadd_ivec2
+dEQP-VK.subgroups.clustered.compute.subgroupclusteredadd_ivec2_requiredsubgroupsize
 dEQP-VK.subgroups.clustered.compute.subgroupclusteredmul_ivec2
+dEQP-VK.subgroups.clustered.compute.subgroupclusteredmul_ivec2_requiredsubgroupsize
 dEQP-VK.subgroups.clustered.compute.subgroupclusteredmin_ivec2
+dEQP-VK.subgroups.clustered.compute.subgroupclusteredmin_ivec2_requiredsubgroupsize
 dEQP-VK.subgroups.clustered.compute.subgroupclusteredmax_ivec2
+dEQP-VK.subgroups.clustered.compute.subgroupclusteredmax_ivec2_requiredsubgroupsize
 dEQP-VK.subgroups.clustered.compute.subgroupclusteredand_ivec2
+dEQP-VK.subgroups.clustered.compute.subgroupclusteredand_ivec2_requiredsubgroupsize
 dEQP-VK.subgroups.clustered.compute.subgroupclusteredor_ivec2
+dEQP-VK.subgroups.clustered.compute.subgroupclusteredor_ivec2_requiredsubgroupsize
 dEQP-VK.subgroups.clustered.compute.subgroupclusteredxor_ivec2
+dEQP-VK.subgroups.clustered.compute.subgroupclusteredxor_ivec2_requiredsubgroupsize
 dEQP-VK.subgroups.clustered.compute.subgroupclusteredadd_ivec3
+dEQP-VK.subgroups.clustered.compute.subgroupclusteredadd_ivec3_requiredsubgroupsize
 dEQP-VK.subgroups.clustered.compute.subgroupclusteredmul_ivec3
+dEQP-VK.subgroups.clustered.compute.subgroupclusteredmul_ivec3_requiredsubgroupsize
 dEQP-VK.subgroups.clustered.compute.subgroupclusteredmin_ivec3
+dEQP-VK.subgroups.clustered.compute.subgroupclusteredmin_ivec3_requiredsubgroupsize
 dEQP-VK.subgroups.clustered.compute.subgroupclusteredmax_ivec3
+dEQP-VK.subgroups.clustered.compute.subgroupclusteredmax_ivec3_requiredsubgroupsize
 dEQP-VK.subgroups.clustered.compute.subgroupclusteredand_ivec3
+dEQP-VK.subgroups.clustered.compute.subgroupclusteredand_ivec3_requiredsubgroupsize
 dEQP-VK.subgroups.clustered.compute.subgroupclusteredor_ivec3
+dEQP-VK.subgroups.clustered.compute.subgroupclusteredor_ivec3_requiredsubgroupsize
 dEQP-VK.subgroups.clustered.compute.subgroupclusteredxor_ivec3
+dEQP-VK.subgroups.clustered.compute.subgroupclusteredxor_ivec3_requiredsubgroupsize
 dEQP-VK.subgroups.clustered.compute.subgroupclusteredadd_ivec4
+dEQP-VK.subgroups.clustered.compute.subgroupclusteredadd_ivec4_requiredsubgroupsize
 dEQP-VK.subgroups.clustered.compute.subgroupclusteredmul_ivec4
+dEQP-VK.subgroups.clustered.compute.subgroupclusteredmul_ivec4_requiredsubgroupsize
 dEQP-VK.subgroups.clustered.compute.subgroupclusteredmin_ivec4
+dEQP-VK.subgroups.clustered.compute.subgroupclusteredmin_ivec4_requiredsubgroupsize
 dEQP-VK.subgroups.clustered.compute.subgroupclusteredmax_ivec4
+dEQP-VK.subgroups.clustered.compute.subgroupclusteredmax_ivec4_requiredsubgroupsize
 dEQP-VK.subgroups.clustered.compute.subgroupclusteredand_ivec4
+dEQP-VK.subgroups.clustered.compute.subgroupclusteredand_ivec4_requiredsubgroupsize
 dEQP-VK.subgroups.clustered.compute.subgroupclusteredor_ivec4
+dEQP-VK.subgroups.clustered.compute.subgroupclusteredor_ivec4_requiredsubgroupsize
 dEQP-VK.subgroups.clustered.compute.subgroupclusteredxor_ivec4
+dEQP-VK.subgroups.clustered.compute.subgroupclusteredxor_ivec4_requiredsubgroupsize
 dEQP-VK.subgroups.clustered.compute.subgroupclusteredadd_uint
+dEQP-VK.subgroups.clustered.compute.subgroupclusteredadd_uint_requiredsubgroupsize
 dEQP-VK.subgroups.clustered.compute.subgroupclusteredmul_uint
+dEQP-VK.subgroups.clustered.compute.subgroupclusteredmul_uint_requiredsubgroupsize
 dEQP-VK.subgroups.clustered.compute.subgroupclusteredmin_uint
+dEQP-VK.subgroups.clustered.compute.subgroupclusteredmin_uint_requiredsubgroupsize
 dEQP-VK.subgroups.clustered.compute.subgroupclusteredmax_uint
+dEQP-VK.subgroups.clustered.compute.subgroupclusteredmax_uint_requiredsubgroupsize
 dEQP-VK.subgroups.clustered.compute.subgroupclusteredand_uint
+dEQP-VK.subgroups.clustered.compute.subgroupclusteredand_uint_requiredsubgroupsize
 dEQP-VK.subgroups.clustered.compute.subgroupclusteredor_uint
+dEQP-VK.subgroups.clustered.compute.subgroupclusteredor_uint_requiredsubgroupsize
 dEQP-VK.subgroups.clustered.compute.subgroupclusteredxor_uint
+dEQP-VK.subgroups.clustered.compute.subgroupclusteredxor_uint_requiredsubgroupsize
 dEQP-VK.subgroups.clustered.compute.subgroupclusteredadd_uvec2
+dEQP-VK.subgroups.clustered.compute.subgroupclusteredadd_uvec2_requiredsubgroupsize
 dEQP-VK.subgroups.clustered.compute.subgroupclusteredmul_uvec2
+dEQP-VK.subgroups.clustered.compute.subgroupclusteredmul_uvec2_requiredsubgroupsize
 dEQP-VK.subgroups.clustered.compute.subgroupclusteredmin_uvec2
+dEQP-VK.subgroups.clustered.compute.subgroupclusteredmin_uvec2_requiredsubgroupsize
 dEQP-VK.subgroups.clustered.compute.subgroupclusteredmax_uvec2
+dEQP-VK.subgroups.clustered.compute.subgroupclusteredmax_uvec2_requiredsubgroupsize
 dEQP-VK.subgroups.clustered.compute.subgroupclusteredand_uvec2
+dEQP-VK.subgroups.clustered.compute.subgroupclusteredand_uvec2_requiredsubgroupsize
 dEQP-VK.subgroups.clustered.compute.subgroupclusteredor_uvec2
+dEQP-VK.subgroups.clustered.compute.subgroupclusteredor_uvec2_requiredsubgroupsize
 dEQP-VK.subgroups.clustered.compute.subgroupclusteredxor_uvec2
+dEQP-VK.subgroups.clustered.compute.subgroupclusteredxor_uvec2_requiredsubgroupsize
 dEQP-VK.subgroups.clustered.compute.subgroupclusteredadd_uvec3
+dEQP-VK.subgroups.clustered.compute.subgroupclusteredadd_uvec3_requiredsubgroupsize
 dEQP-VK.subgroups.clustered.compute.subgroupclusteredmul_uvec3
+dEQP-VK.subgroups.clustered.compute.subgroupclusteredmul_uvec3_requiredsubgroupsize
 dEQP-VK.subgroups.clustered.compute.subgroupclusteredmin_uvec3
+dEQP-VK.subgroups.clustered.compute.subgroupclusteredmin_uvec3_requiredsubgroupsize
 dEQP-VK.subgroups.clustered.compute.subgroupclusteredmax_uvec3
+dEQP-VK.subgroups.clustered.compute.subgroupclusteredmax_uvec3_requiredsubgroupsize
 dEQP-VK.subgroups.clustered.compute.subgroupclusteredand_uvec3
+dEQP-VK.subgroups.clustered.compute.subgroupclusteredand_uvec3_requiredsubgroupsize
 dEQP-VK.subgroups.clustered.compute.subgroupclusteredor_uvec3
+dEQP-VK.subgroups.clustered.compute.subgroupclusteredor_uvec3_requiredsubgroupsize
 dEQP-VK.subgroups.clustered.compute.subgroupclusteredxor_uvec3
+dEQP-VK.subgroups.clustered.compute.subgroupclusteredxor_uvec3_requiredsubgroupsize
 dEQP-VK.subgroups.clustered.compute.subgroupclusteredadd_uvec4
+dEQP-VK.subgroups.clustered.compute.subgroupclusteredadd_uvec4_requiredsubgroupsize
 dEQP-VK.subgroups.clustered.compute.subgroupclusteredmul_uvec4
+dEQP-VK.subgroups.clustered.compute.subgroupclusteredmul_uvec4_requiredsubgroupsize
 dEQP-VK.subgroups.clustered.compute.subgroupclusteredmin_uvec4
+dEQP-VK.subgroups.clustered.compute.subgroupclusteredmin_uvec4_requiredsubgroupsize
 dEQP-VK.subgroups.clustered.compute.subgroupclusteredmax_uvec4
+dEQP-VK.subgroups.clustered.compute.subgroupclusteredmax_uvec4_requiredsubgroupsize
 dEQP-VK.subgroups.clustered.compute.subgroupclusteredand_uvec4
+dEQP-VK.subgroups.clustered.compute.subgroupclusteredand_uvec4_requiredsubgroupsize
 dEQP-VK.subgroups.clustered.compute.subgroupclusteredor_uvec4
+dEQP-VK.subgroups.clustered.compute.subgroupclusteredor_uvec4_requiredsubgroupsize
 dEQP-VK.subgroups.clustered.compute.subgroupclusteredxor_uvec4
+dEQP-VK.subgroups.clustered.compute.subgroupclusteredxor_uvec4_requiredsubgroupsize
 dEQP-VK.subgroups.clustered.compute.subgroupclusteredadd_int64_t
+dEQP-VK.subgroups.clustered.compute.subgroupclusteredadd_int64_t_requiredsubgroupsize
 dEQP-VK.subgroups.clustered.compute.subgroupclusteredmul_int64_t
+dEQP-VK.subgroups.clustered.compute.subgroupclusteredmul_int64_t_requiredsubgroupsize
 dEQP-VK.subgroups.clustered.compute.subgroupclusteredmin_int64_t
+dEQP-VK.subgroups.clustered.compute.subgroupclusteredmin_int64_t_requiredsubgroupsize
 dEQP-VK.subgroups.clustered.compute.subgroupclusteredmax_int64_t
+dEQP-VK.subgroups.clustered.compute.subgroupclusteredmax_int64_t_requiredsubgroupsize
 dEQP-VK.subgroups.clustered.compute.subgroupclusteredand_int64_t
+dEQP-VK.subgroups.clustered.compute.subgroupclusteredand_int64_t_requiredsubgroupsize
 dEQP-VK.subgroups.clustered.compute.subgroupclusteredor_int64_t
+dEQP-VK.subgroups.clustered.compute.subgroupclusteredor_int64_t_requiredsubgroupsize
 dEQP-VK.subgroups.clustered.compute.subgroupclusteredxor_int64_t
+dEQP-VK.subgroups.clustered.compute.subgroupclusteredxor_int64_t_requiredsubgroupsize
 dEQP-VK.subgroups.clustered.compute.subgroupclusteredadd_i64vec2
+dEQP-VK.subgroups.clustered.compute.subgroupclusteredadd_i64vec2_requiredsubgroupsize
 dEQP-VK.subgroups.clustered.compute.subgroupclusteredmul_i64vec2
+dEQP-VK.subgroups.clustered.compute.subgroupclusteredmul_i64vec2_requiredsubgroupsize
 dEQP-VK.subgroups.clustered.compute.subgroupclusteredmin_i64vec2
+dEQP-VK.subgroups.clustered.compute.subgroupclusteredmin_i64vec2_requiredsubgroupsize
 dEQP-VK.subgroups.clustered.compute.subgroupclusteredmax_i64vec2
+dEQP-VK.subgroups.clustered.compute.subgroupclusteredmax_i64vec2_requiredsubgroupsize
 dEQP-VK.subgroups.clustered.compute.subgroupclusteredand_i64vec2
+dEQP-VK.subgroups.clustered.compute.subgroupclusteredand_i64vec2_requiredsubgroupsize
 dEQP-VK.subgroups.clustered.compute.subgroupclusteredor_i64vec2
+dEQP-VK.subgroups.clustered.compute.subgroupclusteredor_i64vec2_requiredsubgroupsize
 dEQP-VK.subgroups.clustered.compute.subgroupclusteredxor_i64vec2
+dEQP-VK.subgroups.clustered.compute.subgroupclusteredxor_i64vec2_requiredsubgroupsize
 dEQP-VK.subgroups.clustered.compute.subgroupclusteredadd_i64vec3
+dEQP-VK.subgroups.clustered.compute.subgroupclusteredadd_i64vec3_requiredsubgroupsize
 dEQP-VK.subgroups.clustered.compute.subgroupclusteredmul_i64vec3
+dEQP-VK.subgroups.clustered.compute.subgroupclusteredmul_i64vec3_requiredsubgroupsize
 dEQP-VK.subgroups.clustered.compute.subgroupclusteredmin_i64vec3
+dEQP-VK.subgroups.clustered.compute.subgroupclusteredmin_i64vec3_requiredsubgroupsize
 dEQP-VK.subgroups.clustered.compute.subgroupclusteredmax_i64vec3
+dEQP-VK.subgroups.clustered.compute.subgroupclusteredmax_i64vec3_requiredsubgroupsize
 dEQP-VK.subgroups.clustered.compute.subgroupclusteredand_i64vec3
+dEQP-VK.subgroups.clustered.compute.subgroupclusteredand_i64vec3_requiredsubgroupsize
 dEQP-VK.subgroups.clustered.compute.subgroupclusteredor_i64vec3
+dEQP-VK.subgroups.clustered.compute.subgroupclusteredor_i64vec3_requiredsubgroupsize
 dEQP-VK.subgroups.clustered.compute.subgroupclusteredxor_i64vec3
+dEQP-VK.subgroups.clustered.compute.subgroupclusteredxor_i64vec3_requiredsubgroupsize
 dEQP-VK.subgroups.clustered.compute.subgroupclusteredadd_i64vec4
+dEQP-VK.subgroups.clustered.compute.subgroupclusteredadd_i64vec4_requiredsubgroupsize
 dEQP-VK.subgroups.clustered.compute.subgroupclusteredmul_i64vec4
+dEQP-VK.subgroups.clustered.compute.subgroupclusteredmul_i64vec4_requiredsubgroupsize
 dEQP-VK.subgroups.clustered.compute.subgroupclusteredmin_i64vec4
+dEQP-VK.subgroups.clustered.compute.subgroupclusteredmin_i64vec4_requiredsubgroupsize
 dEQP-VK.subgroups.clustered.compute.subgroupclusteredmax_i64vec4
+dEQP-VK.subgroups.clustered.compute.subgroupclusteredmax_i64vec4_requiredsubgroupsize
 dEQP-VK.subgroups.clustered.compute.subgroupclusteredand_i64vec4
+dEQP-VK.subgroups.clustered.compute.subgroupclusteredand_i64vec4_requiredsubgroupsize
 dEQP-VK.subgroups.clustered.compute.subgroupclusteredor_i64vec4
+dEQP-VK.subgroups.clustered.compute.subgroupclusteredor_i64vec4_requiredsubgroupsize
 dEQP-VK.subgroups.clustered.compute.subgroupclusteredxor_i64vec4
+dEQP-VK.subgroups.clustered.compute.subgroupclusteredxor_i64vec4_requiredsubgroupsize
 dEQP-VK.subgroups.clustered.compute.subgroupclusteredadd_uint64_t
+dEQP-VK.subgroups.clustered.compute.subgroupclusteredadd_uint64_t_requiredsubgroupsize
 dEQP-VK.subgroups.clustered.compute.subgroupclusteredmul_uint64_t
+dEQP-VK.subgroups.clustered.compute.subgroupclusteredmul_uint64_t_requiredsubgroupsize
 dEQP-VK.subgroups.clustered.compute.subgroupclusteredmin_uint64_t
+dEQP-VK.subgroups.clustered.compute.subgroupclusteredmin_uint64_t_requiredsubgroupsize
 dEQP-VK.subgroups.clustered.compute.subgroupclusteredmax_uint64_t
+dEQP-VK.subgroups.clustered.compute.subgroupclusteredmax_uint64_t_requiredsubgroupsize
 dEQP-VK.subgroups.clustered.compute.subgroupclusteredand_uint64_t
+dEQP-VK.subgroups.clustered.compute.subgroupclusteredand_uint64_t_requiredsubgroupsize
 dEQP-VK.subgroups.clustered.compute.subgroupclusteredor_uint64_t
+dEQP-VK.subgroups.clustered.compute.subgroupclusteredor_uint64_t_requiredsubgroupsize
 dEQP-VK.subgroups.clustered.compute.subgroupclusteredxor_uint64_t
+dEQP-VK.subgroups.clustered.compute.subgroupclusteredxor_uint64_t_requiredsubgroupsize
 dEQP-VK.subgroups.clustered.compute.subgroupclusteredadd_u64vec2
+dEQP-VK.subgroups.clustered.compute.subgroupclusteredadd_u64vec2_requiredsubgroupsize
 dEQP-VK.subgroups.clustered.compute.subgroupclusteredmul_u64vec2
+dEQP-VK.subgroups.clustered.compute.subgroupclusteredmul_u64vec2_requiredsubgroupsize
 dEQP-VK.subgroups.clustered.compute.subgroupclusteredmin_u64vec2
+dEQP-VK.subgroups.clustered.compute.subgroupclusteredmin_u64vec2_requiredsubgroupsize
 dEQP-VK.subgroups.clustered.compute.subgroupclusteredmax_u64vec2
+dEQP-VK.subgroups.clustered.compute.subgroupclusteredmax_u64vec2_requiredsubgroupsize
 dEQP-VK.subgroups.clustered.compute.subgroupclusteredand_u64vec2
+dEQP-VK.subgroups.clustered.compute.subgroupclusteredand_u64vec2_requiredsubgroupsize
 dEQP-VK.subgroups.clustered.compute.subgroupclusteredor_u64vec2
+dEQP-VK.subgroups.clustered.compute.subgroupclusteredor_u64vec2_requiredsubgroupsize
 dEQP-VK.subgroups.clustered.compute.subgroupclusteredxor_u64vec2
+dEQP-VK.subgroups.clustered.compute.subgroupclusteredxor_u64vec2_requiredsubgroupsize
 dEQP-VK.subgroups.clustered.compute.subgroupclusteredadd_u64vec3
+dEQP-VK.subgroups.clustered.compute.subgroupclusteredadd_u64vec3_requiredsubgroupsize
 dEQP-VK.subgroups.clustered.compute.subgroupclusteredmul_u64vec3
+dEQP-VK.subgroups.clustered.compute.subgroupclusteredmul_u64vec3_requiredsubgroupsize
 dEQP-VK.subgroups.clustered.compute.subgroupclusteredmin_u64vec3
+dEQP-VK.subgroups.clustered.compute.subgroupclusteredmin_u64vec3_requiredsubgroupsize
 dEQP-VK.subgroups.clustered.compute.subgroupclusteredmax_u64vec3
+dEQP-VK.subgroups.clustered.compute.subgroupclusteredmax_u64vec3_requiredsubgroupsize
 dEQP-VK.subgroups.clustered.compute.subgroupclusteredand_u64vec3
+dEQP-VK.subgroups.clustered.compute.subgroupclusteredand_u64vec3_requiredsubgroupsize
 dEQP-VK.subgroups.clustered.compute.subgroupclusteredor_u64vec3
+dEQP-VK.subgroups.clustered.compute.subgroupclusteredor_u64vec3_requiredsubgroupsize
 dEQP-VK.subgroups.clustered.compute.subgroupclusteredxor_u64vec3
+dEQP-VK.subgroups.clustered.compute.subgroupclusteredxor_u64vec3_requiredsubgroupsize
 dEQP-VK.subgroups.clustered.compute.subgroupclusteredadd_u64vec4
+dEQP-VK.subgroups.clustered.compute.subgroupclusteredadd_u64vec4_requiredsubgroupsize
 dEQP-VK.subgroups.clustered.compute.subgroupclusteredmul_u64vec4
+dEQP-VK.subgroups.clustered.compute.subgroupclusteredmul_u64vec4_requiredsubgroupsize
 dEQP-VK.subgroups.clustered.compute.subgroupclusteredmin_u64vec4
+dEQP-VK.subgroups.clustered.compute.subgroupclusteredmin_u64vec4_requiredsubgroupsize
 dEQP-VK.subgroups.clustered.compute.subgroupclusteredmax_u64vec4
+dEQP-VK.subgroups.clustered.compute.subgroupclusteredmax_u64vec4_requiredsubgroupsize
 dEQP-VK.subgroups.clustered.compute.subgroupclusteredand_u64vec4
+dEQP-VK.subgroups.clustered.compute.subgroupclusteredand_u64vec4_requiredsubgroupsize
 dEQP-VK.subgroups.clustered.compute.subgroupclusteredor_u64vec4
+dEQP-VK.subgroups.clustered.compute.subgroupclusteredor_u64vec4_requiredsubgroupsize
 dEQP-VK.subgroups.clustered.compute.subgroupclusteredxor_u64vec4
+dEQP-VK.subgroups.clustered.compute.subgroupclusteredxor_u64vec4_requiredsubgroupsize
 dEQP-VK.subgroups.clustered.compute.subgroupclusteredadd_float16_t
+dEQP-VK.subgroups.clustered.compute.subgroupclusteredadd_float16_t_requiredsubgroupsize
 dEQP-VK.subgroups.clustered.compute.subgroupclusteredmul_float16_t
+dEQP-VK.subgroups.clustered.compute.subgroupclusteredmul_float16_t_requiredsubgroupsize
 dEQP-VK.subgroups.clustered.compute.subgroupclusteredmin_float16_t
+dEQP-VK.subgroups.clustered.compute.subgroupclusteredmin_float16_t_requiredsubgroupsize
 dEQP-VK.subgroups.clustered.compute.subgroupclusteredmax_float16_t
+dEQP-VK.subgroups.clustered.compute.subgroupclusteredmax_float16_t_requiredsubgroupsize
 dEQP-VK.subgroups.clustered.compute.subgroupclusteredadd_f16vec2
+dEQP-VK.subgroups.clustered.compute.subgroupclusteredadd_f16vec2_requiredsubgroupsize
 dEQP-VK.subgroups.clustered.compute.subgroupclusteredmul_f16vec2
+dEQP-VK.subgroups.clustered.compute.subgroupclusteredmul_f16vec2_requiredsubgroupsize
 dEQP-VK.subgroups.clustered.compute.subgroupclusteredmin_f16vec2
+dEQP-VK.subgroups.clustered.compute.subgroupclusteredmin_f16vec2_requiredsubgroupsize
 dEQP-VK.subgroups.clustered.compute.subgroupclusteredmax_f16vec2
+dEQP-VK.subgroups.clustered.compute.subgroupclusteredmax_f16vec2_requiredsubgroupsize
 dEQP-VK.subgroups.clustered.compute.subgroupclusteredadd_f16vec3
+dEQP-VK.subgroups.clustered.compute.subgroupclusteredadd_f16vec3_requiredsubgroupsize
 dEQP-VK.subgroups.clustered.compute.subgroupclusteredmul_f16vec3
+dEQP-VK.subgroups.clustered.compute.subgroupclusteredmul_f16vec3_requiredsubgroupsize
 dEQP-VK.subgroups.clustered.compute.subgroupclusteredmin_f16vec3
+dEQP-VK.subgroups.clustered.compute.subgroupclusteredmin_f16vec3_requiredsubgroupsize
 dEQP-VK.subgroups.clustered.compute.subgroupclusteredmax_f16vec3
+dEQP-VK.subgroups.clustered.compute.subgroupclusteredmax_f16vec3_requiredsubgroupsize
 dEQP-VK.subgroups.clustered.compute.subgroupclusteredadd_f16vec4
+dEQP-VK.subgroups.clustered.compute.subgroupclusteredadd_f16vec4_requiredsubgroupsize
 dEQP-VK.subgroups.clustered.compute.subgroupclusteredmul_f16vec4
+dEQP-VK.subgroups.clustered.compute.subgroupclusteredmul_f16vec4_requiredsubgroupsize
 dEQP-VK.subgroups.clustered.compute.subgroupclusteredmin_f16vec4
+dEQP-VK.subgroups.clustered.compute.subgroupclusteredmin_f16vec4_requiredsubgroupsize
 dEQP-VK.subgroups.clustered.compute.subgroupclusteredmax_f16vec4
+dEQP-VK.subgroups.clustered.compute.subgroupclusteredmax_f16vec4_requiredsubgroupsize
 dEQP-VK.subgroups.clustered.compute.subgroupclusteredadd_float
+dEQP-VK.subgroups.clustered.compute.subgroupclusteredadd_float_requiredsubgroupsize
 dEQP-VK.subgroups.clustered.compute.subgroupclusteredmul_float
+dEQP-VK.subgroups.clustered.compute.subgroupclusteredmul_float_requiredsubgroupsize
 dEQP-VK.subgroups.clustered.compute.subgroupclusteredmin_float
+dEQP-VK.subgroups.clustered.compute.subgroupclusteredmin_float_requiredsubgroupsize
 dEQP-VK.subgroups.clustered.compute.subgroupclusteredmax_float
+dEQP-VK.subgroups.clustered.compute.subgroupclusteredmax_float_requiredsubgroupsize
 dEQP-VK.subgroups.clustered.compute.subgroupclusteredadd_vec2
+dEQP-VK.subgroups.clustered.compute.subgroupclusteredadd_vec2_requiredsubgroupsize
 dEQP-VK.subgroups.clustered.compute.subgroupclusteredmul_vec2
+dEQP-VK.subgroups.clustered.compute.subgroupclusteredmul_vec2_requiredsubgroupsize
 dEQP-VK.subgroups.clustered.compute.subgroupclusteredmin_vec2
+dEQP-VK.subgroups.clustered.compute.subgroupclusteredmin_vec2_requiredsubgroupsize
 dEQP-VK.subgroups.clustered.compute.subgroupclusteredmax_vec2
+dEQP-VK.subgroups.clustered.compute.subgroupclusteredmax_vec2_requiredsubgroupsize
 dEQP-VK.subgroups.clustered.compute.subgroupclusteredadd_vec3
+dEQP-VK.subgroups.clustered.compute.subgroupclusteredadd_vec3_requiredsubgroupsize
 dEQP-VK.subgroups.clustered.compute.subgroupclusteredmul_vec3
+dEQP-VK.subgroups.clustered.compute.subgroupclusteredmul_vec3_requiredsubgroupsize
 dEQP-VK.subgroups.clustered.compute.subgroupclusteredmin_vec3
+dEQP-VK.subgroups.clustered.compute.subgroupclusteredmin_vec3_requiredsubgroupsize
 dEQP-VK.subgroups.clustered.compute.subgroupclusteredmax_vec3
+dEQP-VK.subgroups.clustered.compute.subgroupclusteredmax_vec3_requiredsubgroupsize
 dEQP-VK.subgroups.clustered.compute.subgroupclusteredadd_vec4
+dEQP-VK.subgroups.clustered.compute.subgroupclusteredadd_vec4_requiredsubgroupsize
 dEQP-VK.subgroups.clustered.compute.subgroupclusteredmul_vec4
+dEQP-VK.subgroups.clustered.compute.subgroupclusteredmul_vec4_requiredsubgroupsize
 dEQP-VK.subgroups.clustered.compute.subgroupclusteredmin_vec4
+dEQP-VK.subgroups.clustered.compute.subgroupclusteredmin_vec4_requiredsubgroupsize
 dEQP-VK.subgroups.clustered.compute.subgroupclusteredmax_vec4
+dEQP-VK.subgroups.clustered.compute.subgroupclusteredmax_vec4_requiredsubgroupsize
 dEQP-VK.subgroups.clustered.compute.subgroupclusteredadd_double
+dEQP-VK.subgroups.clustered.compute.subgroupclusteredadd_double_requiredsubgroupsize
 dEQP-VK.subgroups.clustered.compute.subgroupclusteredmul_double
+dEQP-VK.subgroups.clustered.compute.subgroupclusteredmul_double_requiredsubgroupsize
 dEQP-VK.subgroups.clustered.compute.subgroupclusteredmin_double
+dEQP-VK.subgroups.clustered.compute.subgroupclusteredmin_double_requiredsubgroupsize
 dEQP-VK.subgroups.clustered.compute.subgroupclusteredmax_double
+dEQP-VK.subgroups.clustered.compute.subgroupclusteredmax_double_requiredsubgroupsize
 dEQP-VK.subgroups.clustered.compute.subgroupclusteredadd_dvec2
+dEQP-VK.subgroups.clustered.compute.subgroupclusteredadd_dvec2_requiredsubgroupsize
 dEQP-VK.subgroups.clustered.compute.subgroupclusteredmul_dvec2
+dEQP-VK.subgroups.clustered.compute.subgroupclusteredmul_dvec2_requiredsubgroupsize
 dEQP-VK.subgroups.clustered.compute.subgroupclusteredmin_dvec2
+dEQP-VK.subgroups.clustered.compute.subgroupclusteredmin_dvec2_requiredsubgroupsize
 dEQP-VK.subgroups.clustered.compute.subgroupclusteredmax_dvec2
+dEQP-VK.subgroups.clustered.compute.subgroupclusteredmax_dvec2_requiredsubgroupsize
 dEQP-VK.subgroups.clustered.compute.subgroupclusteredadd_dvec3
+dEQP-VK.subgroups.clustered.compute.subgroupclusteredadd_dvec3_requiredsubgroupsize
 dEQP-VK.subgroups.clustered.compute.subgroupclusteredmul_dvec3
+dEQP-VK.subgroups.clustered.compute.subgroupclusteredmul_dvec3_requiredsubgroupsize
 dEQP-VK.subgroups.clustered.compute.subgroupclusteredmin_dvec3
+dEQP-VK.subgroups.clustered.compute.subgroupclusteredmin_dvec3_requiredsubgroupsize
 dEQP-VK.subgroups.clustered.compute.subgroupclusteredmax_dvec3
+dEQP-VK.subgroups.clustered.compute.subgroupclusteredmax_dvec3_requiredsubgroupsize
 dEQP-VK.subgroups.clustered.compute.subgroupclusteredadd_dvec4
+dEQP-VK.subgroups.clustered.compute.subgroupclusteredadd_dvec4_requiredsubgroupsize
 dEQP-VK.subgroups.clustered.compute.subgroupclusteredmul_dvec4
+dEQP-VK.subgroups.clustered.compute.subgroupclusteredmul_dvec4_requiredsubgroupsize
 dEQP-VK.subgroups.clustered.compute.subgroupclusteredmin_dvec4
+dEQP-VK.subgroups.clustered.compute.subgroupclusteredmin_dvec4_requiredsubgroupsize
 dEQP-VK.subgroups.clustered.compute.subgroupclusteredmax_dvec4
+dEQP-VK.subgroups.clustered.compute.subgroupclusteredmax_dvec4_requiredsubgroupsize
 dEQP-VK.subgroups.clustered.compute.subgroupclusteredand_bool
+dEQP-VK.subgroups.clustered.compute.subgroupclusteredand_bool_requiredsubgroupsize
 dEQP-VK.subgroups.clustered.compute.subgroupclusteredor_bool
+dEQP-VK.subgroups.clustered.compute.subgroupclusteredor_bool_requiredsubgroupsize
 dEQP-VK.subgroups.clustered.compute.subgroupclusteredxor_bool
+dEQP-VK.subgroups.clustered.compute.subgroupclusteredxor_bool_requiredsubgroupsize
 dEQP-VK.subgroups.clustered.compute.subgroupclusteredand_bvec2
+dEQP-VK.subgroups.clustered.compute.subgroupclusteredand_bvec2_requiredsubgroupsize
 dEQP-VK.subgroups.clustered.compute.subgroupclusteredor_bvec2
+dEQP-VK.subgroups.clustered.compute.subgroupclusteredor_bvec2_requiredsubgroupsize
 dEQP-VK.subgroups.clustered.compute.subgroupclusteredxor_bvec2
+dEQP-VK.subgroups.clustered.compute.subgroupclusteredxor_bvec2_requiredsubgroupsize
 dEQP-VK.subgroups.clustered.compute.subgroupclusteredand_bvec3
+dEQP-VK.subgroups.clustered.compute.subgroupclusteredand_bvec3_requiredsubgroupsize
 dEQP-VK.subgroups.clustered.compute.subgroupclusteredor_bvec3
+dEQP-VK.subgroups.clustered.compute.subgroupclusteredor_bvec3_requiredsubgroupsize
 dEQP-VK.subgroups.clustered.compute.subgroupclusteredxor_bvec3
+dEQP-VK.subgroups.clustered.compute.subgroupclusteredxor_bvec3_requiredsubgroupsize
 dEQP-VK.subgroups.clustered.compute.subgroupclusteredand_bvec4
+dEQP-VK.subgroups.clustered.compute.subgroupclusteredand_bvec4_requiredsubgroupsize
 dEQP-VK.subgroups.clustered.compute.subgroupclusteredor_bvec4
+dEQP-VK.subgroups.clustered.compute.subgroupclusteredor_bvec4_requiredsubgroupsize
 dEQP-VK.subgroups.clustered.compute.subgroupclusteredxor_bvec4
+dEQP-VK.subgroups.clustered.compute.subgroupclusteredxor_bvec4_requiredsubgroupsize
 dEQP-VK.subgroups.clustered.framebuffer.subgroupclusteredadd_int8_t_vertex
 dEQP-VK.subgroups.clustered.framebuffer.subgroupclusteredadd_int8_t_tess_eval
 dEQP-VK.subgroups.clustered.framebuffer.subgroupclusteredadd_int8_t_tess_control
@@ -517217,857 +518583,1709 @@ dEQP-VK.subgroups.partitioned.graphics.subgroupexclusiveand_bvec4
 dEQP-VK.subgroups.partitioned.graphics.subgroupexclusiveor_bvec4
 dEQP-VK.subgroups.partitioned.graphics.subgroupexclusivexor_bvec4
 dEQP-VK.subgroups.partitioned.compute.subgroupadd_int8_t
+dEQP-VK.subgroups.partitioned.compute.subgroupadd_int8_t_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupmul_int8_t
+dEQP-VK.subgroups.partitioned.compute.subgroupmul_int8_t_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupmin_int8_t
+dEQP-VK.subgroups.partitioned.compute.subgroupmin_int8_t_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupmax_int8_t
+dEQP-VK.subgroups.partitioned.compute.subgroupmax_int8_t_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupand_int8_t
+dEQP-VK.subgroups.partitioned.compute.subgroupand_int8_t_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupor_int8_t
+dEQP-VK.subgroups.partitioned.compute.subgroupor_int8_t_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupxor_int8_t
+dEQP-VK.subgroups.partitioned.compute.subgroupxor_int8_t_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupinclusiveadd_int8_t
+dEQP-VK.subgroups.partitioned.compute.subgroupinclusiveadd_int8_t_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupinclusivemul_int8_t
+dEQP-VK.subgroups.partitioned.compute.subgroupinclusivemul_int8_t_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupinclusivemin_int8_t
+dEQP-VK.subgroups.partitioned.compute.subgroupinclusivemin_int8_t_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupinclusivemax_int8_t
+dEQP-VK.subgroups.partitioned.compute.subgroupinclusivemax_int8_t_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupinclusiveand_int8_t
+dEQP-VK.subgroups.partitioned.compute.subgroupinclusiveand_int8_t_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupinclusiveor_int8_t
+dEQP-VK.subgroups.partitioned.compute.subgroupinclusiveor_int8_t_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupinclusivexor_int8_t
+dEQP-VK.subgroups.partitioned.compute.subgroupinclusivexor_int8_t_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupexclusiveadd_int8_t
+dEQP-VK.subgroups.partitioned.compute.subgroupexclusiveadd_int8_t_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupexclusivemul_int8_t
+dEQP-VK.subgroups.partitioned.compute.subgroupexclusivemul_int8_t_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupexclusivemin_int8_t
+dEQP-VK.subgroups.partitioned.compute.subgroupexclusivemin_int8_t_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupexclusivemax_int8_t
+dEQP-VK.subgroups.partitioned.compute.subgroupexclusivemax_int8_t_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupexclusiveand_int8_t
+dEQP-VK.subgroups.partitioned.compute.subgroupexclusiveand_int8_t_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupexclusiveor_int8_t
+dEQP-VK.subgroups.partitioned.compute.subgroupexclusiveor_int8_t_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupexclusivexor_int8_t
+dEQP-VK.subgroups.partitioned.compute.subgroupexclusivexor_int8_t_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupadd_i8vec2
+dEQP-VK.subgroups.partitioned.compute.subgroupadd_i8vec2_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupmul_i8vec2
+dEQP-VK.subgroups.partitioned.compute.subgroupmul_i8vec2_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupmin_i8vec2
+dEQP-VK.subgroups.partitioned.compute.subgroupmin_i8vec2_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupmax_i8vec2
+dEQP-VK.subgroups.partitioned.compute.subgroupmax_i8vec2_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupand_i8vec2
+dEQP-VK.subgroups.partitioned.compute.subgroupand_i8vec2_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupor_i8vec2
+dEQP-VK.subgroups.partitioned.compute.subgroupor_i8vec2_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupxor_i8vec2
+dEQP-VK.subgroups.partitioned.compute.subgroupxor_i8vec2_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupinclusiveadd_i8vec2
+dEQP-VK.subgroups.partitioned.compute.subgroupinclusiveadd_i8vec2_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupinclusivemul_i8vec2
+dEQP-VK.subgroups.partitioned.compute.subgroupinclusivemul_i8vec2_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupinclusivemin_i8vec2
+dEQP-VK.subgroups.partitioned.compute.subgroupinclusivemin_i8vec2_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupinclusivemax_i8vec2
+dEQP-VK.subgroups.partitioned.compute.subgroupinclusivemax_i8vec2_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupinclusiveand_i8vec2
+dEQP-VK.subgroups.partitioned.compute.subgroupinclusiveand_i8vec2_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupinclusiveor_i8vec2
+dEQP-VK.subgroups.partitioned.compute.subgroupinclusiveor_i8vec2_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupinclusivexor_i8vec2
+dEQP-VK.subgroups.partitioned.compute.subgroupinclusivexor_i8vec2_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupexclusiveadd_i8vec2
+dEQP-VK.subgroups.partitioned.compute.subgroupexclusiveadd_i8vec2_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupexclusivemul_i8vec2
+dEQP-VK.subgroups.partitioned.compute.subgroupexclusivemul_i8vec2_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupexclusivemin_i8vec2
+dEQP-VK.subgroups.partitioned.compute.subgroupexclusivemin_i8vec2_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupexclusivemax_i8vec2
+dEQP-VK.subgroups.partitioned.compute.subgroupexclusivemax_i8vec2_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupexclusiveand_i8vec2
+dEQP-VK.subgroups.partitioned.compute.subgroupexclusiveand_i8vec2_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupexclusiveor_i8vec2
+dEQP-VK.subgroups.partitioned.compute.subgroupexclusiveor_i8vec2_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupexclusivexor_i8vec2
+dEQP-VK.subgroups.partitioned.compute.subgroupexclusivexor_i8vec2_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupadd_i8vec3
+dEQP-VK.subgroups.partitioned.compute.subgroupadd_i8vec3_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupmul_i8vec3
+dEQP-VK.subgroups.partitioned.compute.subgroupmul_i8vec3_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupmin_i8vec3
+dEQP-VK.subgroups.partitioned.compute.subgroupmin_i8vec3_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupmax_i8vec3
+dEQP-VK.subgroups.partitioned.compute.subgroupmax_i8vec3_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupand_i8vec3
+dEQP-VK.subgroups.partitioned.compute.subgroupand_i8vec3_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupor_i8vec3
+dEQP-VK.subgroups.partitioned.compute.subgroupor_i8vec3_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupxor_i8vec3
+dEQP-VK.subgroups.partitioned.compute.subgroupxor_i8vec3_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupinclusiveadd_i8vec3
+dEQP-VK.subgroups.partitioned.compute.subgroupinclusiveadd_i8vec3_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupinclusivemul_i8vec3
+dEQP-VK.subgroups.partitioned.compute.subgroupinclusivemul_i8vec3_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupinclusivemin_i8vec3
+dEQP-VK.subgroups.partitioned.compute.subgroupinclusivemin_i8vec3_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupinclusivemax_i8vec3
+dEQP-VK.subgroups.partitioned.compute.subgroupinclusivemax_i8vec3_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupinclusiveand_i8vec3
+dEQP-VK.subgroups.partitioned.compute.subgroupinclusiveand_i8vec3_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupinclusiveor_i8vec3
+dEQP-VK.subgroups.partitioned.compute.subgroupinclusiveor_i8vec3_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupinclusivexor_i8vec3
+dEQP-VK.subgroups.partitioned.compute.subgroupinclusivexor_i8vec3_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupexclusiveadd_i8vec3
+dEQP-VK.subgroups.partitioned.compute.subgroupexclusiveadd_i8vec3_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupexclusivemul_i8vec3
+dEQP-VK.subgroups.partitioned.compute.subgroupexclusivemul_i8vec3_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupexclusivemin_i8vec3
+dEQP-VK.subgroups.partitioned.compute.subgroupexclusivemin_i8vec3_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupexclusivemax_i8vec3
+dEQP-VK.subgroups.partitioned.compute.subgroupexclusivemax_i8vec3_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupexclusiveand_i8vec3
+dEQP-VK.subgroups.partitioned.compute.subgroupexclusiveand_i8vec3_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupexclusiveor_i8vec3
+dEQP-VK.subgroups.partitioned.compute.subgroupexclusiveor_i8vec3_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupexclusivexor_i8vec3
+dEQP-VK.subgroups.partitioned.compute.subgroupexclusivexor_i8vec3_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupadd_i8vec4
+dEQP-VK.subgroups.partitioned.compute.subgroupadd_i8vec4_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupmul_i8vec4
+dEQP-VK.subgroups.partitioned.compute.subgroupmul_i8vec4_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupmin_i8vec4
+dEQP-VK.subgroups.partitioned.compute.subgroupmin_i8vec4_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupmax_i8vec4
+dEQP-VK.subgroups.partitioned.compute.subgroupmax_i8vec4_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupand_i8vec4
+dEQP-VK.subgroups.partitioned.compute.subgroupand_i8vec4_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupor_i8vec4
+dEQP-VK.subgroups.partitioned.compute.subgroupor_i8vec4_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupxor_i8vec4
+dEQP-VK.subgroups.partitioned.compute.subgroupxor_i8vec4_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupinclusiveadd_i8vec4
+dEQP-VK.subgroups.partitioned.compute.subgroupinclusiveadd_i8vec4_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupinclusivemul_i8vec4
+dEQP-VK.subgroups.partitioned.compute.subgroupinclusivemul_i8vec4_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupinclusivemin_i8vec4
+dEQP-VK.subgroups.partitioned.compute.subgroupinclusivemin_i8vec4_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupinclusivemax_i8vec4
+dEQP-VK.subgroups.partitioned.compute.subgroupinclusivemax_i8vec4_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupinclusiveand_i8vec4
+dEQP-VK.subgroups.partitioned.compute.subgroupinclusiveand_i8vec4_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupinclusiveor_i8vec4
+dEQP-VK.subgroups.partitioned.compute.subgroupinclusiveor_i8vec4_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupinclusivexor_i8vec4
+dEQP-VK.subgroups.partitioned.compute.subgroupinclusivexor_i8vec4_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupexclusiveadd_i8vec4
+dEQP-VK.subgroups.partitioned.compute.subgroupexclusiveadd_i8vec4_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupexclusivemul_i8vec4
+dEQP-VK.subgroups.partitioned.compute.subgroupexclusivemul_i8vec4_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupexclusivemin_i8vec4
+dEQP-VK.subgroups.partitioned.compute.subgroupexclusivemin_i8vec4_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupexclusivemax_i8vec4
+dEQP-VK.subgroups.partitioned.compute.subgroupexclusivemax_i8vec4_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupexclusiveand_i8vec4
+dEQP-VK.subgroups.partitioned.compute.subgroupexclusiveand_i8vec4_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupexclusiveor_i8vec4
+dEQP-VK.subgroups.partitioned.compute.subgroupexclusiveor_i8vec4_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupexclusivexor_i8vec4
+dEQP-VK.subgroups.partitioned.compute.subgroupexclusivexor_i8vec4_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupadd_uint8_t
+dEQP-VK.subgroups.partitioned.compute.subgroupadd_uint8_t_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupmul_uint8_t
+dEQP-VK.subgroups.partitioned.compute.subgroupmul_uint8_t_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupmin_uint8_t
+dEQP-VK.subgroups.partitioned.compute.subgroupmin_uint8_t_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupmax_uint8_t
+dEQP-VK.subgroups.partitioned.compute.subgroupmax_uint8_t_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupand_uint8_t
+dEQP-VK.subgroups.partitioned.compute.subgroupand_uint8_t_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupor_uint8_t
+dEQP-VK.subgroups.partitioned.compute.subgroupor_uint8_t_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupxor_uint8_t
+dEQP-VK.subgroups.partitioned.compute.subgroupxor_uint8_t_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupinclusiveadd_uint8_t
+dEQP-VK.subgroups.partitioned.compute.subgroupinclusiveadd_uint8_t_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupinclusivemul_uint8_t
+dEQP-VK.subgroups.partitioned.compute.subgroupinclusivemul_uint8_t_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupinclusivemin_uint8_t
+dEQP-VK.subgroups.partitioned.compute.subgroupinclusivemin_uint8_t_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupinclusivemax_uint8_t
+dEQP-VK.subgroups.partitioned.compute.subgroupinclusivemax_uint8_t_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupinclusiveand_uint8_t
+dEQP-VK.subgroups.partitioned.compute.subgroupinclusiveand_uint8_t_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupinclusiveor_uint8_t
+dEQP-VK.subgroups.partitioned.compute.subgroupinclusiveor_uint8_t_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupinclusivexor_uint8_t
+dEQP-VK.subgroups.partitioned.compute.subgroupinclusivexor_uint8_t_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupexclusiveadd_uint8_t
+dEQP-VK.subgroups.partitioned.compute.subgroupexclusiveadd_uint8_t_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupexclusivemul_uint8_t
+dEQP-VK.subgroups.partitioned.compute.subgroupexclusivemul_uint8_t_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupexclusivemin_uint8_t
+dEQP-VK.subgroups.partitioned.compute.subgroupexclusivemin_uint8_t_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupexclusivemax_uint8_t
+dEQP-VK.subgroups.partitioned.compute.subgroupexclusivemax_uint8_t_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupexclusiveand_uint8_t
+dEQP-VK.subgroups.partitioned.compute.subgroupexclusiveand_uint8_t_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupexclusiveor_uint8_t
+dEQP-VK.subgroups.partitioned.compute.subgroupexclusiveor_uint8_t_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupexclusivexor_uint8_t
+dEQP-VK.subgroups.partitioned.compute.subgroupexclusivexor_uint8_t_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupadd_u8vec2
+dEQP-VK.subgroups.partitioned.compute.subgroupadd_u8vec2_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupmul_u8vec2
+dEQP-VK.subgroups.partitioned.compute.subgroupmul_u8vec2_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupmin_u8vec2
+dEQP-VK.subgroups.partitioned.compute.subgroupmin_u8vec2_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupmax_u8vec2
+dEQP-VK.subgroups.partitioned.compute.subgroupmax_u8vec2_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupand_u8vec2
+dEQP-VK.subgroups.partitioned.compute.subgroupand_u8vec2_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupor_u8vec2
+dEQP-VK.subgroups.partitioned.compute.subgroupor_u8vec2_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupxor_u8vec2
+dEQP-VK.subgroups.partitioned.compute.subgroupxor_u8vec2_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupinclusiveadd_u8vec2
+dEQP-VK.subgroups.partitioned.compute.subgroupinclusiveadd_u8vec2_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupinclusivemul_u8vec2
+dEQP-VK.subgroups.partitioned.compute.subgroupinclusivemul_u8vec2_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupinclusivemin_u8vec2
+dEQP-VK.subgroups.partitioned.compute.subgroupinclusivemin_u8vec2_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupinclusivemax_u8vec2
+dEQP-VK.subgroups.partitioned.compute.subgroupinclusivemax_u8vec2_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupinclusiveand_u8vec2
+dEQP-VK.subgroups.partitioned.compute.subgroupinclusiveand_u8vec2_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupinclusiveor_u8vec2
+dEQP-VK.subgroups.partitioned.compute.subgroupinclusiveor_u8vec2_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupinclusivexor_u8vec2
+dEQP-VK.subgroups.partitioned.compute.subgroupinclusivexor_u8vec2_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupexclusiveadd_u8vec2
+dEQP-VK.subgroups.partitioned.compute.subgroupexclusiveadd_u8vec2_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupexclusivemul_u8vec2
+dEQP-VK.subgroups.partitioned.compute.subgroupexclusivemul_u8vec2_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupexclusivemin_u8vec2
+dEQP-VK.subgroups.partitioned.compute.subgroupexclusivemin_u8vec2_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupexclusivemax_u8vec2
+dEQP-VK.subgroups.partitioned.compute.subgroupexclusivemax_u8vec2_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupexclusiveand_u8vec2
+dEQP-VK.subgroups.partitioned.compute.subgroupexclusiveand_u8vec2_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupexclusiveor_u8vec2
+dEQP-VK.subgroups.partitioned.compute.subgroupexclusiveor_u8vec2_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupexclusivexor_u8vec2
+dEQP-VK.subgroups.partitioned.compute.subgroupexclusivexor_u8vec2_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupadd_u8vec3
+dEQP-VK.subgroups.partitioned.compute.subgroupadd_u8vec3_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupmul_u8vec3
+dEQP-VK.subgroups.partitioned.compute.subgroupmul_u8vec3_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupmin_u8vec3
+dEQP-VK.subgroups.partitioned.compute.subgroupmin_u8vec3_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupmax_u8vec3
+dEQP-VK.subgroups.partitioned.compute.subgroupmax_u8vec3_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupand_u8vec3
+dEQP-VK.subgroups.partitioned.compute.subgroupand_u8vec3_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupor_u8vec3
+dEQP-VK.subgroups.partitioned.compute.subgroupor_u8vec3_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupxor_u8vec3
+dEQP-VK.subgroups.partitioned.compute.subgroupxor_u8vec3_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupinclusiveadd_u8vec3
+dEQP-VK.subgroups.partitioned.compute.subgroupinclusiveadd_u8vec3_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupinclusivemul_u8vec3
+dEQP-VK.subgroups.partitioned.compute.subgroupinclusivemul_u8vec3_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupinclusivemin_u8vec3
+dEQP-VK.subgroups.partitioned.compute.subgroupinclusivemin_u8vec3_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupinclusivemax_u8vec3
+dEQP-VK.subgroups.partitioned.compute.subgroupinclusivemax_u8vec3_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupinclusiveand_u8vec3
+dEQP-VK.subgroups.partitioned.compute.subgroupinclusiveand_u8vec3_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupinclusiveor_u8vec3
+dEQP-VK.subgroups.partitioned.compute.subgroupinclusiveor_u8vec3_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupinclusivexor_u8vec3
+dEQP-VK.subgroups.partitioned.compute.subgroupinclusivexor_u8vec3_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupexclusiveadd_u8vec3
+dEQP-VK.subgroups.partitioned.compute.subgroupexclusiveadd_u8vec3_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupexclusivemul_u8vec3
+dEQP-VK.subgroups.partitioned.compute.subgroupexclusivemul_u8vec3_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupexclusivemin_u8vec3
+dEQP-VK.subgroups.partitioned.compute.subgroupexclusivemin_u8vec3_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupexclusivemax_u8vec3
+dEQP-VK.subgroups.partitioned.compute.subgroupexclusivemax_u8vec3_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupexclusiveand_u8vec3
+dEQP-VK.subgroups.partitioned.compute.subgroupexclusiveand_u8vec3_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupexclusiveor_u8vec3
+dEQP-VK.subgroups.partitioned.compute.subgroupexclusiveor_u8vec3_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupexclusivexor_u8vec3
+dEQP-VK.subgroups.partitioned.compute.subgroupexclusivexor_u8vec3_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupadd_u8vec4
+dEQP-VK.subgroups.partitioned.compute.subgroupadd_u8vec4_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupmul_u8vec4
+dEQP-VK.subgroups.partitioned.compute.subgroupmul_u8vec4_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupmin_u8vec4
+dEQP-VK.subgroups.partitioned.compute.subgroupmin_u8vec4_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupmax_u8vec4
+dEQP-VK.subgroups.partitioned.compute.subgroupmax_u8vec4_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupand_u8vec4
+dEQP-VK.subgroups.partitioned.compute.subgroupand_u8vec4_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupor_u8vec4
+dEQP-VK.subgroups.partitioned.compute.subgroupor_u8vec4_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupxor_u8vec4
+dEQP-VK.subgroups.partitioned.compute.subgroupxor_u8vec4_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupinclusiveadd_u8vec4
+dEQP-VK.subgroups.partitioned.compute.subgroupinclusiveadd_u8vec4_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupinclusivemul_u8vec4
+dEQP-VK.subgroups.partitioned.compute.subgroupinclusivemul_u8vec4_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupinclusivemin_u8vec4
+dEQP-VK.subgroups.partitioned.compute.subgroupinclusivemin_u8vec4_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupinclusivemax_u8vec4
+dEQP-VK.subgroups.partitioned.compute.subgroupinclusivemax_u8vec4_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupinclusiveand_u8vec4
+dEQP-VK.subgroups.partitioned.compute.subgroupinclusiveand_u8vec4_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupinclusiveor_u8vec4
+dEQP-VK.subgroups.partitioned.compute.subgroupinclusiveor_u8vec4_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupinclusivexor_u8vec4
+dEQP-VK.subgroups.partitioned.compute.subgroupinclusivexor_u8vec4_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupexclusiveadd_u8vec4
+dEQP-VK.subgroups.partitioned.compute.subgroupexclusiveadd_u8vec4_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupexclusivemul_u8vec4
+dEQP-VK.subgroups.partitioned.compute.subgroupexclusivemul_u8vec4_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupexclusivemin_u8vec4
+dEQP-VK.subgroups.partitioned.compute.subgroupexclusivemin_u8vec4_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupexclusivemax_u8vec4
+dEQP-VK.subgroups.partitioned.compute.subgroupexclusivemax_u8vec4_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupexclusiveand_u8vec4
+dEQP-VK.subgroups.partitioned.compute.subgroupexclusiveand_u8vec4_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupexclusiveor_u8vec4
+dEQP-VK.subgroups.partitioned.compute.subgroupexclusiveor_u8vec4_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupexclusivexor_u8vec4
+dEQP-VK.subgroups.partitioned.compute.subgroupexclusivexor_u8vec4_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupadd_int16_t
+dEQP-VK.subgroups.partitioned.compute.subgroupadd_int16_t_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupmul_int16_t
+dEQP-VK.subgroups.partitioned.compute.subgroupmul_int16_t_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupmin_int16_t
+dEQP-VK.subgroups.partitioned.compute.subgroupmin_int16_t_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupmax_int16_t
+dEQP-VK.subgroups.partitioned.compute.subgroupmax_int16_t_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupand_int16_t
+dEQP-VK.subgroups.partitioned.compute.subgroupand_int16_t_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupor_int16_t
+dEQP-VK.subgroups.partitioned.compute.subgroupor_int16_t_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupxor_int16_t
+dEQP-VK.subgroups.partitioned.compute.subgroupxor_int16_t_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupinclusiveadd_int16_t
+dEQP-VK.subgroups.partitioned.compute.subgroupinclusiveadd_int16_t_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupinclusivemul_int16_t
+dEQP-VK.subgroups.partitioned.compute.subgroupinclusivemul_int16_t_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupinclusivemin_int16_t
+dEQP-VK.subgroups.partitioned.compute.subgroupinclusivemin_int16_t_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupinclusivemax_int16_t
+dEQP-VK.subgroups.partitioned.compute.subgroupinclusivemax_int16_t_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupinclusiveand_int16_t
+dEQP-VK.subgroups.partitioned.compute.subgroupinclusiveand_int16_t_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupinclusiveor_int16_t
+dEQP-VK.subgroups.partitioned.compute.subgroupinclusiveor_int16_t_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupinclusivexor_int16_t
+dEQP-VK.subgroups.partitioned.compute.subgroupinclusivexor_int16_t_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupexclusiveadd_int16_t
+dEQP-VK.subgroups.partitioned.compute.subgroupexclusiveadd_int16_t_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupexclusivemul_int16_t
+dEQP-VK.subgroups.partitioned.compute.subgroupexclusivemul_int16_t_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupexclusivemin_int16_t
+dEQP-VK.subgroups.partitioned.compute.subgroupexclusivemin_int16_t_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupexclusivemax_int16_t
+dEQP-VK.subgroups.partitioned.compute.subgroupexclusivemax_int16_t_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupexclusiveand_int16_t
+dEQP-VK.subgroups.partitioned.compute.subgroupexclusiveand_int16_t_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupexclusiveor_int16_t
+dEQP-VK.subgroups.partitioned.compute.subgroupexclusiveor_int16_t_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupexclusivexor_int16_t
+dEQP-VK.subgroups.partitioned.compute.subgroupexclusivexor_int16_t_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupadd_i16vec2
+dEQP-VK.subgroups.partitioned.compute.subgroupadd_i16vec2_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupmul_i16vec2
+dEQP-VK.subgroups.partitioned.compute.subgroupmul_i16vec2_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupmin_i16vec2
+dEQP-VK.subgroups.partitioned.compute.subgroupmin_i16vec2_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupmax_i16vec2
+dEQP-VK.subgroups.partitioned.compute.subgroupmax_i16vec2_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupand_i16vec2
+dEQP-VK.subgroups.partitioned.compute.subgroupand_i16vec2_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupor_i16vec2
+dEQP-VK.subgroups.partitioned.compute.subgroupor_i16vec2_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupxor_i16vec2
+dEQP-VK.subgroups.partitioned.compute.subgroupxor_i16vec2_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupinclusiveadd_i16vec2
+dEQP-VK.subgroups.partitioned.compute.subgroupinclusiveadd_i16vec2_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupinclusivemul_i16vec2
+dEQP-VK.subgroups.partitioned.compute.subgroupinclusivemul_i16vec2_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupinclusivemin_i16vec2
+dEQP-VK.subgroups.partitioned.compute.subgroupinclusivemin_i16vec2_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupinclusivemax_i16vec2
+dEQP-VK.subgroups.partitioned.compute.subgroupinclusivemax_i16vec2_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupinclusiveand_i16vec2
+dEQP-VK.subgroups.partitioned.compute.subgroupinclusiveand_i16vec2_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupinclusiveor_i16vec2
+dEQP-VK.subgroups.partitioned.compute.subgroupinclusiveor_i16vec2_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupinclusivexor_i16vec2
+dEQP-VK.subgroups.partitioned.compute.subgroupinclusivexor_i16vec2_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupexclusiveadd_i16vec2
+dEQP-VK.subgroups.partitioned.compute.subgroupexclusiveadd_i16vec2_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupexclusivemul_i16vec2
+dEQP-VK.subgroups.partitioned.compute.subgroupexclusivemul_i16vec2_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupexclusivemin_i16vec2
+dEQP-VK.subgroups.partitioned.compute.subgroupexclusivemin_i16vec2_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupexclusivemax_i16vec2
+dEQP-VK.subgroups.partitioned.compute.subgroupexclusivemax_i16vec2_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupexclusiveand_i16vec2
+dEQP-VK.subgroups.partitioned.compute.subgroupexclusiveand_i16vec2_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupexclusiveor_i16vec2
+dEQP-VK.subgroups.partitioned.compute.subgroupexclusiveor_i16vec2_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupexclusivexor_i16vec2
+dEQP-VK.subgroups.partitioned.compute.subgroupexclusivexor_i16vec2_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupadd_i16vec3
+dEQP-VK.subgroups.partitioned.compute.subgroupadd_i16vec3_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupmul_i16vec3
+dEQP-VK.subgroups.partitioned.compute.subgroupmul_i16vec3_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupmin_i16vec3
+dEQP-VK.subgroups.partitioned.compute.subgroupmin_i16vec3_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupmax_i16vec3
+dEQP-VK.subgroups.partitioned.compute.subgroupmax_i16vec3_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupand_i16vec3
+dEQP-VK.subgroups.partitioned.compute.subgroupand_i16vec3_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupor_i16vec3
+dEQP-VK.subgroups.partitioned.compute.subgroupor_i16vec3_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupxor_i16vec3
+dEQP-VK.subgroups.partitioned.compute.subgroupxor_i16vec3_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupinclusiveadd_i16vec3
+dEQP-VK.subgroups.partitioned.compute.subgroupinclusiveadd_i16vec3_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupinclusivemul_i16vec3
+dEQP-VK.subgroups.partitioned.compute.subgroupinclusivemul_i16vec3_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupinclusivemin_i16vec3
+dEQP-VK.subgroups.partitioned.compute.subgroupinclusivemin_i16vec3_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupinclusivemax_i16vec3
+dEQP-VK.subgroups.partitioned.compute.subgroupinclusivemax_i16vec3_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupinclusiveand_i16vec3
+dEQP-VK.subgroups.partitioned.compute.subgroupinclusiveand_i16vec3_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupinclusiveor_i16vec3
+dEQP-VK.subgroups.partitioned.compute.subgroupinclusiveor_i16vec3_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupinclusivexor_i16vec3
+dEQP-VK.subgroups.partitioned.compute.subgroupinclusivexor_i16vec3_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupexclusiveadd_i16vec3
+dEQP-VK.subgroups.partitioned.compute.subgroupexclusiveadd_i16vec3_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupexclusivemul_i16vec3
+dEQP-VK.subgroups.partitioned.compute.subgroupexclusivemul_i16vec3_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupexclusivemin_i16vec3
+dEQP-VK.subgroups.partitioned.compute.subgroupexclusivemin_i16vec3_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupexclusivemax_i16vec3
+dEQP-VK.subgroups.partitioned.compute.subgroupexclusivemax_i16vec3_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupexclusiveand_i16vec3
+dEQP-VK.subgroups.partitioned.compute.subgroupexclusiveand_i16vec3_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupexclusiveor_i16vec3
+dEQP-VK.subgroups.partitioned.compute.subgroupexclusiveor_i16vec3_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupexclusivexor_i16vec3
+dEQP-VK.subgroups.partitioned.compute.subgroupexclusivexor_i16vec3_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupadd_i16vec4
+dEQP-VK.subgroups.partitioned.compute.subgroupadd_i16vec4_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupmul_i16vec4
+dEQP-VK.subgroups.partitioned.compute.subgroupmul_i16vec4_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupmin_i16vec4
+dEQP-VK.subgroups.partitioned.compute.subgroupmin_i16vec4_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupmax_i16vec4
+dEQP-VK.subgroups.partitioned.compute.subgroupmax_i16vec4_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupand_i16vec4
+dEQP-VK.subgroups.partitioned.compute.subgroupand_i16vec4_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupor_i16vec4
+dEQP-VK.subgroups.partitioned.compute.subgroupor_i16vec4_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupxor_i16vec4
+dEQP-VK.subgroups.partitioned.compute.subgroupxor_i16vec4_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupinclusiveadd_i16vec4
+dEQP-VK.subgroups.partitioned.compute.subgroupinclusiveadd_i16vec4_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupinclusivemul_i16vec4
+dEQP-VK.subgroups.partitioned.compute.subgroupinclusivemul_i16vec4_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupinclusivemin_i16vec4
+dEQP-VK.subgroups.partitioned.compute.subgroupinclusivemin_i16vec4_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupinclusivemax_i16vec4
+dEQP-VK.subgroups.partitioned.compute.subgroupinclusivemax_i16vec4_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupinclusiveand_i16vec4
+dEQP-VK.subgroups.partitioned.compute.subgroupinclusiveand_i16vec4_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupinclusiveor_i16vec4
+dEQP-VK.subgroups.partitioned.compute.subgroupinclusiveor_i16vec4_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupinclusivexor_i16vec4
+dEQP-VK.subgroups.partitioned.compute.subgroupinclusivexor_i16vec4_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupexclusiveadd_i16vec4
+dEQP-VK.subgroups.partitioned.compute.subgroupexclusiveadd_i16vec4_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupexclusivemul_i16vec4
+dEQP-VK.subgroups.partitioned.compute.subgroupexclusivemul_i16vec4_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupexclusivemin_i16vec4
+dEQP-VK.subgroups.partitioned.compute.subgroupexclusivemin_i16vec4_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupexclusivemax_i16vec4
+dEQP-VK.subgroups.partitioned.compute.subgroupexclusivemax_i16vec4_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupexclusiveand_i16vec4
+dEQP-VK.subgroups.partitioned.compute.subgroupexclusiveand_i16vec4_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupexclusiveor_i16vec4
+dEQP-VK.subgroups.partitioned.compute.subgroupexclusiveor_i16vec4_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupexclusivexor_i16vec4
+dEQP-VK.subgroups.partitioned.compute.subgroupexclusivexor_i16vec4_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupadd_uint16_t
+dEQP-VK.subgroups.partitioned.compute.subgroupadd_uint16_t_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupmul_uint16_t
+dEQP-VK.subgroups.partitioned.compute.subgroupmul_uint16_t_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupmin_uint16_t
+dEQP-VK.subgroups.partitioned.compute.subgroupmin_uint16_t_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupmax_uint16_t
+dEQP-VK.subgroups.partitioned.compute.subgroupmax_uint16_t_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupand_uint16_t
+dEQP-VK.subgroups.partitioned.compute.subgroupand_uint16_t_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupor_uint16_t
+dEQP-VK.subgroups.partitioned.compute.subgroupor_uint16_t_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupxor_uint16_t
+dEQP-VK.subgroups.partitioned.compute.subgroupxor_uint16_t_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupinclusiveadd_uint16_t
+dEQP-VK.subgroups.partitioned.compute.subgroupinclusiveadd_uint16_t_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupinclusivemul_uint16_t
+dEQP-VK.subgroups.partitioned.compute.subgroupinclusivemul_uint16_t_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupinclusivemin_uint16_t
+dEQP-VK.subgroups.partitioned.compute.subgroupinclusivemin_uint16_t_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupinclusivemax_uint16_t
+dEQP-VK.subgroups.partitioned.compute.subgroupinclusivemax_uint16_t_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupinclusiveand_uint16_t
+dEQP-VK.subgroups.partitioned.compute.subgroupinclusiveand_uint16_t_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupinclusiveor_uint16_t
+dEQP-VK.subgroups.partitioned.compute.subgroupinclusiveor_uint16_t_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupinclusivexor_uint16_t
+dEQP-VK.subgroups.partitioned.compute.subgroupinclusivexor_uint16_t_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupexclusiveadd_uint16_t
+dEQP-VK.subgroups.partitioned.compute.subgroupexclusiveadd_uint16_t_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupexclusivemul_uint16_t
+dEQP-VK.subgroups.partitioned.compute.subgroupexclusivemul_uint16_t_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupexclusivemin_uint16_t
+dEQP-VK.subgroups.partitioned.compute.subgroupexclusivemin_uint16_t_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupexclusivemax_uint16_t
+dEQP-VK.subgroups.partitioned.compute.subgroupexclusivemax_uint16_t_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupexclusiveand_uint16_t
+dEQP-VK.subgroups.partitioned.compute.subgroupexclusiveand_uint16_t_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupexclusiveor_uint16_t
+dEQP-VK.subgroups.partitioned.compute.subgroupexclusiveor_uint16_t_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupexclusivexor_uint16_t
+dEQP-VK.subgroups.partitioned.compute.subgroupexclusivexor_uint16_t_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupadd_u16vec2
+dEQP-VK.subgroups.partitioned.compute.subgroupadd_u16vec2_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupmul_u16vec2
+dEQP-VK.subgroups.partitioned.compute.subgroupmul_u16vec2_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupmin_u16vec2
+dEQP-VK.subgroups.partitioned.compute.subgroupmin_u16vec2_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupmax_u16vec2
+dEQP-VK.subgroups.partitioned.compute.subgroupmax_u16vec2_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupand_u16vec2
+dEQP-VK.subgroups.partitioned.compute.subgroupand_u16vec2_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupor_u16vec2
+dEQP-VK.subgroups.partitioned.compute.subgroupor_u16vec2_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupxor_u16vec2
+dEQP-VK.subgroups.partitioned.compute.subgroupxor_u16vec2_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupinclusiveadd_u16vec2
+dEQP-VK.subgroups.partitioned.compute.subgroupinclusiveadd_u16vec2_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupinclusivemul_u16vec2
+dEQP-VK.subgroups.partitioned.compute.subgroupinclusivemul_u16vec2_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupinclusivemin_u16vec2
+dEQP-VK.subgroups.partitioned.compute.subgroupinclusivemin_u16vec2_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupinclusivemax_u16vec2
+dEQP-VK.subgroups.partitioned.compute.subgroupinclusivemax_u16vec2_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupinclusiveand_u16vec2
+dEQP-VK.subgroups.partitioned.compute.subgroupinclusiveand_u16vec2_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupinclusiveor_u16vec2
+dEQP-VK.subgroups.partitioned.compute.subgroupinclusiveor_u16vec2_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupinclusivexor_u16vec2
+dEQP-VK.subgroups.partitioned.compute.subgroupinclusivexor_u16vec2_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupexclusiveadd_u16vec2
+dEQP-VK.subgroups.partitioned.compute.subgroupexclusiveadd_u16vec2_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupexclusivemul_u16vec2
+dEQP-VK.subgroups.partitioned.compute.subgroupexclusivemul_u16vec2_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupexclusivemin_u16vec2
+dEQP-VK.subgroups.partitioned.compute.subgroupexclusivemin_u16vec2_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupexclusivemax_u16vec2
+dEQP-VK.subgroups.partitioned.compute.subgroupexclusivemax_u16vec2_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupexclusiveand_u16vec2
+dEQP-VK.subgroups.partitioned.compute.subgroupexclusiveand_u16vec2_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupexclusiveor_u16vec2
+dEQP-VK.subgroups.partitioned.compute.subgroupexclusiveor_u16vec2_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupexclusivexor_u16vec2
+dEQP-VK.subgroups.partitioned.compute.subgroupexclusivexor_u16vec2_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupadd_u16vec3
+dEQP-VK.subgroups.partitioned.compute.subgroupadd_u16vec3_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupmul_u16vec3
+dEQP-VK.subgroups.partitioned.compute.subgroupmul_u16vec3_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupmin_u16vec3
+dEQP-VK.subgroups.partitioned.compute.subgroupmin_u16vec3_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupmax_u16vec3
+dEQP-VK.subgroups.partitioned.compute.subgroupmax_u16vec3_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupand_u16vec3
+dEQP-VK.subgroups.partitioned.compute.subgroupand_u16vec3_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupor_u16vec3
+dEQP-VK.subgroups.partitioned.compute.subgroupor_u16vec3_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupxor_u16vec3
+dEQP-VK.subgroups.partitioned.compute.subgroupxor_u16vec3_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupinclusiveadd_u16vec3
+dEQP-VK.subgroups.partitioned.compute.subgroupinclusiveadd_u16vec3_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupinclusivemul_u16vec3
+dEQP-VK.subgroups.partitioned.compute.subgroupinclusivemul_u16vec3_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupinclusivemin_u16vec3
+dEQP-VK.subgroups.partitioned.compute.subgroupinclusivemin_u16vec3_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupinclusivemax_u16vec3
+dEQP-VK.subgroups.partitioned.compute.subgroupinclusivemax_u16vec3_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupinclusiveand_u16vec3
+dEQP-VK.subgroups.partitioned.compute.subgroupinclusiveand_u16vec3_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupinclusiveor_u16vec3
+dEQP-VK.subgroups.partitioned.compute.subgroupinclusiveor_u16vec3_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupinclusivexor_u16vec3
+dEQP-VK.subgroups.partitioned.compute.subgroupinclusivexor_u16vec3_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupexclusiveadd_u16vec3
+dEQP-VK.subgroups.partitioned.compute.subgroupexclusiveadd_u16vec3_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupexclusivemul_u16vec3
+dEQP-VK.subgroups.partitioned.compute.subgroupexclusivemul_u16vec3_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupexclusivemin_u16vec3
+dEQP-VK.subgroups.partitioned.compute.subgroupexclusivemin_u16vec3_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupexclusivemax_u16vec3
+dEQP-VK.subgroups.partitioned.compute.subgroupexclusivemax_u16vec3_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupexclusiveand_u16vec3
+dEQP-VK.subgroups.partitioned.compute.subgroupexclusiveand_u16vec3_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupexclusiveor_u16vec3
+dEQP-VK.subgroups.partitioned.compute.subgroupexclusiveor_u16vec3_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupexclusivexor_u16vec3
+dEQP-VK.subgroups.partitioned.compute.subgroupexclusivexor_u16vec3_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupadd_u16vec4
+dEQP-VK.subgroups.partitioned.compute.subgroupadd_u16vec4_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupmul_u16vec4
+dEQP-VK.subgroups.partitioned.compute.subgroupmul_u16vec4_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupmin_u16vec4
+dEQP-VK.subgroups.partitioned.compute.subgroupmin_u16vec4_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupmax_u16vec4
+dEQP-VK.subgroups.partitioned.compute.subgroupmax_u16vec4_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupand_u16vec4
+dEQP-VK.subgroups.partitioned.compute.subgroupand_u16vec4_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupor_u16vec4
+dEQP-VK.subgroups.partitioned.compute.subgroupor_u16vec4_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupxor_u16vec4
+dEQP-VK.subgroups.partitioned.compute.subgroupxor_u16vec4_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupinclusiveadd_u16vec4
+dEQP-VK.subgroups.partitioned.compute.subgroupinclusiveadd_u16vec4_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupinclusivemul_u16vec4
+dEQP-VK.subgroups.partitioned.compute.subgroupinclusivemul_u16vec4_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupinclusivemin_u16vec4
+dEQP-VK.subgroups.partitioned.compute.subgroupinclusivemin_u16vec4_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupinclusivemax_u16vec4
+dEQP-VK.subgroups.partitioned.compute.subgroupinclusivemax_u16vec4_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupinclusiveand_u16vec4
+dEQP-VK.subgroups.partitioned.compute.subgroupinclusiveand_u16vec4_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupinclusiveor_u16vec4
+dEQP-VK.subgroups.partitioned.compute.subgroupinclusiveor_u16vec4_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupinclusivexor_u16vec4
+dEQP-VK.subgroups.partitioned.compute.subgroupinclusivexor_u16vec4_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupexclusiveadd_u16vec4
+dEQP-VK.subgroups.partitioned.compute.subgroupexclusiveadd_u16vec4_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupexclusivemul_u16vec4
+dEQP-VK.subgroups.partitioned.compute.subgroupexclusivemul_u16vec4_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupexclusivemin_u16vec4
+dEQP-VK.subgroups.partitioned.compute.subgroupexclusivemin_u16vec4_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupexclusivemax_u16vec4
+dEQP-VK.subgroups.partitioned.compute.subgroupexclusivemax_u16vec4_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupexclusiveand_u16vec4
+dEQP-VK.subgroups.partitioned.compute.subgroupexclusiveand_u16vec4_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupexclusiveor_u16vec4
+dEQP-VK.subgroups.partitioned.compute.subgroupexclusiveor_u16vec4_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupexclusivexor_u16vec4
+dEQP-VK.subgroups.partitioned.compute.subgroupexclusivexor_u16vec4_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupadd_int
+dEQP-VK.subgroups.partitioned.compute.subgroupadd_int_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupmul_int
+dEQP-VK.subgroups.partitioned.compute.subgroupmul_int_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupmin_int
+dEQP-VK.subgroups.partitioned.compute.subgroupmin_int_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupmax_int
+dEQP-VK.subgroups.partitioned.compute.subgroupmax_int_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupand_int
+dEQP-VK.subgroups.partitioned.compute.subgroupand_int_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupor_int
+dEQP-VK.subgroups.partitioned.compute.subgroupor_int_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupxor_int
+dEQP-VK.subgroups.partitioned.compute.subgroupxor_int_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupinclusiveadd_int
+dEQP-VK.subgroups.partitioned.compute.subgroupinclusiveadd_int_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupinclusivemul_int
+dEQP-VK.subgroups.partitioned.compute.subgroupinclusivemul_int_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupinclusivemin_int
+dEQP-VK.subgroups.partitioned.compute.subgroupinclusivemin_int_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupinclusivemax_int
+dEQP-VK.subgroups.partitioned.compute.subgroupinclusivemax_int_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupinclusiveand_int
+dEQP-VK.subgroups.partitioned.compute.subgroupinclusiveand_int_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupinclusiveor_int
+dEQP-VK.subgroups.partitioned.compute.subgroupinclusiveor_int_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupinclusivexor_int
+dEQP-VK.subgroups.partitioned.compute.subgroupinclusivexor_int_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupexclusiveadd_int
+dEQP-VK.subgroups.partitioned.compute.subgroupexclusiveadd_int_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupexclusivemul_int
+dEQP-VK.subgroups.partitioned.compute.subgroupexclusivemul_int_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupexclusivemin_int
+dEQP-VK.subgroups.partitioned.compute.subgroupexclusivemin_int_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupexclusivemax_int
+dEQP-VK.subgroups.partitioned.compute.subgroupexclusivemax_int_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupexclusiveand_int
+dEQP-VK.subgroups.partitioned.compute.subgroupexclusiveand_int_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupexclusiveor_int
+dEQP-VK.subgroups.partitioned.compute.subgroupexclusiveor_int_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupexclusivexor_int
+dEQP-VK.subgroups.partitioned.compute.subgroupexclusivexor_int_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupadd_ivec2
+dEQP-VK.subgroups.partitioned.compute.subgroupadd_ivec2_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupmul_ivec2
+dEQP-VK.subgroups.partitioned.compute.subgroupmul_ivec2_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupmin_ivec2
+dEQP-VK.subgroups.partitioned.compute.subgroupmin_ivec2_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupmax_ivec2
+dEQP-VK.subgroups.partitioned.compute.subgroupmax_ivec2_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupand_ivec2
+dEQP-VK.subgroups.partitioned.compute.subgroupand_ivec2_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupor_ivec2
+dEQP-VK.subgroups.partitioned.compute.subgroupor_ivec2_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupxor_ivec2
+dEQP-VK.subgroups.partitioned.compute.subgroupxor_ivec2_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupinclusiveadd_ivec2
+dEQP-VK.subgroups.partitioned.compute.subgroupinclusiveadd_ivec2_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupinclusivemul_ivec2
+dEQP-VK.subgroups.partitioned.compute.subgroupinclusivemul_ivec2_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupinclusivemin_ivec2
+dEQP-VK.subgroups.partitioned.compute.subgroupinclusivemin_ivec2_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupinclusivemax_ivec2
+dEQP-VK.subgroups.partitioned.compute.subgroupinclusivemax_ivec2_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupinclusiveand_ivec2
+dEQP-VK.subgroups.partitioned.compute.subgroupinclusiveand_ivec2_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupinclusiveor_ivec2
+dEQP-VK.subgroups.partitioned.compute.subgroupinclusiveor_ivec2_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupinclusivexor_ivec2
+dEQP-VK.subgroups.partitioned.compute.subgroupinclusivexor_ivec2_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupexclusiveadd_ivec2
+dEQP-VK.subgroups.partitioned.compute.subgroupexclusiveadd_ivec2_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupexclusivemul_ivec2
+dEQP-VK.subgroups.partitioned.compute.subgroupexclusivemul_ivec2_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupexclusivemin_ivec2
+dEQP-VK.subgroups.partitioned.compute.subgroupexclusivemin_ivec2_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupexclusivemax_ivec2
+dEQP-VK.subgroups.partitioned.compute.subgroupexclusivemax_ivec2_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupexclusiveand_ivec2
+dEQP-VK.subgroups.partitioned.compute.subgroupexclusiveand_ivec2_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupexclusiveor_ivec2
+dEQP-VK.subgroups.partitioned.compute.subgroupexclusiveor_ivec2_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupexclusivexor_ivec2
+dEQP-VK.subgroups.partitioned.compute.subgroupexclusivexor_ivec2_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupadd_ivec3
+dEQP-VK.subgroups.partitioned.compute.subgroupadd_ivec3_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupmul_ivec3
+dEQP-VK.subgroups.partitioned.compute.subgroupmul_ivec3_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupmin_ivec3
+dEQP-VK.subgroups.partitioned.compute.subgroupmin_ivec3_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupmax_ivec3
+dEQP-VK.subgroups.partitioned.compute.subgroupmax_ivec3_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupand_ivec3
+dEQP-VK.subgroups.partitioned.compute.subgroupand_ivec3_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupor_ivec3
+dEQP-VK.subgroups.partitioned.compute.subgroupor_ivec3_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupxor_ivec3
+dEQP-VK.subgroups.partitioned.compute.subgroupxor_ivec3_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupinclusiveadd_ivec3
+dEQP-VK.subgroups.partitioned.compute.subgroupinclusiveadd_ivec3_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupinclusivemul_ivec3
+dEQP-VK.subgroups.partitioned.compute.subgroupinclusivemul_ivec3_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupinclusivemin_ivec3
+dEQP-VK.subgroups.partitioned.compute.subgroupinclusivemin_ivec3_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupinclusivemax_ivec3
+dEQP-VK.subgroups.partitioned.compute.subgroupinclusivemax_ivec3_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupinclusiveand_ivec3
+dEQP-VK.subgroups.partitioned.compute.subgroupinclusiveand_ivec3_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupinclusiveor_ivec3
+dEQP-VK.subgroups.partitioned.compute.subgroupinclusiveor_ivec3_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupinclusivexor_ivec3
+dEQP-VK.subgroups.partitioned.compute.subgroupinclusivexor_ivec3_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupexclusiveadd_ivec3
+dEQP-VK.subgroups.partitioned.compute.subgroupexclusiveadd_ivec3_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupexclusivemul_ivec3
+dEQP-VK.subgroups.partitioned.compute.subgroupexclusivemul_ivec3_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupexclusivemin_ivec3
+dEQP-VK.subgroups.partitioned.compute.subgroupexclusivemin_ivec3_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupexclusivemax_ivec3
+dEQP-VK.subgroups.partitioned.compute.subgroupexclusivemax_ivec3_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupexclusiveand_ivec3
+dEQP-VK.subgroups.partitioned.compute.subgroupexclusiveand_ivec3_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupexclusiveor_ivec3
+dEQP-VK.subgroups.partitioned.compute.subgroupexclusiveor_ivec3_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupexclusivexor_ivec3
+dEQP-VK.subgroups.partitioned.compute.subgroupexclusivexor_ivec3_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupadd_ivec4
+dEQP-VK.subgroups.partitioned.compute.subgroupadd_ivec4_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupmul_ivec4
+dEQP-VK.subgroups.partitioned.compute.subgroupmul_ivec4_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupmin_ivec4
+dEQP-VK.subgroups.partitioned.compute.subgroupmin_ivec4_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupmax_ivec4
+dEQP-VK.subgroups.partitioned.compute.subgroupmax_ivec4_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupand_ivec4
+dEQP-VK.subgroups.partitioned.compute.subgroupand_ivec4_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupor_ivec4
+dEQP-VK.subgroups.partitioned.compute.subgroupor_ivec4_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupxor_ivec4
+dEQP-VK.subgroups.partitioned.compute.subgroupxor_ivec4_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupinclusiveadd_ivec4
+dEQP-VK.subgroups.partitioned.compute.subgroupinclusiveadd_ivec4_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupinclusivemul_ivec4
+dEQP-VK.subgroups.partitioned.compute.subgroupinclusivemul_ivec4_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupinclusivemin_ivec4
+dEQP-VK.subgroups.partitioned.compute.subgroupinclusivemin_ivec4_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupinclusivemax_ivec4
+dEQP-VK.subgroups.partitioned.compute.subgroupinclusivemax_ivec4_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupinclusiveand_ivec4
+dEQP-VK.subgroups.partitioned.compute.subgroupinclusiveand_ivec4_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupinclusiveor_ivec4
+dEQP-VK.subgroups.partitioned.compute.subgroupinclusiveor_ivec4_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupinclusivexor_ivec4
+dEQP-VK.subgroups.partitioned.compute.subgroupinclusivexor_ivec4_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupexclusiveadd_ivec4
+dEQP-VK.subgroups.partitioned.compute.subgroupexclusiveadd_ivec4_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupexclusivemul_ivec4
+dEQP-VK.subgroups.partitioned.compute.subgroupexclusivemul_ivec4_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupexclusivemin_ivec4
+dEQP-VK.subgroups.partitioned.compute.subgroupexclusivemin_ivec4_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupexclusivemax_ivec4
+dEQP-VK.subgroups.partitioned.compute.subgroupexclusivemax_ivec4_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupexclusiveand_ivec4
+dEQP-VK.subgroups.partitioned.compute.subgroupexclusiveand_ivec4_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupexclusiveor_ivec4
+dEQP-VK.subgroups.partitioned.compute.subgroupexclusiveor_ivec4_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupexclusivexor_ivec4
+dEQP-VK.subgroups.partitioned.compute.subgroupexclusivexor_ivec4_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupadd_uint
+dEQP-VK.subgroups.partitioned.compute.subgroupadd_uint_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupmul_uint
+dEQP-VK.subgroups.partitioned.compute.subgroupmul_uint_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupmin_uint
+dEQP-VK.subgroups.partitioned.compute.subgroupmin_uint_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupmax_uint
+dEQP-VK.subgroups.partitioned.compute.subgroupmax_uint_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupand_uint
+dEQP-VK.subgroups.partitioned.compute.subgroupand_uint_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupor_uint
+dEQP-VK.subgroups.partitioned.compute.subgroupor_uint_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupxor_uint
+dEQP-VK.subgroups.partitioned.compute.subgroupxor_uint_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupinclusiveadd_uint
+dEQP-VK.subgroups.partitioned.compute.subgroupinclusiveadd_uint_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupinclusivemul_uint
+dEQP-VK.subgroups.partitioned.compute.subgroupinclusivemul_uint_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupinclusivemin_uint
+dEQP-VK.subgroups.partitioned.compute.subgroupinclusivemin_uint_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupinclusivemax_uint
+dEQP-VK.subgroups.partitioned.compute.subgroupinclusivemax_uint_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupinclusiveand_uint
+dEQP-VK.subgroups.partitioned.compute.subgroupinclusiveand_uint_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupinclusiveor_uint
+dEQP-VK.subgroups.partitioned.compute.subgroupinclusiveor_uint_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupinclusivexor_uint
+dEQP-VK.subgroups.partitioned.compute.subgroupinclusivexor_uint_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupexclusiveadd_uint
+dEQP-VK.subgroups.partitioned.compute.subgroupexclusiveadd_uint_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupexclusivemul_uint
+dEQP-VK.subgroups.partitioned.compute.subgroupexclusivemul_uint_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupexclusivemin_uint
+dEQP-VK.subgroups.partitioned.compute.subgroupexclusivemin_uint_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupexclusivemax_uint
+dEQP-VK.subgroups.partitioned.compute.subgroupexclusivemax_uint_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupexclusiveand_uint
+dEQP-VK.subgroups.partitioned.compute.subgroupexclusiveand_uint_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupexclusiveor_uint
+dEQP-VK.subgroups.partitioned.compute.subgroupexclusiveor_uint_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupexclusivexor_uint
+dEQP-VK.subgroups.partitioned.compute.subgroupexclusivexor_uint_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupadd_uvec2
+dEQP-VK.subgroups.partitioned.compute.subgroupadd_uvec2_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupmul_uvec2
+dEQP-VK.subgroups.partitioned.compute.subgroupmul_uvec2_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupmin_uvec2
+dEQP-VK.subgroups.partitioned.compute.subgroupmin_uvec2_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupmax_uvec2
+dEQP-VK.subgroups.partitioned.compute.subgroupmax_uvec2_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupand_uvec2
+dEQP-VK.subgroups.partitioned.compute.subgroupand_uvec2_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupor_uvec2
+dEQP-VK.subgroups.partitioned.compute.subgroupor_uvec2_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupxor_uvec2
+dEQP-VK.subgroups.partitioned.compute.subgroupxor_uvec2_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupinclusiveadd_uvec2
+dEQP-VK.subgroups.partitioned.compute.subgroupinclusiveadd_uvec2_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupinclusivemul_uvec2
+dEQP-VK.subgroups.partitioned.compute.subgroupinclusivemul_uvec2_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupinclusivemin_uvec2
+dEQP-VK.subgroups.partitioned.compute.subgroupinclusivemin_uvec2_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupinclusivemax_uvec2
+dEQP-VK.subgroups.partitioned.compute.subgroupinclusivemax_uvec2_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupinclusiveand_uvec2
+dEQP-VK.subgroups.partitioned.compute.subgroupinclusiveand_uvec2_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupinclusiveor_uvec2
+dEQP-VK.subgroups.partitioned.compute.subgroupinclusiveor_uvec2_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupinclusivexor_uvec2
+dEQP-VK.subgroups.partitioned.compute.subgroupinclusivexor_uvec2_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupexclusiveadd_uvec2
+dEQP-VK.subgroups.partitioned.compute.subgroupexclusiveadd_uvec2_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupexclusivemul_uvec2
+dEQP-VK.subgroups.partitioned.compute.subgroupexclusivemul_uvec2_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupexclusivemin_uvec2
+dEQP-VK.subgroups.partitioned.compute.subgroupexclusivemin_uvec2_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupexclusivemax_uvec2
+dEQP-VK.subgroups.partitioned.compute.subgroupexclusivemax_uvec2_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupexclusiveand_uvec2
+dEQP-VK.subgroups.partitioned.compute.subgroupexclusiveand_uvec2_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupexclusiveor_uvec2
+dEQP-VK.subgroups.partitioned.compute.subgroupexclusiveor_uvec2_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupexclusivexor_uvec2
+dEQP-VK.subgroups.partitioned.compute.subgroupexclusivexor_uvec2_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupadd_uvec3
+dEQP-VK.subgroups.partitioned.compute.subgroupadd_uvec3_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupmul_uvec3
+dEQP-VK.subgroups.partitioned.compute.subgroupmul_uvec3_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupmin_uvec3
+dEQP-VK.subgroups.partitioned.compute.subgroupmin_uvec3_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupmax_uvec3
+dEQP-VK.subgroups.partitioned.compute.subgroupmax_uvec3_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupand_uvec3
+dEQP-VK.subgroups.partitioned.compute.subgroupand_uvec3_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupor_uvec3
+dEQP-VK.subgroups.partitioned.compute.subgroupor_uvec3_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupxor_uvec3
+dEQP-VK.subgroups.partitioned.compute.subgroupxor_uvec3_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupinclusiveadd_uvec3
+dEQP-VK.subgroups.partitioned.compute.subgroupinclusiveadd_uvec3_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupinclusivemul_uvec3
+dEQP-VK.subgroups.partitioned.compute.subgroupinclusivemul_uvec3_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupinclusivemin_uvec3
+dEQP-VK.subgroups.partitioned.compute.subgroupinclusivemin_uvec3_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupinclusivemax_uvec3
+dEQP-VK.subgroups.partitioned.compute.subgroupinclusivemax_uvec3_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupinclusiveand_uvec3
+dEQP-VK.subgroups.partitioned.compute.subgroupinclusiveand_uvec3_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupinclusiveor_uvec3
+dEQP-VK.subgroups.partitioned.compute.subgroupinclusiveor_uvec3_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupinclusivexor_uvec3
+dEQP-VK.subgroups.partitioned.compute.subgroupinclusivexor_uvec3_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupexclusiveadd_uvec3
+dEQP-VK.subgroups.partitioned.compute.subgroupexclusiveadd_uvec3_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupexclusivemul_uvec3
+dEQP-VK.subgroups.partitioned.compute.subgroupexclusivemul_uvec3_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupexclusivemin_uvec3
+dEQP-VK.subgroups.partitioned.compute.subgroupexclusivemin_uvec3_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupexclusivemax_uvec3
+dEQP-VK.subgroups.partitioned.compute.subgroupexclusivemax_uvec3_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupexclusiveand_uvec3
+dEQP-VK.subgroups.partitioned.compute.subgroupexclusiveand_uvec3_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupexclusiveor_uvec3
+dEQP-VK.subgroups.partitioned.compute.subgroupexclusiveor_uvec3_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupexclusivexor_uvec3
+dEQP-VK.subgroups.partitioned.compute.subgroupexclusivexor_uvec3_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupadd_uvec4
+dEQP-VK.subgroups.partitioned.compute.subgroupadd_uvec4_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupmul_uvec4
+dEQP-VK.subgroups.partitioned.compute.subgroupmul_uvec4_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupmin_uvec4
+dEQP-VK.subgroups.partitioned.compute.subgroupmin_uvec4_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupmax_uvec4
+dEQP-VK.subgroups.partitioned.compute.subgroupmax_uvec4_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupand_uvec4
+dEQP-VK.subgroups.partitioned.compute.subgroupand_uvec4_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupor_uvec4
+dEQP-VK.subgroups.partitioned.compute.subgroupor_uvec4_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupxor_uvec4
+dEQP-VK.subgroups.partitioned.compute.subgroupxor_uvec4_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupinclusiveadd_uvec4
+dEQP-VK.subgroups.partitioned.compute.subgroupinclusiveadd_uvec4_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupinclusivemul_uvec4
+dEQP-VK.subgroups.partitioned.compute.subgroupinclusivemul_uvec4_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupinclusivemin_uvec4
+dEQP-VK.subgroups.partitioned.compute.subgroupinclusivemin_uvec4_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupinclusivemax_uvec4
+dEQP-VK.subgroups.partitioned.compute.subgroupinclusivemax_uvec4_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupinclusiveand_uvec4
+dEQP-VK.subgroups.partitioned.compute.subgroupinclusiveand_uvec4_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupinclusiveor_uvec4
+dEQP-VK.subgroups.partitioned.compute.subgroupinclusiveor_uvec4_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupinclusivexor_uvec4
+dEQP-VK.subgroups.partitioned.compute.subgroupinclusivexor_uvec4_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupexclusiveadd_uvec4
+dEQP-VK.subgroups.partitioned.compute.subgroupexclusiveadd_uvec4_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupexclusivemul_uvec4
+dEQP-VK.subgroups.partitioned.compute.subgroupexclusivemul_uvec4_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupexclusivemin_uvec4
+dEQP-VK.subgroups.partitioned.compute.subgroupexclusivemin_uvec4_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupexclusivemax_uvec4
+dEQP-VK.subgroups.partitioned.compute.subgroupexclusivemax_uvec4_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupexclusiveand_uvec4
+dEQP-VK.subgroups.partitioned.compute.subgroupexclusiveand_uvec4_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupexclusiveor_uvec4
+dEQP-VK.subgroups.partitioned.compute.subgroupexclusiveor_uvec4_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupexclusivexor_uvec4
+dEQP-VK.subgroups.partitioned.compute.subgroupexclusivexor_uvec4_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupadd_int64_t
+dEQP-VK.subgroups.partitioned.compute.subgroupadd_int64_t_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupmul_int64_t
+dEQP-VK.subgroups.partitioned.compute.subgroupmul_int64_t_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupmin_int64_t
+dEQP-VK.subgroups.partitioned.compute.subgroupmin_int64_t_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupmax_int64_t
+dEQP-VK.subgroups.partitioned.compute.subgroupmax_int64_t_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupand_int64_t
+dEQP-VK.subgroups.partitioned.compute.subgroupand_int64_t_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupor_int64_t
+dEQP-VK.subgroups.partitioned.compute.subgroupor_int64_t_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupxor_int64_t
+dEQP-VK.subgroups.partitioned.compute.subgroupxor_int64_t_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupinclusiveadd_int64_t
+dEQP-VK.subgroups.partitioned.compute.subgroupinclusiveadd_int64_t_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupinclusivemul_int64_t
+dEQP-VK.subgroups.partitioned.compute.subgroupinclusivemul_int64_t_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupinclusivemin_int64_t
+dEQP-VK.subgroups.partitioned.compute.subgroupinclusivemin_int64_t_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupinclusivemax_int64_t
+dEQP-VK.subgroups.partitioned.compute.subgroupinclusivemax_int64_t_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupinclusiveand_int64_t
+dEQP-VK.subgroups.partitioned.compute.subgroupinclusiveand_int64_t_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupinclusiveor_int64_t
+dEQP-VK.subgroups.partitioned.compute.subgroupinclusiveor_int64_t_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupinclusivexor_int64_t
+dEQP-VK.subgroups.partitioned.compute.subgroupinclusivexor_int64_t_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupexclusiveadd_int64_t
+dEQP-VK.subgroups.partitioned.compute.subgroupexclusiveadd_int64_t_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupexclusivemul_int64_t
+dEQP-VK.subgroups.partitioned.compute.subgroupexclusivemul_int64_t_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupexclusivemin_int64_t
+dEQP-VK.subgroups.partitioned.compute.subgroupexclusivemin_int64_t_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupexclusivemax_int64_t
+dEQP-VK.subgroups.partitioned.compute.subgroupexclusivemax_int64_t_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupexclusiveand_int64_t
+dEQP-VK.subgroups.partitioned.compute.subgroupexclusiveand_int64_t_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupexclusiveor_int64_t
+dEQP-VK.subgroups.partitioned.compute.subgroupexclusiveor_int64_t_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupexclusivexor_int64_t
+dEQP-VK.subgroups.partitioned.compute.subgroupexclusivexor_int64_t_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupadd_i64vec2
+dEQP-VK.subgroups.partitioned.compute.subgroupadd_i64vec2_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupmul_i64vec2
+dEQP-VK.subgroups.partitioned.compute.subgroupmul_i64vec2_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupmin_i64vec2
+dEQP-VK.subgroups.partitioned.compute.subgroupmin_i64vec2_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupmax_i64vec2
+dEQP-VK.subgroups.partitioned.compute.subgroupmax_i64vec2_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupand_i64vec2
+dEQP-VK.subgroups.partitioned.compute.subgroupand_i64vec2_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupor_i64vec2
+dEQP-VK.subgroups.partitioned.compute.subgroupor_i64vec2_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupxor_i64vec2
+dEQP-VK.subgroups.partitioned.compute.subgroupxor_i64vec2_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupinclusiveadd_i64vec2
+dEQP-VK.subgroups.partitioned.compute.subgroupinclusiveadd_i64vec2_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupinclusivemul_i64vec2
+dEQP-VK.subgroups.partitioned.compute.subgroupinclusivemul_i64vec2_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupinclusivemin_i64vec2
+dEQP-VK.subgroups.partitioned.compute.subgroupinclusivemin_i64vec2_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupinclusivemax_i64vec2
+dEQP-VK.subgroups.partitioned.compute.subgroupinclusivemax_i64vec2_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupinclusiveand_i64vec2
+dEQP-VK.subgroups.partitioned.compute.subgroupinclusiveand_i64vec2_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupinclusiveor_i64vec2
+dEQP-VK.subgroups.partitioned.compute.subgroupinclusiveor_i64vec2_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupinclusivexor_i64vec2
+dEQP-VK.subgroups.partitioned.compute.subgroupinclusivexor_i64vec2_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupexclusiveadd_i64vec2
+dEQP-VK.subgroups.partitioned.compute.subgroupexclusiveadd_i64vec2_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupexclusivemul_i64vec2
+dEQP-VK.subgroups.partitioned.compute.subgroupexclusivemul_i64vec2_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupexclusivemin_i64vec2
+dEQP-VK.subgroups.partitioned.compute.subgroupexclusivemin_i64vec2_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupexclusivemax_i64vec2
+dEQP-VK.subgroups.partitioned.compute.subgroupexclusivemax_i64vec2_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupexclusiveand_i64vec2
+dEQP-VK.subgroups.partitioned.compute.subgroupexclusiveand_i64vec2_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupexclusiveor_i64vec2
+dEQP-VK.subgroups.partitioned.compute.subgroupexclusiveor_i64vec2_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupexclusivexor_i64vec2
+dEQP-VK.subgroups.partitioned.compute.subgroupexclusivexor_i64vec2_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupadd_i64vec3
+dEQP-VK.subgroups.partitioned.compute.subgroupadd_i64vec3_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupmul_i64vec3
+dEQP-VK.subgroups.partitioned.compute.subgroupmul_i64vec3_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupmin_i64vec3
+dEQP-VK.subgroups.partitioned.compute.subgroupmin_i64vec3_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupmax_i64vec3
+dEQP-VK.subgroups.partitioned.compute.subgroupmax_i64vec3_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupand_i64vec3
+dEQP-VK.subgroups.partitioned.compute.subgroupand_i64vec3_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupor_i64vec3
+dEQP-VK.subgroups.partitioned.compute.subgroupor_i64vec3_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupxor_i64vec3
+dEQP-VK.subgroups.partitioned.compute.subgroupxor_i64vec3_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupinclusiveadd_i64vec3
+dEQP-VK.subgroups.partitioned.compute.subgroupinclusiveadd_i64vec3_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupinclusivemul_i64vec3
+dEQP-VK.subgroups.partitioned.compute.subgroupinclusivemul_i64vec3_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupinclusivemin_i64vec3
+dEQP-VK.subgroups.partitioned.compute.subgroupinclusivemin_i64vec3_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupinclusivemax_i64vec3
+dEQP-VK.subgroups.partitioned.compute.subgroupinclusivemax_i64vec3_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupinclusiveand_i64vec3
+dEQP-VK.subgroups.partitioned.compute.subgroupinclusiveand_i64vec3_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupinclusiveor_i64vec3
+dEQP-VK.subgroups.partitioned.compute.subgroupinclusiveor_i64vec3_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupinclusivexor_i64vec3
+dEQP-VK.subgroups.partitioned.compute.subgroupinclusivexor_i64vec3_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupexclusiveadd_i64vec3
+dEQP-VK.subgroups.partitioned.compute.subgroupexclusiveadd_i64vec3_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupexclusivemul_i64vec3
+dEQP-VK.subgroups.partitioned.compute.subgroupexclusivemul_i64vec3_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupexclusivemin_i64vec3
+dEQP-VK.subgroups.partitioned.compute.subgroupexclusivemin_i64vec3_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupexclusivemax_i64vec3
+dEQP-VK.subgroups.partitioned.compute.subgroupexclusivemax_i64vec3_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupexclusiveand_i64vec3
+dEQP-VK.subgroups.partitioned.compute.subgroupexclusiveand_i64vec3_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupexclusiveor_i64vec3
+dEQP-VK.subgroups.partitioned.compute.subgroupexclusiveor_i64vec3_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupexclusivexor_i64vec3
+dEQP-VK.subgroups.partitioned.compute.subgroupexclusivexor_i64vec3_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupadd_i64vec4
+dEQP-VK.subgroups.partitioned.compute.subgroupadd_i64vec4_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupmul_i64vec4
+dEQP-VK.subgroups.partitioned.compute.subgroupmul_i64vec4_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupmin_i64vec4
+dEQP-VK.subgroups.partitioned.compute.subgroupmin_i64vec4_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupmax_i64vec4
+dEQP-VK.subgroups.partitioned.compute.subgroupmax_i64vec4_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupand_i64vec4
+dEQP-VK.subgroups.partitioned.compute.subgroupand_i64vec4_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupor_i64vec4
+dEQP-VK.subgroups.partitioned.compute.subgroupor_i64vec4_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupxor_i64vec4
+dEQP-VK.subgroups.partitioned.compute.subgroupxor_i64vec4_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupinclusiveadd_i64vec4
+dEQP-VK.subgroups.partitioned.compute.subgroupinclusiveadd_i64vec4_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupinclusivemul_i64vec4
+dEQP-VK.subgroups.partitioned.compute.subgroupinclusivemul_i64vec4_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupinclusivemin_i64vec4
+dEQP-VK.subgroups.partitioned.compute.subgroupinclusivemin_i64vec4_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupinclusivemax_i64vec4
+dEQP-VK.subgroups.partitioned.compute.subgroupinclusivemax_i64vec4_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupinclusiveand_i64vec4
+dEQP-VK.subgroups.partitioned.compute.subgroupinclusiveand_i64vec4_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupinclusiveor_i64vec4
+dEQP-VK.subgroups.partitioned.compute.subgroupinclusiveor_i64vec4_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupinclusivexor_i64vec4
+dEQP-VK.subgroups.partitioned.compute.subgroupinclusivexor_i64vec4_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupexclusiveadd_i64vec4
+dEQP-VK.subgroups.partitioned.compute.subgroupexclusiveadd_i64vec4_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupexclusivemul_i64vec4
+dEQP-VK.subgroups.partitioned.compute.subgroupexclusivemul_i64vec4_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupexclusivemin_i64vec4
+dEQP-VK.subgroups.partitioned.compute.subgroupexclusivemin_i64vec4_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupexclusivemax_i64vec4
+dEQP-VK.subgroups.partitioned.compute.subgroupexclusivemax_i64vec4_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupexclusiveand_i64vec4
+dEQP-VK.subgroups.partitioned.compute.subgroupexclusiveand_i64vec4_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupexclusiveor_i64vec4
+dEQP-VK.subgroups.partitioned.compute.subgroupexclusiveor_i64vec4_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupexclusivexor_i64vec4
+dEQP-VK.subgroups.partitioned.compute.subgroupexclusivexor_i64vec4_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupadd_uint64_t
+dEQP-VK.subgroups.partitioned.compute.subgroupadd_uint64_t_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupmul_uint64_t
+dEQP-VK.subgroups.partitioned.compute.subgroupmul_uint64_t_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupmin_uint64_t
+dEQP-VK.subgroups.partitioned.compute.subgroupmin_uint64_t_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupmax_uint64_t
+dEQP-VK.subgroups.partitioned.compute.subgroupmax_uint64_t_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupand_uint64_t
+dEQP-VK.subgroups.partitioned.compute.subgroupand_uint64_t_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupor_uint64_t
+dEQP-VK.subgroups.partitioned.compute.subgroupor_uint64_t_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupxor_uint64_t
+dEQP-VK.subgroups.partitioned.compute.subgroupxor_uint64_t_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupinclusiveadd_uint64_t
+dEQP-VK.subgroups.partitioned.compute.subgroupinclusiveadd_uint64_t_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupinclusivemul_uint64_t
+dEQP-VK.subgroups.partitioned.compute.subgroupinclusivemul_uint64_t_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupinclusivemin_uint64_t
+dEQP-VK.subgroups.partitioned.compute.subgroupinclusivemin_uint64_t_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupinclusivemax_uint64_t
+dEQP-VK.subgroups.partitioned.compute.subgroupinclusivemax_uint64_t_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupinclusiveand_uint64_t
+dEQP-VK.subgroups.partitioned.compute.subgroupinclusiveand_uint64_t_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupinclusiveor_uint64_t
+dEQP-VK.subgroups.partitioned.compute.subgroupinclusiveor_uint64_t_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupinclusivexor_uint64_t
+dEQP-VK.subgroups.partitioned.compute.subgroupinclusivexor_uint64_t_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupexclusiveadd_uint64_t
+dEQP-VK.subgroups.partitioned.compute.subgroupexclusiveadd_uint64_t_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupexclusivemul_uint64_t
+dEQP-VK.subgroups.partitioned.compute.subgroupexclusivemul_uint64_t_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupexclusivemin_uint64_t
+dEQP-VK.subgroups.partitioned.compute.subgroupexclusivemin_uint64_t_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupexclusivemax_uint64_t
+dEQP-VK.subgroups.partitioned.compute.subgroupexclusivemax_uint64_t_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupexclusiveand_uint64_t
+dEQP-VK.subgroups.partitioned.compute.subgroupexclusiveand_uint64_t_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupexclusiveor_uint64_t
+dEQP-VK.subgroups.partitioned.compute.subgroupexclusiveor_uint64_t_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupexclusivexor_uint64_t
+dEQP-VK.subgroups.partitioned.compute.subgroupexclusivexor_uint64_t_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupadd_u64vec2
+dEQP-VK.subgroups.partitioned.compute.subgroupadd_u64vec2_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupmul_u64vec2
+dEQP-VK.subgroups.partitioned.compute.subgroupmul_u64vec2_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupmin_u64vec2
+dEQP-VK.subgroups.partitioned.compute.subgroupmin_u64vec2_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupmax_u64vec2
+dEQP-VK.subgroups.partitioned.compute.subgroupmax_u64vec2_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupand_u64vec2
+dEQP-VK.subgroups.partitioned.compute.subgroupand_u64vec2_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupor_u64vec2
+dEQP-VK.subgroups.partitioned.compute.subgroupor_u64vec2_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupxor_u64vec2
+dEQP-VK.subgroups.partitioned.compute.subgroupxor_u64vec2_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupinclusiveadd_u64vec2
+dEQP-VK.subgroups.partitioned.compute.subgroupinclusiveadd_u64vec2_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupinclusivemul_u64vec2
+dEQP-VK.subgroups.partitioned.compute.subgroupinclusivemul_u64vec2_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupinclusivemin_u64vec2
+dEQP-VK.subgroups.partitioned.compute.subgroupinclusivemin_u64vec2_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupinclusivemax_u64vec2
+dEQP-VK.subgroups.partitioned.compute.subgroupinclusivemax_u64vec2_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupinclusiveand_u64vec2
+dEQP-VK.subgroups.partitioned.compute.subgroupinclusiveand_u64vec2_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupinclusiveor_u64vec2
+dEQP-VK.subgroups.partitioned.compute.subgroupinclusiveor_u64vec2_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupinclusivexor_u64vec2
+dEQP-VK.subgroups.partitioned.compute.subgroupinclusivexor_u64vec2_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupexclusiveadd_u64vec2
+dEQP-VK.subgroups.partitioned.compute.subgroupexclusiveadd_u64vec2_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupexclusivemul_u64vec2
+dEQP-VK.subgroups.partitioned.compute.subgroupexclusivemul_u64vec2_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupexclusivemin_u64vec2
+dEQP-VK.subgroups.partitioned.compute.subgroupexclusivemin_u64vec2_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupexclusivemax_u64vec2
+dEQP-VK.subgroups.partitioned.compute.subgroupexclusivemax_u64vec2_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupexclusiveand_u64vec2
+dEQP-VK.subgroups.partitioned.compute.subgroupexclusiveand_u64vec2_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupexclusiveor_u64vec2
+dEQP-VK.subgroups.partitioned.compute.subgroupexclusiveor_u64vec2_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupexclusivexor_u64vec2
+dEQP-VK.subgroups.partitioned.compute.subgroupexclusivexor_u64vec2_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupadd_u64vec3
+dEQP-VK.subgroups.partitioned.compute.subgroupadd_u64vec3_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupmul_u64vec3
+dEQP-VK.subgroups.partitioned.compute.subgroupmul_u64vec3_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupmin_u64vec3
+dEQP-VK.subgroups.partitioned.compute.subgroupmin_u64vec3_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupmax_u64vec3
+dEQP-VK.subgroups.partitioned.compute.subgroupmax_u64vec3_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupand_u64vec3
+dEQP-VK.subgroups.partitioned.compute.subgroupand_u64vec3_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupor_u64vec3
+dEQP-VK.subgroups.partitioned.compute.subgroupor_u64vec3_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupxor_u64vec3
+dEQP-VK.subgroups.partitioned.compute.subgroupxor_u64vec3_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupinclusiveadd_u64vec3
+dEQP-VK.subgroups.partitioned.compute.subgroupinclusiveadd_u64vec3_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupinclusivemul_u64vec3
+dEQP-VK.subgroups.partitioned.compute.subgroupinclusivemul_u64vec3_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupinclusivemin_u64vec3
+dEQP-VK.subgroups.partitioned.compute.subgroupinclusivemin_u64vec3_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupinclusivemax_u64vec3
+dEQP-VK.subgroups.partitioned.compute.subgroupinclusivemax_u64vec3_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupinclusiveand_u64vec3
+dEQP-VK.subgroups.partitioned.compute.subgroupinclusiveand_u64vec3_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupinclusiveor_u64vec3
+dEQP-VK.subgroups.partitioned.compute.subgroupinclusiveor_u64vec3_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupinclusivexor_u64vec3
+dEQP-VK.subgroups.partitioned.compute.subgroupinclusivexor_u64vec3_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupexclusiveadd_u64vec3
+dEQP-VK.subgroups.partitioned.compute.subgroupexclusiveadd_u64vec3_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupexclusivemul_u64vec3
+dEQP-VK.subgroups.partitioned.compute.subgroupexclusivemul_u64vec3_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupexclusivemin_u64vec3
+dEQP-VK.subgroups.partitioned.compute.subgroupexclusivemin_u64vec3_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupexclusivemax_u64vec3
+dEQP-VK.subgroups.partitioned.compute.subgroupexclusivemax_u64vec3_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupexclusiveand_u64vec3
+dEQP-VK.subgroups.partitioned.compute.subgroupexclusiveand_u64vec3_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupexclusiveor_u64vec3
+dEQP-VK.subgroups.partitioned.compute.subgroupexclusiveor_u64vec3_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupexclusivexor_u64vec3
+dEQP-VK.subgroups.partitioned.compute.subgroupexclusivexor_u64vec3_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupadd_u64vec4
+dEQP-VK.subgroups.partitioned.compute.subgroupadd_u64vec4_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupmul_u64vec4
+dEQP-VK.subgroups.partitioned.compute.subgroupmul_u64vec4_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupmin_u64vec4
+dEQP-VK.subgroups.partitioned.compute.subgroupmin_u64vec4_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupmax_u64vec4
+dEQP-VK.subgroups.partitioned.compute.subgroupmax_u64vec4_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupand_u64vec4
+dEQP-VK.subgroups.partitioned.compute.subgroupand_u64vec4_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupor_u64vec4
+dEQP-VK.subgroups.partitioned.compute.subgroupor_u64vec4_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupxor_u64vec4
+dEQP-VK.subgroups.partitioned.compute.subgroupxor_u64vec4_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupinclusiveadd_u64vec4
+dEQP-VK.subgroups.partitioned.compute.subgroupinclusiveadd_u64vec4_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupinclusivemul_u64vec4
+dEQP-VK.subgroups.partitioned.compute.subgroupinclusivemul_u64vec4_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupinclusivemin_u64vec4
+dEQP-VK.subgroups.partitioned.compute.subgroupinclusivemin_u64vec4_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupinclusivemax_u64vec4
+dEQP-VK.subgroups.partitioned.compute.subgroupinclusivemax_u64vec4_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupinclusiveand_u64vec4
+dEQP-VK.subgroups.partitioned.compute.subgroupinclusiveand_u64vec4_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupinclusiveor_u64vec4
+dEQP-VK.subgroups.partitioned.compute.subgroupinclusiveor_u64vec4_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupinclusivexor_u64vec4
+dEQP-VK.subgroups.partitioned.compute.subgroupinclusivexor_u64vec4_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupexclusiveadd_u64vec4
+dEQP-VK.subgroups.partitioned.compute.subgroupexclusiveadd_u64vec4_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupexclusivemul_u64vec4
+dEQP-VK.subgroups.partitioned.compute.subgroupexclusivemul_u64vec4_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupexclusivemin_u64vec4
+dEQP-VK.subgroups.partitioned.compute.subgroupexclusivemin_u64vec4_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupexclusivemax_u64vec4
+dEQP-VK.subgroups.partitioned.compute.subgroupexclusivemax_u64vec4_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupexclusiveand_u64vec4
+dEQP-VK.subgroups.partitioned.compute.subgroupexclusiveand_u64vec4_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupexclusiveor_u64vec4
+dEQP-VK.subgroups.partitioned.compute.subgroupexclusiveor_u64vec4_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupexclusivexor_u64vec4
+dEQP-VK.subgroups.partitioned.compute.subgroupexclusivexor_u64vec4_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupadd_float16_t
+dEQP-VK.subgroups.partitioned.compute.subgroupadd_float16_t_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupmul_float16_t
+dEQP-VK.subgroups.partitioned.compute.subgroupmul_float16_t_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupmin_float16_t
+dEQP-VK.subgroups.partitioned.compute.subgroupmin_float16_t_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupmax_float16_t
+dEQP-VK.subgroups.partitioned.compute.subgroupmax_float16_t_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupinclusiveadd_float16_t
+dEQP-VK.subgroups.partitioned.compute.subgroupinclusiveadd_float16_t_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupinclusivemul_float16_t
+dEQP-VK.subgroups.partitioned.compute.subgroupinclusivemul_float16_t_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupinclusivemin_float16_t
+dEQP-VK.subgroups.partitioned.compute.subgroupinclusivemin_float16_t_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupinclusivemax_float16_t
+dEQP-VK.subgroups.partitioned.compute.subgroupinclusivemax_float16_t_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupexclusiveadd_float16_t
+dEQP-VK.subgroups.partitioned.compute.subgroupexclusiveadd_float16_t_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupexclusivemul_float16_t
+dEQP-VK.subgroups.partitioned.compute.subgroupexclusivemul_float16_t_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupexclusivemin_float16_t
+dEQP-VK.subgroups.partitioned.compute.subgroupexclusivemin_float16_t_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupexclusivemax_float16_t
+dEQP-VK.subgroups.partitioned.compute.subgroupexclusivemax_float16_t_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupadd_f16vec2
+dEQP-VK.subgroups.partitioned.compute.subgroupadd_f16vec2_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupmul_f16vec2
+dEQP-VK.subgroups.partitioned.compute.subgroupmul_f16vec2_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupmin_f16vec2
+dEQP-VK.subgroups.partitioned.compute.subgroupmin_f16vec2_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupmax_f16vec2
+dEQP-VK.subgroups.partitioned.compute.subgroupmax_f16vec2_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupinclusiveadd_f16vec2
+dEQP-VK.subgroups.partitioned.compute.subgroupinclusiveadd_f16vec2_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupinclusivemul_f16vec2
+dEQP-VK.subgroups.partitioned.compute.subgroupinclusivemul_f16vec2_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupinclusivemin_f16vec2
+dEQP-VK.subgroups.partitioned.compute.subgroupinclusivemin_f16vec2_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupinclusivemax_f16vec2
+dEQP-VK.subgroups.partitioned.compute.subgroupinclusivemax_f16vec2_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupexclusiveadd_f16vec2
+dEQP-VK.subgroups.partitioned.compute.subgroupexclusiveadd_f16vec2_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupexclusivemul_f16vec2
+dEQP-VK.subgroups.partitioned.compute.subgroupexclusivemul_f16vec2_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupexclusivemin_f16vec2
+dEQP-VK.subgroups.partitioned.compute.subgroupexclusivemin_f16vec2_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupexclusivemax_f16vec2
+dEQP-VK.subgroups.partitioned.compute.subgroupexclusivemax_f16vec2_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupadd_f16vec3
+dEQP-VK.subgroups.partitioned.compute.subgroupadd_f16vec3_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupmul_f16vec3
+dEQP-VK.subgroups.partitioned.compute.subgroupmul_f16vec3_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupmin_f16vec3
+dEQP-VK.subgroups.partitioned.compute.subgroupmin_f16vec3_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupmax_f16vec3
+dEQP-VK.subgroups.partitioned.compute.subgroupmax_f16vec3_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupinclusiveadd_f16vec3
+dEQP-VK.subgroups.partitioned.compute.subgroupinclusiveadd_f16vec3_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupinclusivemul_f16vec3
+dEQP-VK.subgroups.partitioned.compute.subgroupinclusivemul_f16vec3_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupinclusivemin_f16vec3
+dEQP-VK.subgroups.partitioned.compute.subgroupinclusivemin_f16vec3_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupinclusivemax_f16vec3
+dEQP-VK.subgroups.partitioned.compute.subgroupinclusivemax_f16vec3_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupexclusiveadd_f16vec3
+dEQP-VK.subgroups.partitioned.compute.subgroupexclusiveadd_f16vec3_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupexclusivemul_f16vec3
+dEQP-VK.subgroups.partitioned.compute.subgroupexclusivemul_f16vec3_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupexclusivemin_f16vec3
+dEQP-VK.subgroups.partitioned.compute.subgroupexclusivemin_f16vec3_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupexclusivemax_f16vec3
+dEQP-VK.subgroups.partitioned.compute.subgroupexclusivemax_f16vec3_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupadd_f16vec4
+dEQP-VK.subgroups.partitioned.compute.subgroupadd_f16vec4_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupmul_f16vec4
+dEQP-VK.subgroups.partitioned.compute.subgroupmul_f16vec4_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupmin_f16vec4
+dEQP-VK.subgroups.partitioned.compute.subgroupmin_f16vec4_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupmax_f16vec4
+dEQP-VK.subgroups.partitioned.compute.subgroupmax_f16vec4_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupinclusiveadd_f16vec4
+dEQP-VK.subgroups.partitioned.compute.subgroupinclusiveadd_f16vec4_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupinclusivemul_f16vec4
+dEQP-VK.subgroups.partitioned.compute.subgroupinclusivemul_f16vec4_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupinclusivemin_f16vec4
+dEQP-VK.subgroups.partitioned.compute.subgroupinclusivemin_f16vec4_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupinclusivemax_f16vec4
+dEQP-VK.subgroups.partitioned.compute.subgroupinclusivemax_f16vec4_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupexclusiveadd_f16vec4
+dEQP-VK.subgroups.partitioned.compute.subgroupexclusiveadd_f16vec4_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupexclusivemul_f16vec4
+dEQP-VK.subgroups.partitioned.compute.subgroupexclusivemul_f16vec4_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupexclusivemin_f16vec4
+dEQP-VK.subgroups.partitioned.compute.subgroupexclusivemin_f16vec4_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupexclusivemax_f16vec4
+dEQP-VK.subgroups.partitioned.compute.subgroupexclusivemax_f16vec4_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupadd_float
+dEQP-VK.subgroups.partitioned.compute.subgroupadd_float_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupmul_float
+dEQP-VK.subgroups.partitioned.compute.subgroupmul_float_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupmin_float
+dEQP-VK.subgroups.partitioned.compute.subgroupmin_float_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupmax_float
+dEQP-VK.subgroups.partitioned.compute.subgroupmax_float_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupinclusiveadd_float
+dEQP-VK.subgroups.partitioned.compute.subgroupinclusiveadd_float_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupinclusivemul_float
+dEQP-VK.subgroups.partitioned.compute.subgroupinclusivemul_float_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupinclusivemin_float
+dEQP-VK.subgroups.partitioned.compute.subgroupinclusivemin_float_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupinclusivemax_float
+dEQP-VK.subgroups.partitioned.compute.subgroupinclusivemax_float_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupexclusiveadd_float
+dEQP-VK.subgroups.partitioned.compute.subgroupexclusiveadd_float_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupexclusivemul_float
+dEQP-VK.subgroups.partitioned.compute.subgroupexclusivemul_float_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupexclusivemin_float
+dEQP-VK.subgroups.partitioned.compute.subgroupexclusivemin_float_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupexclusivemax_float
+dEQP-VK.subgroups.partitioned.compute.subgroupexclusivemax_float_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupadd_vec2
+dEQP-VK.subgroups.partitioned.compute.subgroupadd_vec2_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupmul_vec2
+dEQP-VK.subgroups.partitioned.compute.subgroupmul_vec2_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupmin_vec2
+dEQP-VK.subgroups.partitioned.compute.subgroupmin_vec2_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupmax_vec2
+dEQP-VK.subgroups.partitioned.compute.subgroupmax_vec2_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupinclusiveadd_vec2
+dEQP-VK.subgroups.partitioned.compute.subgroupinclusiveadd_vec2_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupinclusivemul_vec2
+dEQP-VK.subgroups.partitioned.compute.subgroupinclusivemul_vec2_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupinclusivemin_vec2
+dEQP-VK.subgroups.partitioned.compute.subgroupinclusivemin_vec2_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupinclusivemax_vec2
+dEQP-VK.subgroups.partitioned.compute.subgroupinclusivemax_vec2_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupexclusiveadd_vec2
+dEQP-VK.subgroups.partitioned.compute.subgroupexclusiveadd_vec2_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupexclusivemul_vec2
+dEQP-VK.subgroups.partitioned.compute.subgroupexclusivemul_vec2_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupexclusivemin_vec2
+dEQP-VK.subgroups.partitioned.compute.subgroupexclusivemin_vec2_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupexclusivemax_vec2
+dEQP-VK.subgroups.partitioned.compute.subgroupexclusivemax_vec2_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupadd_vec3
+dEQP-VK.subgroups.partitioned.compute.subgroupadd_vec3_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupmul_vec3
+dEQP-VK.subgroups.partitioned.compute.subgroupmul_vec3_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupmin_vec3
+dEQP-VK.subgroups.partitioned.compute.subgroupmin_vec3_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupmax_vec3
+dEQP-VK.subgroups.partitioned.compute.subgroupmax_vec3_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupinclusiveadd_vec3
+dEQP-VK.subgroups.partitioned.compute.subgroupinclusiveadd_vec3_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupinclusivemul_vec3
+dEQP-VK.subgroups.partitioned.compute.subgroupinclusivemul_vec3_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupinclusivemin_vec3
+dEQP-VK.subgroups.partitioned.compute.subgroupinclusivemin_vec3_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupinclusivemax_vec3
+dEQP-VK.subgroups.partitioned.compute.subgroupinclusivemax_vec3_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupexclusiveadd_vec3
+dEQP-VK.subgroups.partitioned.compute.subgroupexclusiveadd_vec3_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupexclusivemul_vec3
+dEQP-VK.subgroups.partitioned.compute.subgroupexclusivemul_vec3_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupexclusivemin_vec3
+dEQP-VK.subgroups.partitioned.compute.subgroupexclusivemin_vec3_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupexclusivemax_vec3
+dEQP-VK.subgroups.partitioned.compute.subgroupexclusivemax_vec3_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupadd_vec4
+dEQP-VK.subgroups.partitioned.compute.subgroupadd_vec4_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupmul_vec4
+dEQP-VK.subgroups.partitioned.compute.subgroupmul_vec4_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupmin_vec4
+dEQP-VK.subgroups.partitioned.compute.subgroupmin_vec4_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupmax_vec4
+dEQP-VK.subgroups.partitioned.compute.subgroupmax_vec4_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupinclusiveadd_vec4
+dEQP-VK.subgroups.partitioned.compute.subgroupinclusiveadd_vec4_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupinclusivemul_vec4
+dEQP-VK.subgroups.partitioned.compute.subgroupinclusivemul_vec4_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupinclusivemin_vec4
+dEQP-VK.subgroups.partitioned.compute.subgroupinclusivemin_vec4_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupinclusivemax_vec4
+dEQP-VK.subgroups.partitioned.compute.subgroupinclusivemax_vec4_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupexclusiveadd_vec4
+dEQP-VK.subgroups.partitioned.compute.subgroupexclusiveadd_vec4_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupexclusivemul_vec4
+dEQP-VK.subgroups.partitioned.compute.subgroupexclusivemul_vec4_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupexclusivemin_vec4
+dEQP-VK.subgroups.partitioned.compute.subgroupexclusivemin_vec4_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupexclusivemax_vec4
+dEQP-VK.subgroups.partitioned.compute.subgroupexclusivemax_vec4_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupadd_double
+dEQP-VK.subgroups.partitioned.compute.subgroupadd_double_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupmul_double
+dEQP-VK.subgroups.partitioned.compute.subgroupmul_double_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupmin_double
+dEQP-VK.subgroups.partitioned.compute.subgroupmin_double_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupmax_double
+dEQP-VK.subgroups.partitioned.compute.subgroupmax_double_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupinclusiveadd_double
+dEQP-VK.subgroups.partitioned.compute.subgroupinclusiveadd_double_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupinclusivemul_double
+dEQP-VK.subgroups.partitioned.compute.subgroupinclusivemul_double_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupinclusivemin_double
+dEQP-VK.subgroups.partitioned.compute.subgroupinclusivemin_double_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupinclusivemax_double
+dEQP-VK.subgroups.partitioned.compute.subgroupinclusivemax_double_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupexclusiveadd_double
+dEQP-VK.subgroups.partitioned.compute.subgroupexclusiveadd_double_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupexclusivemul_double
+dEQP-VK.subgroups.partitioned.compute.subgroupexclusivemul_double_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupexclusivemin_double
+dEQP-VK.subgroups.partitioned.compute.subgroupexclusivemin_double_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupexclusivemax_double
+dEQP-VK.subgroups.partitioned.compute.subgroupexclusivemax_double_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupadd_dvec2
+dEQP-VK.subgroups.partitioned.compute.subgroupadd_dvec2_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupmul_dvec2
+dEQP-VK.subgroups.partitioned.compute.subgroupmul_dvec2_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupmin_dvec2
+dEQP-VK.subgroups.partitioned.compute.subgroupmin_dvec2_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupmax_dvec2
+dEQP-VK.subgroups.partitioned.compute.subgroupmax_dvec2_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupinclusiveadd_dvec2
+dEQP-VK.subgroups.partitioned.compute.subgroupinclusiveadd_dvec2_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupinclusivemul_dvec2
+dEQP-VK.subgroups.partitioned.compute.subgroupinclusivemul_dvec2_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupinclusivemin_dvec2
+dEQP-VK.subgroups.partitioned.compute.subgroupinclusivemin_dvec2_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupinclusivemax_dvec2
+dEQP-VK.subgroups.partitioned.compute.subgroupinclusivemax_dvec2_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupexclusiveadd_dvec2
+dEQP-VK.subgroups.partitioned.compute.subgroupexclusiveadd_dvec2_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupexclusivemul_dvec2
+dEQP-VK.subgroups.partitioned.compute.subgroupexclusivemul_dvec2_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupexclusivemin_dvec2
+dEQP-VK.subgroups.partitioned.compute.subgroupexclusivemin_dvec2_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupexclusivemax_dvec2
+dEQP-VK.subgroups.partitioned.compute.subgroupexclusivemax_dvec2_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupadd_dvec3
+dEQP-VK.subgroups.partitioned.compute.subgroupadd_dvec3_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupmul_dvec3
+dEQP-VK.subgroups.partitioned.compute.subgroupmul_dvec3_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupmin_dvec3
+dEQP-VK.subgroups.partitioned.compute.subgroupmin_dvec3_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupmax_dvec3
+dEQP-VK.subgroups.partitioned.compute.subgroupmax_dvec3_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupinclusiveadd_dvec3
+dEQP-VK.subgroups.partitioned.compute.subgroupinclusiveadd_dvec3_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupinclusivemul_dvec3
+dEQP-VK.subgroups.partitioned.compute.subgroupinclusivemul_dvec3_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupinclusivemin_dvec3
+dEQP-VK.subgroups.partitioned.compute.subgroupinclusivemin_dvec3_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupinclusivemax_dvec3
+dEQP-VK.subgroups.partitioned.compute.subgroupinclusivemax_dvec3_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupexclusiveadd_dvec3
+dEQP-VK.subgroups.partitioned.compute.subgroupexclusiveadd_dvec3_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupexclusivemul_dvec3
+dEQP-VK.subgroups.partitioned.compute.subgroupexclusivemul_dvec3_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupexclusivemin_dvec3
+dEQP-VK.subgroups.partitioned.compute.subgroupexclusivemin_dvec3_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupexclusivemax_dvec3
+dEQP-VK.subgroups.partitioned.compute.subgroupexclusivemax_dvec3_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupadd_dvec4
+dEQP-VK.subgroups.partitioned.compute.subgroupadd_dvec4_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupmul_dvec4
+dEQP-VK.subgroups.partitioned.compute.subgroupmul_dvec4_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupmin_dvec4
+dEQP-VK.subgroups.partitioned.compute.subgroupmin_dvec4_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupmax_dvec4
+dEQP-VK.subgroups.partitioned.compute.subgroupmax_dvec4_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupinclusiveadd_dvec4
+dEQP-VK.subgroups.partitioned.compute.subgroupinclusiveadd_dvec4_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupinclusivemul_dvec4
+dEQP-VK.subgroups.partitioned.compute.subgroupinclusivemul_dvec4_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupinclusivemin_dvec4
+dEQP-VK.subgroups.partitioned.compute.subgroupinclusivemin_dvec4_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupinclusivemax_dvec4
+dEQP-VK.subgroups.partitioned.compute.subgroupinclusivemax_dvec4_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupexclusiveadd_dvec4
+dEQP-VK.subgroups.partitioned.compute.subgroupexclusiveadd_dvec4_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupexclusivemul_dvec4
+dEQP-VK.subgroups.partitioned.compute.subgroupexclusivemul_dvec4_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupexclusivemin_dvec4
+dEQP-VK.subgroups.partitioned.compute.subgroupexclusivemin_dvec4_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupexclusivemax_dvec4
+dEQP-VK.subgroups.partitioned.compute.subgroupexclusivemax_dvec4_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupand_bool
+dEQP-VK.subgroups.partitioned.compute.subgroupand_bool_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupor_bool
+dEQP-VK.subgroups.partitioned.compute.subgroupor_bool_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupxor_bool
+dEQP-VK.subgroups.partitioned.compute.subgroupxor_bool_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupinclusiveand_bool
+dEQP-VK.subgroups.partitioned.compute.subgroupinclusiveand_bool_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupinclusiveor_bool
+dEQP-VK.subgroups.partitioned.compute.subgroupinclusiveor_bool_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupinclusivexor_bool
+dEQP-VK.subgroups.partitioned.compute.subgroupinclusivexor_bool_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupexclusiveand_bool
+dEQP-VK.subgroups.partitioned.compute.subgroupexclusiveand_bool_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupexclusiveor_bool
+dEQP-VK.subgroups.partitioned.compute.subgroupexclusiveor_bool_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupexclusivexor_bool
+dEQP-VK.subgroups.partitioned.compute.subgroupexclusivexor_bool_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupand_bvec2
+dEQP-VK.subgroups.partitioned.compute.subgroupand_bvec2_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupor_bvec2
+dEQP-VK.subgroups.partitioned.compute.subgroupor_bvec2_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupxor_bvec2
+dEQP-VK.subgroups.partitioned.compute.subgroupxor_bvec2_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupinclusiveand_bvec2
+dEQP-VK.subgroups.partitioned.compute.subgroupinclusiveand_bvec2_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupinclusiveor_bvec2
+dEQP-VK.subgroups.partitioned.compute.subgroupinclusiveor_bvec2_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupinclusivexor_bvec2
+dEQP-VK.subgroups.partitioned.compute.subgroupinclusivexor_bvec2_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupexclusiveand_bvec2
+dEQP-VK.subgroups.partitioned.compute.subgroupexclusiveand_bvec2_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupexclusiveor_bvec2
+dEQP-VK.subgroups.partitioned.compute.subgroupexclusiveor_bvec2_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupexclusivexor_bvec2
+dEQP-VK.subgroups.partitioned.compute.subgroupexclusivexor_bvec2_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupand_bvec3
+dEQP-VK.subgroups.partitioned.compute.subgroupand_bvec3_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupor_bvec3
+dEQP-VK.subgroups.partitioned.compute.subgroupor_bvec3_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupxor_bvec3
+dEQP-VK.subgroups.partitioned.compute.subgroupxor_bvec3_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupinclusiveand_bvec3
+dEQP-VK.subgroups.partitioned.compute.subgroupinclusiveand_bvec3_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupinclusiveor_bvec3
+dEQP-VK.subgroups.partitioned.compute.subgroupinclusiveor_bvec3_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupinclusivexor_bvec3
+dEQP-VK.subgroups.partitioned.compute.subgroupinclusivexor_bvec3_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupexclusiveand_bvec3
+dEQP-VK.subgroups.partitioned.compute.subgroupexclusiveand_bvec3_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupexclusiveor_bvec3
+dEQP-VK.subgroups.partitioned.compute.subgroupexclusiveor_bvec3_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupexclusivexor_bvec3
+dEQP-VK.subgroups.partitioned.compute.subgroupexclusivexor_bvec3_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupand_bvec4
+dEQP-VK.subgroups.partitioned.compute.subgroupand_bvec4_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupor_bvec4
+dEQP-VK.subgroups.partitioned.compute.subgroupor_bvec4_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupxor_bvec4
+dEQP-VK.subgroups.partitioned.compute.subgroupxor_bvec4_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupinclusiveand_bvec4
+dEQP-VK.subgroups.partitioned.compute.subgroupinclusiveand_bvec4_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupinclusiveor_bvec4
+dEQP-VK.subgroups.partitioned.compute.subgroupinclusiveor_bvec4_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupinclusivexor_bvec4
+dEQP-VK.subgroups.partitioned.compute.subgroupinclusivexor_bvec4_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupexclusiveand_bvec4
+dEQP-VK.subgroups.partitioned.compute.subgroupexclusiveand_bvec4_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupexclusiveor_bvec4
+dEQP-VK.subgroups.partitioned.compute.subgroupexclusiveor_bvec4_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.compute.subgroupexclusivexor_bvec4
+dEQP-VK.subgroups.partitioned.compute.subgroupexclusivexor_bvec4_requiredsubgroupsize
 dEQP-VK.subgroups.partitioned.framebuffer.subgroupadd_int8_t_vertex
 dEQP-VK.subgroups.partitioned.framebuffer.subgroupadd_int8_t_tess_eval
 dEQP-VK.subgroups.partitioned.framebuffer.subgroupadd_int8_t_tess_control
@@ -521669,197 +523887,389 @@ dEQP-VK.subgroups.shuffle.graphics.subgroupshufflexor_bvec4
 dEQP-VK.subgroups.shuffle.graphics.subgroupshuffleup_bvec4
 dEQP-VK.subgroups.shuffle.graphics.subgroupshuffledown_bvec4
 dEQP-VK.subgroups.shuffle.compute.subgroupshuffle_int8_t
+dEQP-VK.subgroups.shuffle.compute.subgroupshuffle_int8_t_requiredsubgroupsize
 dEQP-VK.subgroups.shuffle.compute.subgroupshufflexor_int8_t
+dEQP-VK.subgroups.shuffle.compute.subgroupshufflexor_int8_t_requiredsubgroupsize
 dEQP-VK.subgroups.shuffle.compute.subgroupshuffleup_int8_t
+dEQP-VK.subgroups.shuffle.compute.subgroupshuffleup_int8_t_requiredsubgroupsize
 dEQP-VK.subgroups.shuffle.compute.subgroupshuffledown_int8_t
+dEQP-VK.subgroups.shuffle.compute.subgroupshuffledown_int8_t_requiredsubgroupsize
 dEQP-VK.subgroups.shuffle.compute.subgroupshuffle_i8vec2
+dEQP-VK.subgroups.shuffle.compute.subgroupshuffle_i8vec2_requiredsubgroupsize
 dEQP-VK.subgroups.shuffle.compute.subgroupshufflexor_i8vec2
+dEQP-VK.subgroups.shuffle.compute.subgroupshufflexor_i8vec2_requiredsubgroupsize
 dEQP-VK.subgroups.shuffle.compute.subgroupshuffleup_i8vec2
+dEQP-VK.subgroups.shuffle.compute.subgroupshuffleup_i8vec2_requiredsubgroupsize
 dEQP-VK.subgroups.shuffle.compute.subgroupshuffledown_i8vec2
+dEQP-VK.subgroups.shuffle.compute.subgroupshuffledown_i8vec2_requiredsubgroupsize
 dEQP-VK.subgroups.shuffle.compute.subgroupshuffle_i8vec3
+dEQP-VK.subgroups.shuffle.compute.subgroupshuffle_i8vec3_requiredsubgroupsize
 dEQP-VK.subgroups.shuffle.compute.subgroupshufflexor_i8vec3
+dEQP-VK.subgroups.shuffle.compute.subgroupshufflexor_i8vec3_requiredsubgroupsize
 dEQP-VK.subgroups.shuffle.compute.subgroupshuffleup_i8vec3
+dEQP-VK.subgroups.shuffle.compute.subgroupshuffleup_i8vec3_requiredsubgroupsize
 dEQP-VK.subgroups.shuffle.compute.subgroupshuffledown_i8vec3
+dEQP-VK.subgroups.shuffle.compute.subgroupshuffledown_i8vec3_requiredsubgroupsize
 dEQP-VK.subgroups.shuffle.compute.subgroupshuffle_i8vec4
+dEQP-VK.subgroups.shuffle.compute.subgroupshuffle_i8vec4_requiredsubgroupsize
 dEQP-VK.subgroups.shuffle.compute.subgroupshufflexor_i8vec4
+dEQP-VK.subgroups.shuffle.compute.subgroupshufflexor_i8vec4_requiredsubgroupsize
 dEQP-VK.subgroups.shuffle.compute.subgroupshuffleup_i8vec4
+dEQP-VK.subgroups.shuffle.compute.subgroupshuffleup_i8vec4_requiredsubgroupsize
 dEQP-VK.subgroups.shuffle.compute.subgroupshuffledown_i8vec4
+dEQP-VK.subgroups.shuffle.compute.subgroupshuffledown_i8vec4_requiredsubgroupsize
 dEQP-VK.subgroups.shuffle.compute.subgroupshuffle_uint8_t
+dEQP-VK.subgroups.shuffle.compute.subgroupshuffle_uint8_t_requiredsubgroupsize
 dEQP-VK.subgroups.shuffle.compute.subgroupshufflexor_uint8_t
+dEQP-VK.subgroups.shuffle.compute.subgroupshufflexor_uint8_t_requiredsubgroupsize
 dEQP-VK.subgroups.shuffle.compute.subgroupshuffleup_uint8_t
+dEQP-VK.subgroups.shuffle.compute.subgroupshuffleup_uint8_t_requiredsubgroupsize
 dEQP-VK.subgroups.shuffle.compute.subgroupshuffledown_uint8_t
+dEQP-VK.subgroups.shuffle.compute.subgroupshuffledown_uint8_t_requiredsubgroupsize
 dEQP-VK.subgroups.shuffle.compute.subgroupshuffle_u8vec2
+dEQP-VK.subgroups.shuffle.compute.subgroupshuffle_u8vec2_requiredsubgroupsize
 dEQP-VK.subgroups.shuffle.compute.subgroupshufflexor_u8vec2
+dEQP-VK.subgroups.shuffle.compute.subgroupshufflexor_u8vec2_requiredsubgroupsize
 dEQP-VK.subgroups.shuffle.compute.subgroupshuffleup_u8vec2
+dEQP-VK.subgroups.shuffle.compute.subgroupshuffleup_u8vec2_requiredsubgroupsize
 dEQP-VK.subgroups.shuffle.compute.subgroupshuffledown_u8vec2
+dEQP-VK.subgroups.shuffle.compute.subgroupshuffledown_u8vec2_requiredsubgroupsize
 dEQP-VK.subgroups.shuffle.compute.subgroupshuffle_u8vec3
+dEQP-VK.subgroups.shuffle.compute.subgroupshuffle_u8vec3_requiredsubgroupsize
 dEQP-VK.subgroups.shuffle.compute.subgroupshufflexor_u8vec3
+dEQP-VK.subgroups.shuffle.compute.subgroupshufflexor_u8vec3_requiredsubgroupsize
 dEQP-VK.subgroups.shuffle.compute.subgroupshuffleup_u8vec3
+dEQP-VK.subgroups.shuffle.compute.subgroupshuffleup_u8vec3_requiredsubgroupsize
 dEQP-VK.subgroups.shuffle.compute.subgroupshuffledown_u8vec3
+dEQP-VK.subgroups.shuffle.compute.subgroupshuffledown_u8vec3_requiredsubgroupsize
 dEQP-VK.subgroups.shuffle.compute.subgroupshuffle_u8vec4
+dEQP-VK.subgroups.shuffle.compute.subgroupshuffle_u8vec4_requiredsubgroupsize
 dEQP-VK.subgroups.shuffle.compute.subgroupshufflexor_u8vec4
+dEQP-VK.subgroups.shuffle.compute.subgroupshufflexor_u8vec4_requiredsubgroupsize
 dEQP-VK.subgroups.shuffle.compute.subgroupshuffleup_u8vec4
+dEQP-VK.subgroups.shuffle.compute.subgroupshuffleup_u8vec4_requiredsubgroupsize
 dEQP-VK.subgroups.shuffle.compute.subgroupshuffledown_u8vec4
+dEQP-VK.subgroups.shuffle.compute.subgroupshuffledown_u8vec4_requiredsubgroupsize
 dEQP-VK.subgroups.shuffle.compute.subgroupshuffle_int16_t
+dEQP-VK.subgroups.shuffle.compute.subgroupshuffle_int16_t_requiredsubgroupsize
 dEQP-VK.subgroups.shuffle.compute.subgroupshufflexor_int16_t
+dEQP-VK.subgroups.shuffle.compute.subgroupshufflexor_int16_t_requiredsubgroupsize
 dEQP-VK.subgroups.shuffle.compute.subgroupshuffleup_int16_t
+dEQP-VK.subgroups.shuffle.compute.subgroupshuffleup_int16_t_requiredsubgroupsize
 dEQP-VK.subgroups.shuffle.compute.subgroupshuffledown_int16_t
+dEQP-VK.subgroups.shuffle.compute.subgroupshuffledown_int16_t_requiredsubgroupsize
 dEQP-VK.subgroups.shuffle.compute.subgroupshuffle_i16vec2
+dEQP-VK.subgroups.shuffle.compute.subgroupshuffle_i16vec2_requiredsubgroupsize
 dEQP-VK.subgroups.shuffle.compute.subgroupshufflexor_i16vec2
+dEQP-VK.subgroups.shuffle.compute.subgroupshufflexor_i16vec2_requiredsubgroupsize
 dEQP-VK.subgroups.shuffle.compute.subgroupshuffleup_i16vec2
+dEQP-VK.subgroups.shuffle.compute.subgroupshuffleup_i16vec2_requiredsubgroupsize
 dEQP-VK.subgroups.shuffle.compute.subgroupshuffledown_i16vec2
+dEQP-VK.subgroups.shuffle.compute.subgroupshuffledown_i16vec2_requiredsubgroupsize
 dEQP-VK.subgroups.shuffle.compute.subgroupshuffle_i16vec3
+dEQP-VK.subgroups.shuffle.compute.subgroupshuffle_i16vec3_requiredsubgroupsize
 dEQP-VK.subgroups.shuffle.compute.subgroupshufflexor_i16vec3
+dEQP-VK.subgroups.shuffle.compute.subgroupshufflexor_i16vec3_requiredsubgroupsize
 dEQP-VK.subgroups.shuffle.compute.subgroupshuffleup_i16vec3
+dEQP-VK.subgroups.shuffle.compute.subgroupshuffleup_i16vec3_requiredsubgroupsize
 dEQP-VK.subgroups.shuffle.compute.subgroupshuffledown_i16vec3
+dEQP-VK.subgroups.shuffle.compute.subgroupshuffledown_i16vec3_requiredsubgroupsize
 dEQP-VK.subgroups.shuffle.compute.subgroupshuffle_i16vec4
+dEQP-VK.subgroups.shuffle.compute.subgroupshuffle_i16vec4_requiredsubgroupsize
 dEQP-VK.subgroups.shuffle.compute.subgroupshufflexor_i16vec4
+dEQP-VK.subgroups.shuffle.compute.subgroupshufflexor_i16vec4_requiredsubgroupsize
 dEQP-VK.subgroups.shuffle.compute.subgroupshuffleup_i16vec4
+dEQP-VK.subgroups.shuffle.compute.subgroupshuffleup_i16vec4_requiredsubgroupsize
 dEQP-VK.subgroups.shuffle.compute.subgroupshuffledown_i16vec4
+dEQP-VK.subgroups.shuffle.compute.subgroupshuffledown_i16vec4_requiredsubgroupsize
 dEQP-VK.subgroups.shuffle.compute.subgroupshuffle_uint16_t
+dEQP-VK.subgroups.shuffle.compute.subgroupshuffle_uint16_t_requiredsubgroupsize
 dEQP-VK.subgroups.shuffle.compute.subgroupshufflexor_uint16_t
+dEQP-VK.subgroups.shuffle.compute.subgroupshufflexor_uint16_t_requiredsubgroupsize
 dEQP-VK.subgroups.shuffle.compute.subgroupshuffleup_uint16_t
+dEQP-VK.subgroups.shuffle.compute.subgroupshuffleup_uint16_t_requiredsubgroupsize
 dEQP-VK.subgroups.shuffle.compute.subgroupshuffledown_uint16_t
+dEQP-VK.subgroups.shuffle.compute.subgroupshuffledown_uint16_t_requiredsubgroupsize
 dEQP-VK.subgroups.shuffle.compute.subgroupshuffle_u16vec2
+dEQP-VK.subgroups.shuffle.compute.subgroupshuffle_u16vec2_requiredsubgroupsize
 dEQP-VK.subgroups.shuffle.compute.subgroupshufflexor_u16vec2
+dEQP-VK.subgroups.shuffle.compute.subgroupshufflexor_u16vec2_requiredsubgroupsize
 dEQP-VK.subgroups.shuffle.compute.subgroupshuffleup_u16vec2
+dEQP-VK.subgroups.shuffle.compute.subgroupshuffleup_u16vec2_requiredsubgroupsize
 dEQP-VK.subgroups.shuffle.compute.subgroupshuffledown_u16vec2
+dEQP-VK.subgroups.shuffle.compute.subgroupshuffledown_u16vec2_requiredsubgroupsize
 dEQP-VK.subgroups.shuffle.compute.subgroupshuffle_u16vec3
+dEQP-VK.subgroups.shuffle.compute.subgroupshuffle_u16vec3_requiredsubgroupsize
 dEQP-VK.subgroups.shuffle.compute.subgroupshufflexor_u16vec3
+dEQP-VK.subgroups.shuffle.compute.subgroupshufflexor_u16vec3_requiredsubgroupsize
 dEQP-VK.subgroups.shuffle.compute.subgroupshuffleup_u16vec3
+dEQP-VK.subgroups.shuffle.compute.subgroupshuffleup_u16vec3_requiredsubgroupsize
 dEQP-VK.subgroups.shuffle.compute.subgroupshuffledown_u16vec3
+dEQP-VK.subgroups.shuffle.compute.subgroupshuffledown_u16vec3_requiredsubgroupsize
 dEQP-VK.subgroups.shuffle.compute.subgroupshuffle_u16vec4
+dEQP-VK.subgroups.shuffle.compute.subgroupshuffle_u16vec4_requiredsubgroupsize
 dEQP-VK.subgroups.shuffle.compute.subgroupshufflexor_u16vec4
+dEQP-VK.subgroups.shuffle.compute.subgroupshufflexor_u16vec4_requiredsubgroupsize
 dEQP-VK.subgroups.shuffle.compute.subgroupshuffleup_u16vec4
+dEQP-VK.subgroups.shuffle.compute.subgroupshuffleup_u16vec4_requiredsubgroupsize
 dEQP-VK.subgroups.shuffle.compute.subgroupshuffledown_u16vec4
+dEQP-VK.subgroups.shuffle.compute.subgroupshuffledown_u16vec4_requiredsubgroupsize
 dEQP-VK.subgroups.shuffle.compute.subgroupshuffle_int
+dEQP-VK.subgroups.shuffle.compute.subgroupshuffle_int_requiredsubgroupsize
 dEQP-VK.subgroups.shuffle.compute.subgroupshufflexor_int
+dEQP-VK.subgroups.shuffle.compute.subgroupshufflexor_int_requiredsubgroupsize
 dEQP-VK.subgroups.shuffle.compute.subgroupshuffleup_int
+dEQP-VK.subgroups.shuffle.compute.subgroupshuffleup_int_requiredsubgroupsize
 dEQP-VK.subgroups.shuffle.compute.subgroupshuffledown_int
+dEQP-VK.subgroups.shuffle.compute.subgroupshuffledown_int_requiredsubgroupsize
 dEQP-VK.subgroups.shuffle.compute.subgroupshuffle_ivec2
+dEQP-VK.subgroups.shuffle.compute.subgroupshuffle_ivec2_requiredsubgroupsize
 dEQP-VK.subgroups.shuffle.compute.subgroupshufflexor_ivec2
+dEQP-VK.subgroups.shuffle.compute.subgroupshufflexor_ivec2_requiredsubgroupsize
 dEQP-VK.subgroups.shuffle.compute.subgroupshuffleup_ivec2
+dEQP-VK.subgroups.shuffle.compute.subgroupshuffleup_ivec2_requiredsubgroupsize
 dEQP-VK.subgroups.shuffle.compute.subgroupshuffledown_ivec2
+dEQP-VK.subgroups.shuffle.compute.subgroupshuffledown_ivec2_requiredsubgroupsize
 dEQP-VK.subgroups.shuffle.compute.subgroupshuffle_ivec3
+dEQP-VK.subgroups.shuffle.compute.subgroupshuffle_ivec3_requiredsubgroupsize
 dEQP-VK.subgroups.shuffle.compute.subgroupshufflexor_ivec3
+dEQP-VK.subgroups.shuffle.compute.subgroupshufflexor_ivec3_requiredsubgroupsize
 dEQP-VK.subgroups.shuffle.compute.subgroupshuffleup_ivec3
+dEQP-VK.subgroups.shuffle.compute.subgroupshuffleup_ivec3_requiredsubgroupsize
 dEQP-VK.subgroups.shuffle.compute.subgroupshuffledown_ivec3
+dEQP-VK.subgroups.shuffle.compute.subgroupshuffledown_ivec3_requiredsubgroupsize
 dEQP-VK.subgroups.shuffle.compute.subgroupshuffle_ivec4
+dEQP-VK.subgroups.shuffle.compute.subgroupshuffle_ivec4_requiredsubgroupsize
 dEQP-VK.subgroups.shuffle.compute.subgroupshufflexor_ivec4
+dEQP-VK.subgroups.shuffle.compute.subgroupshufflexor_ivec4_requiredsubgroupsize
 dEQP-VK.subgroups.shuffle.compute.subgroupshuffleup_ivec4
+dEQP-VK.subgroups.shuffle.compute.subgroupshuffleup_ivec4_requiredsubgroupsize
 dEQP-VK.subgroups.shuffle.compute.subgroupshuffledown_ivec4
+dEQP-VK.subgroups.shuffle.compute.subgroupshuffledown_ivec4_requiredsubgroupsize
 dEQP-VK.subgroups.shuffle.compute.subgroupshuffle_uint
+dEQP-VK.subgroups.shuffle.compute.subgroupshuffle_uint_requiredsubgroupsize
 dEQP-VK.subgroups.shuffle.compute.subgroupshufflexor_uint
+dEQP-VK.subgroups.shuffle.compute.subgroupshufflexor_uint_requiredsubgroupsize
 dEQP-VK.subgroups.shuffle.compute.subgroupshuffleup_uint
+dEQP-VK.subgroups.shuffle.compute.subgroupshuffleup_uint_requiredsubgroupsize
 dEQP-VK.subgroups.shuffle.compute.subgroupshuffledown_uint
+dEQP-VK.subgroups.shuffle.compute.subgroupshuffledown_uint_requiredsubgroupsize
 dEQP-VK.subgroups.shuffle.compute.subgroupshuffle_uvec2
+dEQP-VK.subgroups.shuffle.compute.subgroupshuffle_uvec2_requiredsubgroupsize
 dEQP-VK.subgroups.shuffle.compute.subgroupshufflexor_uvec2
+dEQP-VK.subgroups.shuffle.compute.subgroupshufflexor_uvec2_requiredsubgroupsize
 dEQP-VK.subgroups.shuffle.compute.subgroupshuffleup_uvec2
+dEQP-VK.subgroups.shuffle.compute.subgroupshuffleup_uvec2_requiredsubgroupsize
 dEQP-VK.subgroups.shuffle.compute.subgroupshuffledown_uvec2
+dEQP-VK.subgroups.shuffle.compute.subgroupshuffledown_uvec2_requiredsubgroupsize
 dEQP-VK.subgroups.shuffle.compute.subgroupshuffle_uvec3
+dEQP-VK.subgroups.shuffle.compute.subgroupshuffle_uvec3_requiredsubgroupsize
 dEQP-VK.subgroups.shuffle.compute.subgroupshufflexor_uvec3
+dEQP-VK.subgroups.shuffle.compute.subgroupshufflexor_uvec3_requiredsubgroupsize
 dEQP-VK.subgroups.shuffle.compute.subgroupshuffleup_uvec3
+dEQP-VK.subgroups.shuffle.compute.subgroupshuffleup_uvec3_requiredsubgroupsize
 dEQP-VK.subgroups.shuffle.compute.subgroupshuffledown_uvec3
+dEQP-VK.subgroups.shuffle.compute.subgroupshuffledown_uvec3_requiredsubgroupsize
 dEQP-VK.subgroups.shuffle.compute.subgroupshuffle_uvec4
+dEQP-VK.subgroups.shuffle.compute.subgroupshuffle_uvec4_requiredsubgroupsize
 dEQP-VK.subgroups.shuffle.compute.subgroupshufflexor_uvec4
+dEQP-VK.subgroups.shuffle.compute.subgroupshufflexor_uvec4_requiredsubgroupsize
 dEQP-VK.subgroups.shuffle.compute.subgroupshuffleup_uvec4
+dEQP-VK.subgroups.shuffle.compute.subgroupshuffleup_uvec4_requiredsubgroupsize
 dEQP-VK.subgroups.shuffle.compute.subgroupshuffledown_uvec4
+dEQP-VK.subgroups.shuffle.compute.subgroupshuffledown_uvec4_requiredsubgroupsize
 dEQP-VK.subgroups.shuffle.compute.subgroupshuffle_int64_t
+dEQP-VK.subgroups.shuffle.compute.subgroupshuffle_int64_t_requiredsubgroupsize
 dEQP-VK.subgroups.shuffle.compute.subgroupshufflexor_int64_t
+dEQP-VK.subgroups.shuffle.compute.subgroupshufflexor_int64_t_requiredsubgroupsize
 dEQP-VK.subgroups.shuffle.compute.subgroupshuffleup_int64_t
+dEQP-VK.subgroups.shuffle.compute.subgroupshuffleup_int64_t_requiredsubgroupsize
 dEQP-VK.subgroups.shuffle.compute.subgroupshuffledown_int64_t
+dEQP-VK.subgroups.shuffle.compute.subgroupshuffledown_int64_t_requiredsubgroupsize
 dEQP-VK.subgroups.shuffle.compute.subgroupshuffle_i64vec2
+dEQP-VK.subgroups.shuffle.compute.subgroupshuffle_i64vec2_requiredsubgroupsize
 dEQP-VK.subgroups.shuffle.compute.subgroupshufflexor_i64vec2
+dEQP-VK.subgroups.shuffle.compute.subgroupshufflexor_i64vec2_requiredsubgroupsize
 dEQP-VK.subgroups.shuffle.compute.subgroupshuffleup_i64vec2
+dEQP-VK.subgroups.shuffle.compute.subgroupshuffleup_i64vec2_requiredsubgroupsize
 dEQP-VK.subgroups.shuffle.compute.subgroupshuffledown_i64vec2
+dEQP-VK.subgroups.shuffle.compute.subgroupshuffledown_i64vec2_requiredsubgroupsize
 dEQP-VK.subgroups.shuffle.compute.subgroupshuffle_i64vec3
+dEQP-VK.subgroups.shuffle.compute.subgroupshuffle_i64vec3_requiredsubgroupsize
 dEQP-VK.subgroups.shuffle.compute.subgroupshufflexor_i64vec3
+dEQP-VK.subgroups.shuffle.compute.subgroupshufflexor_i64vec3_requiredsubgroupsize
 dEQP-VK.subgroups.shuffle.compute.subgroupshuffleup_i64vec3
+dEQP-VK.subgroups.shuffle.compute.subgroupshuffleup_i64vec3_requiredsubgroupsize
 dEQP-VK.subgroups.shuffle.compute.subgroupshuffledown_i64vec3
+dEQP-VK.subgroups.shuffle.compute.subgroupshuffledown_i64vec3_requiredsubgroupsize
 dEQP-VK.subgroups.shuffle.compute.subgroupshuffle_i64vec4
+dEQP-VK.subgroups.shuffle.compute.subgroupshuffle_i64vec4_requiredsubgroupsize
 dEQP-VK.subgroups.shuffle.compute.subgroupshufflexor_i64vec4
+dEQP-VK.subgroups.shuffle.compute.subgroupshufflexor_i64vec4_requiredsubgroupsize
 dEQP-VK.subgroups.shuffle.compute.subgroupshuffleup_i64vec4
+dEQP-VK.subgroups.shuffle.compute.subgroupshuffleup_i64vec4_requiredsubgroupsize
 dEQP-VK.subgroups.shuffle.compute.subgroupshuffledown_i64vec4
+dEQP-VK.subgroups.shuffle.compute.subgroupshuffledown_i64vec4_requiredsubgroupsize
 dEQP-VK.subgroups.shuffle.compute.subgroupshuffle_uint64_t
+dEQP-VK.subgroups.shuffle.compute.subgroupshuffle_uint64_t_requiredsubgroupsize
 dEQP-VK.subgroups.shuffle.compute.subgroupshufflexor_uint64_t
+dEQP-VK.subgroups.shuffle.compute.subgroupshufflexor_uint64_t_requiredsubgroupsize
 dEQP-VK.subgroups.shuffle.compute.subgroupshuffleup_uint64_t
+dEQP-VK.subgroups.shuffle.compute.subgroupshuffleup_uint64_t_requiredsubgroupsize
 dEQP-VK.subgroups.shuffle.compute.subgroupshuffledown_uint64_t
+dEQP-VK.subgroups.shuffle.compute.subgroupshuffledown_uint64_t_requiredsubgroupsize
 dEQP-VK.subgroups.shuffle.compute.subgroupshuffle_u64vec2
+dEQP-VK.subgroups.shuffle.compute.subgroupshuffle_u64vec2_requiredsubgroupsize
 dEQP-VK.subgroups.shuffle.compute.subgroupshufflexor_u64vec2
+dEQP-VK.subgroups.shuffle.compute.subgroupshufflexor_u64vec2_requiredsubgroupsize
 dEQP-VK.subgroups.shuffle.compute.subgroupshuffleup_u64vec2
+dEQP-VK.subgroups.shuffle.compute.subgroupshuffleup_u64vec2_requiredsubgroupsize
 dEQP-VK.subgroups.shuffle.compute.subgroupshuffledown_u64vec2
+dEQP-VK.subgroups.shuffle.compute.subgroupshuffledown_u64vec2_requiredsubgroupsize
 dEQP-VK.subgroups.shuffle.compute.subgroupshuffle_u64vec3
+dEQP-VK.subgroups.shuffle.compute.subgroupshuffle_u64vec3_requiredsubgroupsize
 dEQP-VK.subgroups.shuffle.compute.subgroupshufflexor_u64vec3
+dEQP-VK.subgroups.shuffle.compute.subgroupshufflexor_u64vec3_requiredsubgroupsize
 dEQP-VK.subgroups.shuffle.compute.subgroupshuffleup_u64vec3
+dEQP-VK.subgroups.shuffle.compute.subgroupshuffleup_u64vec3_requiredsubgroupsize
 dEQP-VK.subgroups.shuffle.compute.subgroupshuffledown_u64vec3
+dEQP-VK.subgroups.shuffle.compute.subgroupshuffledown_u64vec3_requiredsubgroupsize
 dEQP-VK.subgroups.shuffle.compute.subgroupshuffle_u64vec4
+dEQP-VK.subgroups.shuffle.compute.subgroupshuffle_u64vec4_requiredsubgroupsize
 dEQP-VK.subgroups.shuffle.compute.subgroupshufflexor_u64vec4
+dEQP-VK.subgroups.shuffle.compute.subgroupshufflexor_u64vec4_requiredsubgroupsize
 dEQP-VK.subgroups.shuffle.compute.subgroupshuffleup_u64vec4
+dEQP-VK.subgroups.shuffle.compute.subgroupshuffleup_u64vec4_requiredsubgroupsize
 dEQP-VK.subgroups.shuffle.compute.subgroupshuffledown_u64vec4
+dEQP-VK.subgroups.shuffle.compute.subgroupshuffledown_u64vec4_requiredsubgroupsize
 dEQP-VK.subgroups.shuffle.compute.subgroupshuffle_float16_t
+dEQP-VK.subgroups.shuffle.compute.subgroupshuffle_float16_t_requiredsubgroupsize
 dEQP-VK.subgroups.shuffle.compute.subgroupshufflexor_float16_t
+dEQP-VK.subgroups.shuffle.compute.subgroupshufflexor_float16_t_requiredsubgroupsize
 dEQP-VK.subgroups.shuffle.compute.subgroupshuffleup_float16_t
+dEQP-VK.subgroups.shuffle.compute.subgroupshuffleup_float16_t_requiredsubgroupsize
 dEQP-VK.subgroups.shuffle.compute.subgroupshuffledown_float16_t
+dEQP-VK.subgroups.shuffle.compute.subgroupshuffledown_float16_t_requiredsubgroupsize
 dEQP-VK.subgroups.shuffle.compute.subgroupshuffle_f16vec2
+dEQP-VK.subgroups.shuffle.compute.subgroupshuffle_f16vec2_requiredsubgroupsize
 dEQP-VK.subgroups.shuffle.compute.subgroupshufflexor_f16vec2
+dEQP-VK.subgroups.shuffle.compute.subgroupshufflexor_f16vec2_requiredsubgroupsize
 dEQP-VK.subgroups.shuffle.compute.subgroupshuffleup_f16vec2
+dEQP-VK.subgroups.shuffle.compute.subgroupshuffleup_f16vec2_requiredsubgroupsize
 dEQP-VK.subgroups.shuffle.compute.subgroupshuffledown_f16vec2
+dEQP-VK.subgroups.shuffle.compute.subgroupshuffledown_f16vec2_requiredsubgroupsize
 dEQP-VK.subgroups.shuffle.compute.subgroupshuffle_f16vec3
+dEQP-VK.subgroups.shuffle.compute.subgroupshuffle_f16vec3_requiredsubgroupsize
 dEQP-VK.subgroups.shuffle.compute.subgroupshufflexor_f16vec3
+dEQP-VK.subgroups.shuffle.compute.subgroupshufflexor_f16vec3_requiredsubgroupsize
 dEQP-VK.subgroups.shuffle.compute.subgroupshuffleup_f16vec3
+dEQP-VK.subgroups.shuffle.compute.subgroupshuffleup_f16vec3_requiredsubgroupsize
 dEQP-VK.subgroups.shuffle.compute.subgroupshuffledown_f16vec3
+dEQP-VK.subgroups.shuffle.compute.subgroupshuffledown_f16vec3_requiredsubgroupsize
 dEQP-VK.subgroups.shuffle.compute.subgroupshuffle_f16vec4
+dEQP-VK.subgroups.shuffle.compute.subgroupshuffle_f16vec4_requiredsubgroupsize
 dEQP-VK.subgroups.shuffle.compute.subgroupshufflexor_f16vec4
+dEQP-VK.subgroups.shuffle.compute.subgroupshufflexor_f16vec4_requiredsubgroupsize
 dEQP-VK.subgroups.shuffle.compute.subgroupshuffleup_f16vec4
+dEQP-VK.subgroups.shuffle.compute.subgroupshuffleup_f16vec4_requiredsubgroupsize
 dEQP-VK.subgroups.shuffle.compute.subgroupshuffledown_f16vec4
+dEQP-VK.subgroups.shuffle.compute.subgroupshuffledown_f16vec4_requiredsubgroupsize
 dEQP-VK.subgroups.shuffle.compute.subgroupshuffle_float
+dEQP-VK.subgroups.shuffle.compute.subgroupshuffle_float_requiredsubgroupsize
 dEQP-VK.subgroups.shuffle.compute.subgroupshufflexor_float
+dEQP-VK.subgroups.shuffle.compute.subgroupshufflexor_float_requiredsubgroupsize
 dEQP-VK.subgroups.shuffle.compute.subgroupshuffleup_float
+dEQP-VK.subgroups.shuffle.compute.subgroupshuffleup_float_requiredsubgroupsize
 dEQP-VK.subgroups.shuffle.compute.subgroupshuffledown_float
+dEQP-VK.subgroups.shuffle.compute.subgroupshuffledown_float_requiredsubgroupsize
 dEQP-VK.subgroups.shuffle.compute.subgroupshuffle_vec2
+dEQP-VK.subgroups.shuffle.compute.subgroupshuffle_vec2_requiredsubgroupsize
 dEQP-VK.subgroups.shuffle.compute.subgroupshufflexor_vec2
+dEQP-VK.subgroups.shuffle.compute.subgroupshufflexor_vec2_requiredsubgroupsize
 dEQP-VK.subgroups.shuffle.compute.subgroupshuffleup_vec2
+dEQP-VK.subgroups.shuffle.compute.subgroupshuffleup_vec2_requiredsubgroupsize
 dEQP-VK.subgroups.shuffle.compute.subgroupshuffledown_vec2
+dEQP-VK.subgroups.shuffle.compute.subgroupshuffledown_vec2_requiredsubgroupsize
 dEQP-VK.subgroups.shuffle.compute.subgroupshuffle_vec3
+dEQP-VK.subgroups.shuffle.compute.subgroupshuffle_vec3_requiredsubgroupsize
 dEQP-VK.subgroups.shuffle.compute.subgroupshufflexor_vec3
+dEQP-VK.subgroups.shuffle.compute.subgroupshufflexor_vec3_requiredsubgroupsize
 dEQP-VK.subgroups.shuffle.compute.subgroupshuffleup_vec3
+dEQP-VK.subgroups.shuffle.compute.subgroupshuffleup_vec3_requiredsubgroupsize
 dEQP-VK.subgroups.shuffle.compute.subgroupshuffledown_vec3
+dEQP-VK.subgroups.shuffle.compute.subgroupshuffledown_vec3_requiredsubgroupsize
 dEQP-VK.subgroups.shuffle.compute.subgroupshuffle_vec4
+dEQP-VK.subgroups.shuffle.compute.subgroupshuffle_vec4_requiredsubgroupsize
 dEQP-VK.subgroups.shuffle.compute.subgroupshufflexor_vec4
+dEQP-VK.subgroups.shuffle.compute.subgroupshufflexor_vec4_requiredsubgroupsize
 dEQP-VK.subgroups.shuffle.compute.subgroupshuffleup_vec4
+dEQP-VK.subgroups.shuffle.compute.subgroupshuffleup_vec4_requiredsubgroupsize
 dEQP-VK.subgroups.shuffle.compute.subgroupshuffledown_vec4
+dEQP-VK.subgroups.shuffle.compute.subgroupshuffledown_vec4_requiredsubgroupsize
 dEQP-VK.subgroups.shuffle.compute.subgroupshuffle_double
+dEQP-VK.subgroups.shuffle.compute.subgroupshuffle_double_requiredsubgroupsize
 dEQP-VK.subgroups.shuffle.compute.subgroupshufflexor_double
+dEQP-VK.subgroups.shuffle.compute.subgroupshufflexor_double_requiredsubgroupsize
 dEQP-VK.subgroups.shuffle.compute.subgroupshuffleup_double
+dEQP-VK.subgroups.shuffle.compute.subgroupshuffleup_double_requiredsubgroupsize
 dEQP-VK.subgroups.shuffle.compute.subgroupshuffledown_double
+dEQP-VK.subgroups.shuffle.compute.subgroupshuffledown_double_requiredsubgroupsize
 dEQP-VK.subgroups.shuffle.compute.subgroupshuffle_dvec2
+dEQP-VK.subgroups.shuffle.compute.subgroupshuffle_dvec2_requiredsubgroupsize
 dEQP-VK.subgroups.shuffle.compute.subgroupshufflexor_dvec2
+dEQP-VK.subgroups.shuffle.compute.subgroupshufflexor_dvec2_requiredsubgroupsize
 dEQP-VK.subgroups.shuffle.compute.subgroupshuffleup_dvec2
+dEQP-VK.subgroups.shuffle.compute.subgroupshuffleup_dvec2_requiredsubgroupsize
 dEQP-VK.subgroups.shuffle.compute.subgroupshuffledown_dvec2
+dEQP-VK.subgroups.shuffle.compute.subgroupshuffledown_dvec2_requiredsubgroupsize
 dEQP-VK.subgroups.shuffle.compute.subgroupshuffle_dvec3
+dEQP-VK.subgroups.shuffle.compute.subgroupshuffle_dvec3_requiredsubgroupsize
 dEQP-VK.subgroups.shuffle.compute.subgroupshufflexor_dvec3
+dEQP-VK.subgroups.shuffle.compute.subgroupshufflexor_dvec3_requiredsubgroupsize
 dEQP-VK.subgroups.shuffle.compute.subgroupshuffleup_dvec3
+dEQP-VK.subgroups.shuffle.compute.subgroupshuffleup_dvec3_requiredsubgroupsize
 dEQP-VK.subgroups.shuffle.compute.subgroupshuffledown_dvec3
+dEQP-VK.subgroups.shuffle.compute.subgroupshuffledown_dvec3_requiredsubgroupsize
 dEQP-VK.subgroups.shuffle.compute.subgroupshuffle_dvec4
+dEQP-VK.subgroups.shuffle.compute.subgroupshuffle_dvec4_requiredsubgroupsize
 dEQP-VK.subgroups.shuffle.compute.subgroupshufflexor_dvec4
+dEQP-VK.subgroups.shuffle.compute.subgroupshufflexor_dvec4_requiredsubgroupsize
 dEQP-VK.subgroups.shuffle.compute.subgroupshuffleup_dvec4
+dEQP-VK.subgroups.shuffle.compute.subgroupshuffleup_dvec4_requiredsubgroupsize
 dEQP-VK.subgroups.shuffle.compute.subgroupshuffledown_dvec4
+dEQP-VK.subgroups.shuffle.compute.subgroupshuffledown_dvec4_requiredsubgroupsize
 dEQP-VK.subgroups.shuffle.compute.subgroupshuffle_bool
+dEQP-VK.subgroups.shuffle.compute.subgroupshuffle_bool_requiredsubgroupsize
 dEQP-VK.subgroups.shuffle.compute.subgroupshufflexor_bool
+dEQP-VK.subgroups.shuffle.compute.subgroupshufflexor_bool_requiredsubgroupsize
 dEQP-VK.subgroups.shuffle.compute.subgroupshuffleup_bool
+dEQP-VK.subgroups.shuffle.compute.subgroupshuffleup_bool_requiredsubgroupsize
 dEQP-VK.subgroups.shuffle.compute.subgroupshuffledown_bool
+dEQP-VK.subgroups.shuffle.compute.subgroupshuffledown_bool_requiredsubgroupsize
 dEQP-VK.subgroups.shuffle.compute.subgroupshuffle_bvec2
+dEQP-VK.subgroups.shuffle.compute.subgroupshuffle_bvec2_requiredsubgroupsize
 dEQP-VK.subgroups.shuffle.compute.subgroupshufflexor_bvec2
+dEQP-VK.subgroups.shuffle.compute.subgroupshufflexor_bvec2_requiredsubgroupsize
 dEQP-VK.subgroups.shuffle.compute.subgroupshuffleup_bvec2
+dEQP-VK.subgroups.shuffle.compute.subgroupshuffleup_bvec2_requiredsubgroupsize
 dEQP-VK.subgroups.shuffle.compute.subgroupshuffledown_bvec2
+dEQP-VK.subgroups.shuffle.compute.subgroupshuffledown_bvec2_requiredsubgroupsize
 dEQP-VK.subgroups.shuffle.compute.subgroupshuffle_bvec3
+dEQP-VK.subgroups.shuffle.compute.subgroupshuffle_bvec3_requiredsubgroupsize
 dEQP-VK.subgroups.shuffle.compute.subgroupshufflexor_bvec3
+dEQP-VK.subgroups.shuffle.compute.subgroupshufflexor_bvec3_requiredsubgroupsize
 dEQP-VK.subgroups.shuffle.compute.subgroupshuffleup_bvec3
+dEQP-VK.subgroups.shuffle.compute.subgroupshuffleup_bvec3_requiredsubgroupsize
 dEQP-VK.subgroups.shuffle.compute.subgroupshuffledown_bvec3
+dEQP-VK.subgroups.shuffle.compute.subgroupshuffledown_bvec3_requiredsubgroupsize
 dEQP-VK.subgroups.shuffle.compute.subgroupshuffle_bvec4
+dEQP-VK.subgroups.shuffle.compute.subgroupshuffle_bvec4_requiredsubgroupsize
 dEQP-VK.subgroups.shuffle.compute.subgroupshufflexor_bvec4
+dEQP-VK.subgroups.shuffle.compute.subgroupshufflexor_bvec4_requiredsubgroupsize
 dEQP-VK.subgroups.shuffle.compute.subgroupshuffleup_bvec4
+dEQP-VK.subgroups.shuffle.compute.subgroupshuffleup_bvec4_requiredsubgroupsize
 dEQP-VK.subgroups.shuffle.compute.subgroupshuffledown_bvec4
+dEQP-VK.subgroups.shuffle.compute.subgroupshuffledown_bvec4_requiredsubgroupsize
 dEQP-VK.subgroups.shuffle.framebuffer.subgroupshuffle_int8_t_vertex
 dEQP-VK.subgroups.shuffle.framebuffer.subgroupshuffle_int8_t_tess_eval
 dEQP-VK.subgroups.shuffle.framebuffer.subgroupshuffle_int8_t_tess_control
@@ -522869,245 +525279,485 @@ dEQP-VK.subgroups.quad.graphics.subgroupquadswaphorizontal_bvec4
 dEQP-VK.subgroups.quad.graphics.subgroupquadswapvertical_bvec4
 dEQP-VK.subgroups.quad.graphics.subgroupquadswapdiagonal_bvec4
 dEQP-VK.subgroups.quad.compute.subgroupquadbroadcast_int8_t
+dEQP-VK.subgroups.quad.compute.subgroupquadbroadcast_int8_t_requiredsubgroupsize
 dEQP-VK.subgroups.quad.compute.subgroupquadbroadcast_nonconst_int8_t
+dEQP-VK.subgroups.quad.compute.subgroupquadbroadcast_nonconst_int8_t_requiredsubgroupsize
 dEQP-VK.subgroups.quad.compute.subgroupquadswaphorizontal_int8_t
+dEQP-VK.subgroups.quad.compute.subgroupquadswaphorizontal_int8_t_requiredsubgroupsize
 dEQP-VK.subgroups.quad.compute.subgroupquadswapvertical_int8_t
+dEQP-VK.subgroups.quad.compute.subgroupquadswapvertical_int8_t_requiredsubgroupsize
 dEQP-VK.subgroups.quad.compute.subgroupquadswapdiagonal_int8_t
+dEQP-VK.subgroups.quad.compute.subgroupquadswapdiagonal_int8_t_requiredsubgroupsize
 dEQP-VK.subgroups.quad.compute.subgroupquadbroadcast_i8vec2
+dEQP-VK.subgroups.quad.compute.subgroupquadbroadcast_i8vec2_requiredsubgroupsize
 dEQP-VK.subgroups.quad.compute.subgroupquadbroadcast_nonconst_i8vec2
+dEQP-VK.subgroups.quad.compute.subgroupquadbroadcast_nonconst_i8vec2_requiredsubgroupsize
 dEQP-VK.subgroups.quad.compute.subgroupquadswaphorizontal_i8vec2
+dEQP-VK.subgroups.quad.compute.subgroupquadswaphorizontal_i8vec2_requiredsubgroupsize
 dEQP-VK.subgroups.quad.compute.subgroupquadswapvertical_i8vec2
+dEQP-VK.subgroups.quad.compute.subgroupquadswapvertical_i8vec2_requiredsubgroupsize
 dEQP-VK.subgroups.quad.compute.subgroupquadswapdiagonal_i8vec2
+dEQP-VK.subgroups.quad.compute.subgroupquadswapdiagonal_i8vec2_requiredsubgroupsize
 dEQP-VK.subgroups.quad.compute.subgroupquadbroadcast_i8vec3
+dEQP-VK.subgroups.quad.compute.subgroupquadbroadcast_i8vec3_requiredsubgroupsize
 dEQP-VK.subgroups.quad.compute.subgroupquadbroadcast_nonconst_i8vec3
+dEQP-VK.subgroups.quad.compute.subgroupquadbroadcast_nonconst_i8vec3_requiredsubgroupsize
 dEQP-VK.subgroups.quad.compute.subgroupquadswaphorizontal_i8vec3
+dEQP-VK.subgroups.quad.compute.subgroupquadswaphorizontal_i8vec3_requiredsubgroupsize
 dEQP-VK.subgroups.quad.compute.subgroupquadswapvertical_i8vec3
+dEQP-VK.subgroups.quad.compute.subgroupquadswapvertical_i8vec3_requiredsubgroupsize
 dEQP-VK.subgroups.quad.compute.subgroupquadswapdiagonal_i8vec3
+dEQP-VK.subgroups.quad.compute.subgroupquadswapdiagonal_i8vec3_requiredsubgroupsize
 dEQP-VK.subgroups.quad.compute.subgroupquadbroadcast_i8vec4
+dEQP-VK.subgroups.quad.compute.subgroupquadbroadcast_i8vec4_requiredsubgroupsize
 dEQP-VK.subgroups.quad.compute.subgroupquadbroadcast_nonconst_i8vec4
+dEQP-VK.subgroups.quad.compute.subgroupquadbroadcast_nonconst_i8vec4_requiredsubgroupsize
 dEQP-VK.subgroups.quad.compute.subgroupquadswaphorizontal_i8vec4
+dEQP-VK.subgroups.quad.compute.subgroupquadswaphorizontal_i8vec4_requiredsubgroupsize
 dEQP-VK.subgroups.quad.compute.subgroupquadswapvertical_i8vec4
+dEQP-VK.subgroups.quad.compute.subgroupquadswapvertical_i8vec4_requiredsubgroupsize
 dEQP-VK.subgroups.quad.compute.subgroupquadswapdiagonal_i8vec4
+dEQP-VK.subgroups.quad.compute.subgroupquadswapdiagonal_i8vec4_requiredsubgroupsize
 dEQP-VK.subgroups.quad.compute.subgroupquadbroadcast_uint8_t
+dEQP-VK.subgroups.quad.compute.subgroupquadbroadcast_uint8_t_requiredsubgroupsize
 dEQP-VK.subgroups.quad.compute.subgroupquadbroadcast_nonconst_uint8_t
+dEQP-VK.subgroups.quad.compute.subgroupquadbroadcast_nonconst_uint8_t_requiredsubgroupsize
 dEQP-VK.subgroups.quad.compute.subgroupquadswaphorizontal_uint8_t
+dEQP-VK.subgroups.quad.compute.subgroupquadswaphorizontal_uint8_t_requiredsubgroupsize
 dEQP-VK.subgroups.quad.compute.subgroupquadswapvertical_uint8_t
+dEQP-VK.subgroups.quad.compute.subgroupquadswapvertical_uint8_t_requiredsubgroupsize
 dEQP-VK.subgroups.quad.compute.subgroupquadswapdiagonal_uint8_t
+dEQP-VK.subgroups.quad.compute.subgroupquadswapdiagonal_uint8_t_requiredsubgroupsize
 dEQP-VK.subgroups.quad.compute.subgroupquadbroadcast_u8vec2
+dEQP-VK.subgroups.quad.compute.subgroupquadbroadcast_u8vec2_requiredsubgroupsize
 dEQP-VK.subgroups.quad.compute.subgroupquadbroadcast_nonconst_u8vec2
+dEQP-VK.subgroups.quad.compute.subgroupquadbroadcast_nonconst_u8vec2_requiredsubgroupsize
 dEQP-VK.subgroups.quad.compute.subgroupquadswaphorizontal_u8vec2
+dEQP-VK.subgroups.quad.compute.subgroupquadswaphorizontal_u8vec2_requiredsubgroupsize
 dEQP-VK.subgroups.quad.compute.subgroupquadswapvertical_u8vec2
+dEQP-VK.subgroups.quad.compute.subgroupquadswapvertical_u8vec2_requiredsubgroupsize
 dEQP-VK.subgroups.quad.compute.subgroupquadswapdiagonal_u8vec2
+dEQP-VK.subgroups.quad.compute.subgroupquadswapdiagonal_u8vec2_requiredsubgroupsize
 dEQP-VK.subgroups.quad.compute.subgroupquadbroadcast_u8vec3
+dEQP-VK.subgroups.quad.compute.subgroupquadbroadcast_u8vec3_requiredsubgroupsize
 dEQP-VK.subgroups.quad.compute.subgroupquadbroadcast_nonconst_u8vec3
+dEQP-VK.subgroups.quad.compute.subgroupquadbroadcast_nonconst_u8vec3_requiredsubgroupsize
 dEQP-VK.subgroups.quad.compute.subgroupquadswaphorizontal_u8vec3
+dEQP-VK.subgroups.quad.compute.subgroupquadswaphorizontal_u8vec3_requiredsubgroupsize
 dEQP-VK.subgroups.quad.compute.subgroupquadswapvertical_u8vec3
+dEQP-VK.subgroups.quad.compute.subgroupquadswapvertical_u8vec3_requiredsubgroupsize
 dEQP-VK.subgroups.quad.compute.subgroupquadswapdiagonal_u8vec3
+dEQP-VK.subgroups.quad.compute.subgroupquadswapdiagonal_u8vec3_requiredsubgroupsize
 dEQP-VK.subgroups.quad.compute.subgroupquadbroadcast_u8vec4
+dEQP-VK.subgroups.quad.compute.subgroupquadbroadcast_u8vec4_requiredsubgroupsize
 dEQP-VK.subgroups.quad.compute.subgroupquadbroadcast_nonconst_u8vec4
+dEQP-VK.subgroups.quad.compute.subgroupquadbroadcast_nonconst_u8vec4_requiredsubgroupsize
 dEQP-VK.subgroups.quad.compute.subgroupquadswaphorizontal_u8vec4
+dEQP-VK.subgroups.quad.compute.subgroupquadswaphorizontal_u8vec4_requiredsubgroupsize
 dEQP-VK.subgroups.quad.compute.subgroupquadswapvertical_u8vec4
+dEQP-VK.subgroups.quad.compute.subgroupquadswapvertical_u8vec4_requiredsubgroupsize
 dEQP-VK.subgroups.quad.compute.subgroupquadswapdiagonal_u8vec4
+dEQP-VK.subgroups.quad.compute.subgroupquadswapdiagonal_u8vec4_requiredsubgroupsize
 dEQP-VK.subgroups.quad.compute.subgroupquadbroadcast_int16_t
+dEQP-VK.subgroups.quad.compute.subgroupquadbroadcast_int16_t_requiredsubgroupsize
 dEQP-VK.subgroups.quad.compute.subgroupquadbroadcast_nonconst_int16_t
+dEQP-VK.subgroups.quad.compute.subgroupquadbroadcast_nonconst_int16_t_requiredsubgroupsize
 dEQP-VK.subgroups.quad.compute.subgroupquadswaphorizontal_int16_t
+dEQP-VK.subgroups.quad.compute.subgroupquadswaphorizontal_int16_t_requiredsubgroupsize
 dEQP-VK.subgroups.quad.compute.subgroupquadswapvertical_int16_t
+dEQP-VK.subgroups.quad.compute.subgroupquadswapvertical_int16_t_requiredsubgroupsize
 dEQP-VK.subgroups.quad.compute.subgroupquadswapdiagonal_int16_t
+dEQP-VK.subgroups.quad.compute.subgroupquadswapdiagonal_int16_t_requiredsubgroupsize
 dEQP-VK.subgroups.quad.compute.subgroupquadbroadcast_i16vec2
+dEQP-VK.subgroups.quad.compute.subgroupquadbroadcast_i16vec2_requiredsubgroupsize
 dEQP-VK.subgroups.quad.compute.subgroupquadbroadcast_nonconst_i16vec2
+dEQP-VK.subgroups.quad.compute.subgroupquadbroadcast_nonconst_i16vec2_requiredsubgroupsize
 dEQP-VK.subgroups.quad.compute.subgroupquadswaphorizontal_i16vec2
+dEQP-VK.subgroups.quad.compute.subgroupquadswaphorizontal_i16vec2_requiredsubgroupsize
 dEQP-VK.subgroups.quad.compute.subgroupquadswapvertical_i16vec2
+dEQP-VK.subgroups.quad.compute.subgroupquadswapvertical_i16vec2_requiredsubgroupsize
 dEQP-VK.subgroups.quad.compute.subgroupquadswapdiagonal_i16vec2
+dEQP-VK.subgroups.quad.compute.subgroupquadswapdiagonal_i16vec2_requiredsubgroupsize
 dEQP-VK.subgroups.quad.compute.subgroupquadbroadcast_i16vec3
+dEQP-VK.subgroups.quad.compute.subgroupquadbroadcast_i16vec3_requiredsubgroupsize
 dEQP-VK.subgroups.quad.compute.subgroupquadbroadcast_nonconst_i16vec3
+dEQP-VK.subgroups.quad.compute.subgroupquadbroadcast_nonconst_i16vec3_requiredsubgroupsize
 dEQP-VK.subgroups.quad.compute.subgroupquadswaphorizontal_i16vec3
+dEQP-VK.subgroups.quad.compute.subgroupquadswaphorizontal_i16vec3_requiredsubgroupsize
 dEQP-VK.subgroups.quad.compute.subgroupquadswapvertical_i16vec3
+dEQP-VK.subgroups.quad.compute.subgroupquadswapvertical_i16vec3_requiredsubgroupsize
 dEQP-VK.subgroups.quad.compute.subgroupquadswapdiagonal_i16vec3
+dEQP-VK.subgroups.quad.compute.subgroupquadswapdiagonal_i16vec3_requiredsubgroupsize
 dEQP-VK.subgroups.quad.compute.subgroupquadbroadcast_i16vec4
+dEQP-VK.subgroups.quad.compute.subgroupquadbroadcast_i16vec4_requiredsubgroupsize
 dEQP-VK.subgroups.quad.compute.subgroupquadbroadcast_nonconst_i16vec4
+dEQP-VK.subgroups.quad.compute.subgroupquadbroadcast_nonconst_i16vec4_requiredsubgroupsize
 dEQP-VK.subgroups.quad.compute.subgroupquadswaphorizontal_i16vec4
+dEQP-VK.subgroups.quad.compute.subgroupquadswaphorizontal_i16vec4_requiredsubgroupsize
 dEQP-VK.subgroups.quad.compute.subgroupquadswapvertical_i16vec4
+dEQP-VK.subgroups.quad.compute.subgroupquadswapvertical_i16vec4_requiredsubgroupsize
 dEQP-VK.subgroups.quad.compute.subgroupquadswapdiagonal_i16vec4
+dEQP-VK.subgroups.quad.compute.subgroupquadswapdiagonal_i16vec4_requiredsubgroupsize
 dEQP-VK.subgroups.quad.compute.subgroupquadbroadcast_uint16_t
+dEQP-VK.subgroups.quad.compute.subgroupquadbroadcast_uint16_t_requiredsubgroupsize
 dEQP-VK.subgroups.quad.compute.subgroupquadbroadcast_nonconst_uint16_t
+dEQP-VK.subgroups.quad.compute.subgroupquadbroadcast_nonconst_uint16_t_requiredsubgroupsize
 dEQP-VK.subgroups.quad.compute.subgroupquadswaphorizontal_uint16_t
+dEQP-VK.subgroups.quad.compute.subgroupquadswaphorizontal_uint16_t_requiredsubgroupsize
 dEQP-VK.subgroups.quad.compute.subgroupquadswapvertical_uint16_t
+dEQP-VK.subgroups.quad.compute.subgroupquadswapvertical_uint16_t_requiredsubgroupsize
 dEQP-VK.subgroups.quad.compute.subgroupquadswapdiagonal_uint16_t
+dEQP-VK.subgroups.quad.compute.subgroupquadswapdiagonal_uint16_t_requiredsubgroupsize
 dEQP-VK.subgroups.quad.compute.subgroupquadbroadcast_u16vec2
+dEQP-VK.subgroups.quad.compute.subgroupquadbroadcast_u16vec2_requiredsubgroupsize
 dEQP-VK.subgroups.quad.compute.subgroupquadbroadcast_nonconst_u16vec2
+dEQP-VK.subgroups.quad.compute.subgroupquadbroadcast_nonconst_u16vec2_requiredsubgroupsize
 dEQP-VK.subgroups.quad.compute.subgroupquadswaphorizontal_u16vec2
+dEQP-VK.subgroups.quad.compute.subgroupquadswaphorizontal_u16vec2_requiredsubgroupsize
 dEQP-VK.subgroups.quad.compute.subgroupquadswapvertical_u16vec2
+dEQP-VK.subgroups.quad.compute.subgroupquadswapvertical_u16vec2_requiredsubgroupsize
 dEQP-VK.subgroups.quad.compute.subgroupquadswapdiagonal_u16vec2
+dEQP-VK.subgroups.quad.compute.subgroupquadswapdiagonal_u16vec2_requiredsubgroupsize
 dEQP-VK.subgroups.quad.compute.subgroupquadbroadcast_u16vec3
+dEQP-VK.subgroups.quad.compute.subgroupquadbroadcast_u16vec3_requiredsubgroupsize
 dEQP-VK.subgroups.quad.compute.subgroupquadbroadcast_nonconst_u16vec3
+dEQP-VK.subgroups.quad.compute.subgroupquadbroadcast_nonconst_u16vec3_requiredsubgroupsize
 dEQP-VK.subgroups.quad.compute.subgroupquadswaphorizontal_u16vec3
+dEQP-VK.subgroups.quad.compute.subgroupquadswaphorizontal_u16vec3_requiredsubgroupsize
 dEQP-VK.subgroups.quad.compute.subgroupquadswapvertical_u16vec3
+dEQP-VK.subgroups.quad.compute.subgroupquadswapvertical_u16vec3_requiredsubgroupsize
 dEQP-VK.subgroups.quad.compute.subgroupquadswapdiagonal_u16vec3
+dEQP-VK.subgroups.quad.compute.subgroupquadswapdiagonal_u16vec3_requiredsubgroupsize
 dEQP-VK.subgroups.quad.compute.subgroupquadbroadcast_u16vec4
+dEQP-VK.subgroups.quad.compute.subgroupquadbroadcast_u16vec4_requiredsubgroupsize
 dEQP-VK.subgroups.quad.compute.subgroupquadbroadcast_nonconst_u16vec4
+dEQP-VK.subgroups.quad.compute.subgroupquadbroadcast_nonconst_u16vec4_requiredsubgroupsize
 dEQP-VK.subgroups.quad.compute.subgroupquadswaphorizontal_u16vec4
+dEQP-VK.subgroups.quad.compute.subgroupquadswaphorizontal_u16vec4_requiredsubgroupsize
 dEQP-VK.subgroups.quad.compute.subgroupquadswapvertical_u16vec4
+dEQP-VK.subgroups.quad.compute.subgroupquadswapvertical_u16vec4_requiredsubgroupsize
 dEQP-VK.subgroups.quad.compute.subgroupquadswapdiagonal_u16vec4
+dEQP-VK.subgroups.quad.compute.subgroupquadswapdiagonal_u16vec4_requiredsubgroupsize
 dEQP-VK.subgroups.quad.compute.subgroupquadbroadcast_int
+dEQP-VK.subgroups.quad.compute.subgroupquadbroadcast_int_requiredsubgroupsize
 dEQP-VK.subgroups.quad.compute.subgroupquadbroadcast_nonconst_int
+dEQP-VK.subgroups.quad.compute.subgroupquadbroadcast_nonconst_int_requiredsubgroupsize
 dEQP-VK.subgroups.quad.compute.subgroupquadswaphorizontal_int
+dEQP-VK.subgroups.quad.compute.subgroupquadswaphorizontal_int_requiredsubgroupsize
 dEQP-VK.subgroups.quad.compute.subgroupquadswapvertical_int
+dEQP-VK.subgroups.quad.compute.subgroupquadswapvertical_int_requiredsubgroupsize
 dEQP-VK.subgroups.quad.compute.subgroupquadswapdiagonal_int
+dEQP-VK.subgroups.quad.compute.subgroupquadswapdiagonal_int_requiredsubgroupsize
 dEQP-VK.subgroups.quad.compute.subgroupquadbroadcast_ivec2
+dEQP-VK.subgroups.quad.compute.subgroupquadbroadcast_ivec2_requiredsubgroupsize
 dEQP-VK.subgroups.quad.compute.subgroupquadbroadcast_nonconst_ivec2
+dEQP-VK.subgroups.quad.compute.subgroupquadbroadcast_nonconst_ivec2_requiredsubgroupsize
 dEQP-VK.subgroups.quad.compute.subgroupquadswaphorizontal_ivec2
+dEQP-VK.subgroups.quad.compute.subgroupquadswaphorizontal_ivec2_requiredsubgroupsize
 dEQP-VK.subgroups.quad.compute.subgroupquadswapvertical_ivec2
+dEQP-VK.subgroups.quad.compute.subgroupquadswapvertical_ivec2_requiredsubgroupsize
 dEQP-VK.subgroups.quad.compute.subgroupquadswapdiagonal_ivec2
+dEQP-VK.subgroups.quad.compute.subgroupquadswapdiagonal_ivec2_requiredsubgroupsize
 dEQP-VK.subgroups.quad.compute.subgroupquadbroadcast_ivec3
+dEQP-VK.subgroups.quad.compute.subgroupquadbroadcast_ivec3_requiredsubgroupsize
 dEQP-VK.subgroups.quad.compute.subgroupquadbroadcast_nonconst_ivec3
+dEQP-VK.subgroups.quad.compute.subgroupquadbroadcast_nonconst_ivec3_requiredsubgroupsize
 dEQP-VK.subgroups.quad.compute.subgroupquadswaphorizontal_ivec3
+dEQP-VK.subgroups.quad.compute.subgroupquadswaphorizontal_ivec3_requiredsubgroupsize
 dEQP-VK.subgroups.quad.compute.subgroupquadswapvertical_ivec3
+dEQP-VK.subgroups.quad.compute.subgroupquadswapvertical_ivec3_requiredsubgroupsize
 dEQP-VK.subgroups.quad.compute.subgroupquadswapdiagonal_ivec3
+dEQP-VK.subgroups.quad.compute.subgroupquadswapdiagonal_ivec3_requiredsubgroupsize
 dEQP-VK.subgroups.quad.compute.subgroupquadbroadcast_ivec4
+dEQP-VK.subgroups.quad.compute.subgroupquadbroadcast_ivec4_requiredsubgroupsize
 dEQP-VK.subgroups.quad.compute.subgroupquadbroadcast_nonconst_ivec4
+dEQP-VK.subgroups.quad.compute.subgroupquadbroadcast_nonconst_ivec4_requiredsubgroupsize
 dEQP-VK.subgroups.quad.compute.subgroupquadswaphorizontal_ivec4
+dEQP-VK.subgroups.quad.compute.subgroupquadswaphorizontal_ivec4_requiredsubgroupsize
 dEQP-VK.subgroups.quad.compute.subgroupquadswapvertical_ivec4
+dEQP-VK.subgroups.quad.compute.subgroupquadswapvertical_ivec4_requiredsubgroupsize
 dEQP-VK.subgroups.quad.compute.subgroupquadswapdiagonal_ivec4
+dEQP-VK.subgroups.quad.compute.subgroupquadswapdiagonal_ivec4_requiredsubgroupsize
 dEQP-VK.subgroups.quad.compute.subgroupquadbroadcast_uint
+dEQP-VK.subgroups.quad.compute.subgroupquadbroadcast_uint_requiredsubgroupsize
 dEQP-VK.subgroups.quad.compute.subgroupquadbroadcast_nonconst_uint
+dEQP-VK.subgroups.quad.compute.subgroupquadbroadcast_nonconst_uint_requiredsubgroupsize
 dEQP-VK.subgroups.quad.compute.subgroupquadswaphorizontal_uint
+dEQP-VK.subgroups.quad.compute.subgroupquadswaphorizontal_uint_requiredsubgroupsize
 dEQP-VK.subgroups.quad.compute.subgroupquadswapvertical_uint
+dEQP-VK.subgroups.quad.compute.subgroupquadswapvertical_uint_requiredsubgroupsize
 dEQP-VK.subgroups.quad.compute.subgroupquadswapdiagonal_uint
+dEQP-VK.subgroups.quad.compute.subgroupquadswapdiagonal_uint_requiredsubgroupsize
 dEQP-VK.subgroups.quad.compute.subgroupquadbroadcast_uvec2
+dEQP-VK.subgroups.quad.compute.subgroupquadbroadcast_uvec2_requiredsubgroupsize
 dEQP-VK.subgroups.quad.compute.subgroupquadbroadcast_nonconst_uvec2
+dEQP-VK.subgroups.quad.compute.subgroupquadbroadcast_nonconst_uvec2_requiredsubgroupsize
 dEQP-VK.subgroups.quad.compute.subgroupquadswaphorizontal_uvec2
+dEQP-VK.subgroups.quad.compute.subgroupquadswaphorizontal_uvec2_requiredsubgroupsize
 dEQP-VK.subgroups.quad.compute.subgroupquadswapvertical_uvec2
+dEQP-VK.subgroups.quad.compute.subgroupquadswapvertical_uvec2_requiredsubgroupsize
 dEQP-VK.subgroups.quad.compute.subgroupquadswapdiagonal_uvec2
+dEQP-VK.subgroups.quad.compute.subgroupquadswapdiagonal_uvec2_requiredsubgroupsize
 dEQP-VK.subgroups.quad.compute.subgroupquadbroadcast_uvec3
+dEQP-VK.subgroups.quad.compute.subgroupquadbroadcast_uvec3_requiredsubgroupsize
 dEQP-VK.subgroups.quad.compute.subgroupquadbroadcast_nonconst_uvec3
+dEQP-VK.subgroups.quad.compute.subgroupquadbroadcast_nonconst_uvec3_requiredsubgroupsize
 dEQP-VK.subgroups.quad.compute.subgroupquadswaphorizontal_uvec3
+dEQP-VK.subgroups.quad.compute.subgroupquadswaphorizontal_uvec3_requiredsubgroupsize
 dEQP-VK.subgroups.quad.compute.subgroupquadswapvertical_uvec3
+dEQP-VK.subgroups.quad.compute.subgroupquadswapvertical_uvec3_requiredsubgroupsize
 dEQP-VK.subgroups.quad.compute.subgroupquadswapdiagonal_uvec3
+dEQP-VK.subgroups.quad.compute.subgroupquadswapdiagonal_uvec3_requiredsubgroupsize
 dEQP-VK.subgroups.quad.compute.subgroupquadbroadcast_uvec4
+dEQP-VK.subgroups.quad.compute.subgroupquadbroadcast_uvec4_requiredsubgroupsize
 dEQP-VK.subgroups.quad.compute.subgroupquadbroadcast_nonconst_uvec4
+dEQP-VK.subgroups.quad.compute.subgroupquadbroadcast_nonconst_uvec4_requiredsubgroupsize
 dEQP-VK.subgroups.quad.compute.subgroupquadswaphorizontal_uvec4
+dEQP-VK.subgroups.quad.compute.subgroupquadswaphorizontal_uvec4_requiredsubgroupsize
 dEQP-VK.subgroups.quad.compute.subgroupquadswapvertical_uvec4
+dEQP-VK.subgroups.quad.compute.subgroupquadswapvertical_uvec4_requiredsubgroupsize
 dEQP-VK.subgroups.quad.compute.subgroupquadswapdiagonal_uvec4
+dEQP-VK.subgroups.quad.compute.subgroupquadswapdiagonal_uvec4_requiredsubgroupsize
 dEQP-VK.subgroups.quad.compute.subgroupquadbroadcast_int64_t
+dEQP-VK.subgroups.quad.compute.subgroupquadbroadcast_int64_t_requiredsubgroupsize
 dEQP-VK.subgroups.quad.compute.subgroupquadbroadcast_nonconst_int64_t
+dEQP-VK.subgroups.quad.compute.subgroupquadbroadcast_nonconst_int64_t_requiredsubgroupsize
 dEQP-VK.subgroups.quad.compute.subgroupquadswaphorizontal_int64_t
+dEQP-VK.subgroups.quad.compute.subgroupquadswaphorizontal_int64_t_requiredsubgroupsize
 dEQP-VK.subgroups.quad.compute.subgroupquadswapvertical_int64_t
+dEQP-VK.subgroups.quad.compute.subgroupquadswapvertical_int64_t_requiredsubgroupsize
 dEQP-VK.subgroups.quad.compute.subgroupquadswapdiagonal_int64_t
+dEQP-VK.subgroups.quad.compute.subgroupquadswapdiagonal_int64_t_requiredsubgroupsize
 dEQP-VK.subgroups.quad.compute.subgroupquadbroadcast_i64vec2
+dEQP-VK.subgroups.quad.compute.subgroupquadbroadcast_i64vec2_requiredsubgroupsize
 dEQP-VK.subgroups.quad.compute.subgroupquadbroadcast_nonconst_i64vec2
+dEQP-VK.subgroups.quad.compute.subgroupquadbroadcast_nonconst_i64vec2_requiredsubgroupsize
 dEQP-VK.subgroups.quad.compute.subgroupquadswaphorizontal_i64vec2
+dEQP-VK.subgroups.quad.compute.subgroupquadswaphorizontal_i64vec2_requiredsubgroupsize
 dEQP-VK.subgroups.quad.compute.subgroupquadswapvertical_i64vec2
+dEQP-VK.subgroups.quad.compute.subgroupquadswapvertical_i64vec2_requiredsubgroupsize
 dEQP-VK.subgroups.quad.compute.subgroupquadswapdiagonal_i64vec2
+dEQP-VK.subgroups.quad.compute.subgroupquadswapdiagonal_i64vec2_requiredsubgroupsize
 dEQP-VK.subgroups.quad.compute.subgroupquadbroadcast_i64vec3
+dEQP-VK.subgroups.quad.compute.subgroupquadbroadcast_i64vec3_requiredsubgroupsize
 dEQP-VK.subgroups.quad.compute.subgroupquadbroadcast_nonconst_i64vec3
+dEQP-VK.subgroups.quad.compute.subgroupquadbroadcast_nonconst_i64vec3_requiredsubgroupsize
 dEQP-VK.subgroups.quad.compute.subgroupquadswaphorizontal_i64vec3
+dEQP-VK.subgroups.quad.compute.subgroupquadswaphorizontal_i64vec3_requiredsubgroupsize
 dEQP-VK.subgroups.quad.compute.subgroupquadswapvertical_i64vec3
+dEQP-VK.subgroups.quad.compute.subgroupquadswapvertical_i64vec3_requiredsubgroupsize
 dEQP-VK.subgroups.quad.compute.subgroupquadswapdiagonal_i64vec3
+dEQP-VK.subgroups.quad.compute.subgroupquadswapdiagonal_i64vec3_requiredsubgroupsize
 dEQP-VK.subgroups.quad.compute.subgroupquadbroadcast_i64vec4
+dEQP-VK.subgroups.quad.compute.subgroupquadbroadcast_i64vec4_requiredsubgroupsize
 dEQP-VK.subgroups.quad.compute.subgroupquadbroadcast_nonconst_i64vec4
+dEQP-VK.subgroups.quad.compute.subgroupquadbroadcast_nonconst_i64vec4_requiredsubgroupsize
 dEQP-VK.subgroups.quad.compute.subgroupquadswaphorizontal_i64vec4
+dEQP-VK.subgroups.quad.compute.subgroupquadswaphorizontal_i64vec4_requiredsubgroupsize
 dEQP-VK.subgroups.quad.compute.subgroupquadswapvertical_i64vec4
+dEQP-VK.subgroups.quad.compute.subgroupquadswapvertical_i64vec4_requiredsubgroupsize
 dEQP-VK.subgroups.quad.compute.subgroupquadswapdiagonal_i64vec4
+dEQP-VK.subgroups.quad.compute.subgroupquadswapdiagonal_i64vec4_requiredsubgroupsize
 dEQP-VK.subgroups.quad.compute.subgroupquadbroadcast_uint64_t
+dEQP-VK.subgroups.quad.compute.subgroupquadbroadcast_uint64_t_requiredsubgroupsize
 dEQP-VK.subgroups.quad.compute.subgroupquadbroadcast_nonconst_uint64_t
+dEQP-VK.subgroups.quad.compute.subgroupquadbroadcast_nonconst_uint64_t_requiredsubgroupsize
 dEQP-VK.subgroups.quad.compute.subgroupquadswaphorizontal_uint64_t
+dEQP-VK.subgroups.quad.compute.subgroupquadswaphorizontal_uint64_t_requiredsubgroupsize
 dEQP-VK.subgroups.quad.compute.subgroupquadswapvertical_uint64_t
+dEQP-VK.subgroups.quad.compute.subgroupquadswapvertical_uint64_t_requiredsubgroupsize
 dEQP-VK.subgroups.quad.compute.subgroupquadswapdiagonal_uint64_t
+dEQP-VK.subgroups.quad.compute.subgroupquadswapdiagonal_uint64_t_requiredsubgroupsize
 dEQP-VK.subgroups.quad.compute.subgroupquadbroadcast_u64vec2
+dEQP-VK.subgroups.quad.compute.subgroupquadbroadcast_u64vec2_requiredsubgroupsize
 dEQP-VK.subgroups.quad.compute.subgroupquadbroadcast_nonconst_u64vec2
+dEQP-VK.subgroups.quad.compute.subgroupquadbroadcast_nonconst_u64vec2_requiredsubgroupsize
 dEQP-VK.subgroups.quad.compute.subgroupquadswaphorizontal_u64vec2
+dEQP-VK.subgroups.quad.compute.subgroupquadswaphorizontal_u64vec2_requiredsubgroupsize
 dEQP-VK.subgroups.quad.compute.subgroupquadswapvertical_u64vec2
+dEQP-VK.subgroups.quad.compute.subgroupquadswapvertical_u64vec2_requiredsubgroupsize
 dEQP-VK.subgroups.quad.compute.subgroupquadswapdiagonal_u64vec2
+dEQP-VK.subgroups.quad.compute.subgroupquadswapdiagonal_u64vec2_requiredsubgroupsize
 dEQP-VK.subgroups.quad.compute.subgroupquadbroadcast_u64vec3
+dEQP-VK.subgroups.quad.compute.subgroupquadbroadcast_u64vec3_requiredsubgroupsize
 dEQP-VK.subgroups.quad.compute.subgroupquadbroadcast_nonconst_u64vec3
+dEQP-VK.subgroups.quad.compute.subgroupquadbroadcast_nonconst_u64vec3_requiredsubgroupsize
 dEQP-VK.subgroups.quad.compute.subgroupquadswaphorizontal_u64vec3
+dEQP-VK.subgroups.quad.compute.subgroupquadswaphorizontal_u64vec3_requiredsubgroupsize
 dEQP-VK.subgroups.quad.compute.subgroupquadswapvertical_u64vec3
+dEQP-VK.subgroups.quad.compute.subgroupquadswapvertical_u64vec3_requiredsubgroupsize
 dEQP-VK.subgroups.quad.compute.subgroupquadswapdiagonal_u64vec3
+dEQP-VK.subgroups.quad.compute.subgroupquadswapdiagonal_u64vec3_requiredsubgroupsize
 dEQP-VK.subgroups.quad.compute.subgroupquadbroadcast_u64vec4
+dEQP-VK.subgroups.quad.compute.subgroupquadbroadcast_u64vec4_requiredsubgroupsize
 dEQP-VK.subgroups.quad.compute.subgroupquadbroadcast_nonconst_u64vec4
+dEQP-VK.subgroups.quad.compute.subgroupquadbroadcast_nonconst_u64vec4_requiredsubgroupsize
 dEQP-VK.subgroups.quad.compute.subgroupquadswaphorizontal_u64vec4
+dEQP-VK.subgroups.quad.compute.subgroupquadswaphorizontal_u64vec4_requiredsubgroupsize
 dEQP-VK.subgroups.quad.compute.subgroupquadswapvertical_u64vec4
+dEQP-VK.subgroups.quad.compute.subgroupquadswapvertical_u64vec4_requiredsubgroupsize
 dEQP-VK.subgroups.quad.compute.subgroupquadswapdiagonal_u64vec4
+dEQP-VK.subgroups.quad.compute.subgroupquadswapdiagonal_u64vec4_requiredsubgroupsize
 dEQP-VK.subgroups.quad.compute.subgroupquadbroadcast_float16_t
+dEQP-VK.subgroups.quad.compute.subgroupquadbroadcast_float16_t_requiredsubgroupsize
 dEQP-VK.subgroups.quad.compute.subgroupquadbroadcast_nonconst_float16_t
+dEQP-VK.subgroups.quad.compute.subgroupquadbroadcast_nonconst_float16_t_requiredsubgroupsize
 dEQP-VK.subgroups.quad.compute.subgroupquadswaphorizontal_float16_t
+dEQP-VK.subgroups.quad.compute.subgroupquadswaphorizontal_float16_t_requiredsubgroupsize
 dEQP-VK.subgroups.quad.compute.subgroupquadswapvertical_float16_t
+dEQP-VK.subgroups.quad.compute.subgroupquadswapvertical_float16_t_requiredsubgroupsize
 dEQP-VK.subgroups.quad.compute.subgroupquadswapdiagonal_float16_t
+dEQP-VK.subgroups.quad.compute.subgroupquadswapdiagonal_float16_t_requiredsubgroupsize
 dEQP-VK.subgroups.quad.compute.subgroupquadbroadcast_f16vec2
+dEQP-VK.subgroups.quad.compute.subgroupquadbroadcast_f16vec2_requiredsubgroupsize
 dEQP-VK.subgroups.quad.compute.subgroupquadbroadcast_nonconst_f16vec2
+dEQP-VK.subgroups.quad.compute.subgroupquadbroadcast_nonconst_f16vec2_requiredsubgroupsize
 dEQP-VK.subgroups.quad.compute.subgroupquadswaphorizontal_f16vec2
+dEQP-VK.subgroups.quad.compute.subgroupquadswaphorizontal_f16vec2_requiredsubgroupsize
 dEQP-VK.subgroups.quad.compute.subgroupquadswapvertical_f16vec2
+dEQP-VK.subgroups.quad.compute.subgroupquadswapvertical_f16vec2_requiredsubgroupsize
 dEQP-VK.subgroups.quad.compute.subgroupquadswapdiagonal_f16vec2
+dEQP-VK.subgroups.quad.compute.subgroupquadswapdiagonal_f16vec2_requiredsubgroupsize
 dEQP-VK.subgroups.quad.compute.subgroupquadbroadcast_f16vec3
+dEQP-VK.subgroups.quad.compute.subgroupquadbroadcast_f16vec3_requiredsubgroupsize
 dEQP-VK.subgroups.quad.compute.subgroupquadbroadcast_nonconst_f16vec3
+dEQP-VK.subgroups.quad.compute.subgroupquadbroadcast_nonconst_f16vec3_requiredsubgroupsize
 dEQP-VK.subgroups.quad.compute.subgroupquadswaphorizontal_f16vec3
+dEQP-VK.subgroups.quad.compute.subgroupquadswaphorizontal_f16vec3_requiredsubgroupsize
 dEQP-VK.subgroups.quad.compute.subgroupquadswapvertical_f16vec3
+dEQP-VK.subgroups.quad.compute.subgroupquadswapvertical_f16vec3_requiredsubgroupsize
 dEQP-VK.subgroups.quad.compute.subgroupquadswapdiagonal_f16vec3
+dEQP-VK.subgroups.quad.compute.subgroupquadswapdiagonal_f16vec3_requiredsubgroupsize
 dEQP-VK.subgroups.quad.compute.subgroupquadbroadcast_f16vec4
+dEQP-VK.subgroups.quad.compute.subgroupquadbroadcast_f16vec4_requiredsubgroupsize
 dEQP-VK.subgroups.quad.compute.subgroupquadbroadcast_nonconst_f16vec4
+dEQP-VK.subgroups.quad.compute.subgroupquadbroadcast_nonconst_f16vec4_requiredsubgroupsize
 dEQP-VK.subgroups.quad.compute.subgroupquadswaphorizontal_f16vec4
+dEQP-VK.subgroups.quad.compute.subgroupquadswaphorizontal_f16vec4_requiredsubgroupsize
 dEQP-VK.subgroups.quad.compute.subgroupquadswapvertical_f16vec4
+dEQP-VK.subgroups.quad.compute.subgroupquadswapvertical_f16vec4_requiredsubgroupsize
 dEQP-VK.subgroups.quad.compute.subgroupquadswapdiagonal_f16vec4
+dEQP-VK.subgroups.quad.compute.subgroupquadswapdiagonal_f16vec4_requiredsubgroupsize
 dEQP-VK.subgroups.quad.compute.subgroupquadbroadcast_float
+dEQP-VK.subgroups.quad.compute.subgroupquadbroadcast_float_requiredsubgroupsize
 dEQP-VK.subgroups.quad.compute.subgroupquadbroadcast_nonconst_float
+dEQP-VK.subgroups.quad.compute.subgroupquadbroadcast_nonconst_float_requiredsubgroupsize
 dEQP-VK.subgroups.quad.compute.subgroupquadswaphorizontal_float
+dEQP-VK.subgroups.quad.compute.subgroupquadswaphorizontal_float_requiredsubgroupsize
 dEQP-VK.subgroups.quad.compute.subgroupquadswapvertical_float
+dEQP-VK.subgroups.quad.compute.subgroupquadswapvertical_float_requiredsubgroupsize
 dEQP-VK.subgroups.quad.compute.subgroupquadswapdiagonal_float
+dEQP-VK.subgroups.quad.compute.subgroupquadswapdiagonal_float_requiredsubgroupsize
 dEQP-VK.subgroups.quad.compute.subgroupquadbroadcast_vec2
+dEQP-VK.subgroups.quad.compute.subgroupquadbroadcast_vec2_requiredsubgroupsize
 dEQP-VK.subgroups.quad.compute.subgroupquadbroadcast_nonconst_vec2
+dEQP-VK.subgroups.quad.compute.subgroupquadbroadcast_nonconst_vec2_requiredsubgroupsize
 dEQP-VK.subgroups.quad.compute.subgroupquadswaphorizontal_vec2
+dEQP-VK.subgroups.quad.compute.subgroupquadswaphorizontal_vec2_requiredsubgroupsize
 dEQP-VK.subgroups.quad.compute.subgroupquadswapvertical_vec2
+dEQP-VK.subgroups.quad.compute.subgroupquadswapvertical_vec2_requiredsubgroupsize
 dEQP-VK.subgroups.quad.compute.subgroupquadswapdiagonal_vec2
+dEQP-VK.subgroups.quad.compute.subgroupquadswapdiagonal_vec2_requiredsubgroupsize
 dEQP-VK.subgroups.quad.compute.subgroupquadbroadcast_vec3
+dEQP-VK.subgroups.quad.compute.subgroupquadbroadcast_vec3_requiredsubgroupsize
 dEQP-VK.subgroups.quad.compute.subgroupquadbroadcast_nonconst_vec3
+dEQP-VK.subgroups.quad.compute.subgroupquadbroadcast_nonconst_vec3_requiredsubgroupsize
 dEQP-VK.subgroups.quad.compute.subgroupquadswaphorizontal_vec3
+dEQP-VK.subgroups.quad.compute.subgroupquadswaphorizontal_vec3_requiredsubgroupsize
 dEQP-VK.subgroups.quad.compute.subgroupquadswapvertical_vec3
+dEQP-VK.subgroups.quad.compute.subgroupquadswapvertical_vec3_requiredsubgroupsize
 dEQP-VK.subgroups.quad.compute.subgroupquadswapdiagonal_vec3
+dEQP-VK.subgroups.quad.compute.subgroupquadswapdiagonal_vec3_requiredsubgroupsize
 dEQP-VK.subgroups.quad.compute.subgroupquadbroadcast_vec4
+dEQP-VK.subgroups.quad.compute.subgroupquadbroadcast_vec4_requiredsubgroupsize
 dEQP-VK.subgroups.quad.compute.subgroupquadbroadcast_nonconst_vec4
+dEQP-VK.subgroups.quad.compute.subgroupquadbroadcast_nonconst_vec4_requiredsubgroupsize
 dEQP-VK.subgroups.quad.compute.subgroupquadswaphorizontal_vec4
+dEQP-VK.subgroups.quad.compute.subgroupquadswaphorizontal_vec4_requiredsubgroupsize
 dEQP-VK.subgroups.quad.compute.subgroupquadswapvertical_vec4
+dEQP-VK.subgroups.quad.compute.subgroupquadswapvertical_vec4_requiredsubgroupsize
 dEQP-VK.subgroups.quad.compute.subgroupquadswapdiagonal_vec4
+dEQP-VK.subgroups.quad.compute.subgroupquadswapdiagonal_vec4_requiredsubgroupsize
 dEQP-VK.subgroups.quad.compute.subgroupquadbroadcast_double
+dEQP-VK.subgroups.quad.compute.subgroupquadbroadcast_double_requiredsubgroupsize
 dEQP-VK.subgroups.quad.compute.subgroupquadbroadcast_nonconst_double
+dEQP-VK.subgroups.quad.compute.subgroupquadbroadcast_nonconst_double_requiredsubgroupsize
 dEQP-VK.subgroups.quad.compute.subgroupquadswaphorizontal_double
+dEQP-VK.subgroups.quad.compute.subgroupquadswaphorizontal_double_requiredsubgroupsize
 dEQP-VK.subgroups.quad.compute.subgroupquadswapvertical_double
+dEQP-VK.subgroups.quad.compute.subgroupquadswapvertical_double_requiredsubgroupsize
 dEQP-VK.subgroups.quad.compute.subgroupquadswapdiagonal_double
+dEQP-VK.subgroups.quad.compute.subgroupquadswapdiagonal_double_requiredsubgroupsize
 dEQP-VK.subgroups.quad.compute.subgroupquadbroadcast_dvec2
+dEQP-VK.subgroups.quad.compute.subgroupquadbroadcast_dvec2_requiredsubgroupsize
 dEQP-VK.subgroups.quad.compute.subgroupquadbroadcast_nonconst_dvec2
+dEQP-VK.subgroups.quad.compute.subgroupquadbroadcast_nonconst_dvec2_requiredsubgroupsize
 dEQP-VK.subgroups.quad.compute.subgroupquadswaphorizontal_dvec2
+dEQP-VK.subgroups.quad.compute.subgroupquadswaphorizontal_dvec2_requiredsubgroupsize
 dEQP-VK.subgroups.quad.compute.subgroupquadswapvertical_dvec2
+dEQP-VK.subgroups.quad.compute.subgroupquadswapvertical_dvec2_requiredsubgroupsize
 dEQP-VK.subgroups.quad.compute.subgroupquadswapdiagonal_dvec2
+dEQP-VK.subgroups.quad.compute.subgroupquadswapdiagonal_dvec2_requiredsubgroupsize
 dEQP-VK.subgroups.quad.compute.subgroupquadbroadcast_dvec3
+dEQP-VK.subgroups.quad.compute.subgroupquadbroadcast_dvec3_requiredsubgroupsize
 dEQP-VK.subgroups.quad.compute.subgroupquadbroadcast_nonconst_dvec3
+dEQP-VK.subgroups.quad.compute.subgroupquadbroadcast_nonconst_dvec3_requiredsubgroupsize
 dEQP-VK.subgroups.quad.compute.subgroupquadswaphorizontal_dvec3
+dEQP-VK.subgroups.quad.compute.subgroupquadswaphorizontal_dvec3_requiredsubgroupsize
 dEQP-VK.subgroups.quad.compute.subgroupquadswapvertical_dvec3
+dEQP-VK.subgroups.quad.compute.subgroupquadswapvertical_dvec3_requiredsubgroupsize
 dEQP-VK.subgroups.quad.compute.subgroupquadswapdiagonal_dvec3
+dEQP-VK.subgroups.quad.compute.subgroupquadswapdiagonal_dvec3_requiredsubgroupsize
 dEQP-VK.subgroups.quad.compute.subgroupquadbroadcast_dvec4
+dEQP-VK.subgroups.quad.compute.subgroupquadbroadcast_dvec4_requiredsubgroupsize
 dEQP-VK.subgroups.quad.compute.subgroupquadbroadcast_nonconst_dvec4
+dEQP-VK.subgroups.quad.compute.subgroupquadbroadcast_nonconst_dvec4_requiredsubgroupsize
 dEQP-VK.subgroups.quad.compute.subgroupquadswaphorizontal_dvec4
+dEQP-VK.subgroups.quad.compute.subgroupquadswaphorizontal_dvec4_requiredsubgroupsize
 dEQP-VK.subgroups.quad.compute.subgroupquadswapvertical_dvec4
+dEQP-VK.subgroups.quad.compute.subgroupquadswapvertical_dvec4_requiredsubgroupsize
 dEQP-VK.subgroups.quad.compute.subgroupquadswapdiagonal_dvec4
+dEQP-VK.subgroups.quad.compute.subgroupquadswapdiagonal_dvec4_requiredsubgroupsize
 dEQP-VK.subgroups.quad.compute.subgroupquadbroadcast_bool
+dEQP-VK.subgroups.quad.compute.subgroupquadbroadcast_bool_requiredsubgroupsize
 dEQP-VK.subgroups.quad.compute.subgroupquadbroadcast_nonconst_bool
+dEQP-VK.subgroups.quad.compute.subgroupquadbroadcast_nonconst_bool_requiredsubgroupsize
 dEQP-VK.subgroups.quad.compute.subgroupquadswaphorizontal_bool
+dEQP-VK.subgroups.quad.compute.subgroupquadswaphorizontal_bool_requiredsubgroupsize
 dEQP-VK.subgroups.quad.compute.subgroupquadswapvertical_bool
+dEQP-VK.subgroups.quad.compute.subgroupquadswapvertical_bool_requiredsubgroupsize
 dEQP-VK.subgroups.quad.compute.subgroupquadswapdiagonal_bool
+dEQP-VK.subgroups.quad.compute.subgroupquadswapdiagonal_bool_requiredsubgroupsize
 dEQP-VK.subgroups.quad.compute.subgroupquadbroadcast_bvec2
+dEQP-VK.subgroups.quad.compute.subgroupquadbroadcast_bvec2_requiredsubgroupsize
 dEQP-VK.subgroups.quad.compute.subgroupquadbroadcast_nonconst_bvec2
+dEQP-VK.subgroups.quad.compute.subgroupquadbroadcast_nonconst_bvec2_requiredsubgroupsize
 dEQP-VK.subgroups.quad.compute.subgroupquadswaphorizontal_bvec2
+dEQP-VK.subgroups.quad.compute.subgroupquadswaphorizontal_bvec2_requiredsubgroupsize
 dEQP-VK.subgroups.quad.compute.subgroupquadswapvertical_bvec2
+dEQP-VK.subgroups.quad.compute.subgroupquadswapvertical_bvec2_requiredsubgroupsize
 dEQP-VK.subgroups.quad.compute.subgroupquadswapdiagonal_bvec2
+dEQP-VK.subgroups.quad.compute.subgroupquadswapdiagonal_bvec2_requiredsubgroupsize
 dEQP-VK.subgroups.quad.compute.subgroupquadbroadcast_bvec3
+dEQP-VK.subgroups.quad.compute.subgroupquadbroadcast_bvec3_requiredsubgroupsize
 dEQP-VK.subgroups.quad.compute.subgroupquadbroadcast_nonconst_bvec3
+dEQP-VK.subgroups.quad.compute.subgroupquadbroadcast_nonconst_bvec3_requiredsubgroupsize
 dEQP-VK.subgroups.quad.compute.subgroupquadswaphorizontal_bvec3
+dEQP-VK.subgroups.quad.compute.subgroupquadswaphorizontal_bvec3_requiredsubgroupsize
 dEQP-VK.subgroups.quad.compute.subgroupquadswapvertical_bvec3
+dEQP-VK.subgroups.quad.compute.subgroupquadswapvertical_bvec3_requiredsubgroupsize
 dEQP-VK.subgroups.quad.compute.subgroupquadswapdiagonal_bvec3
+dEQP-VK.subgroups.quad.compute.subgroupquadswapdiagonal_bvec3_requiredsubgroupsize
 dEQP-VK.subgroups.quad.compute.subgroupquadbroadcast_bvec4
+dEQP-VK.subgroups.quad.compute.subgroupquadbroadcast_bvec4_requiredsubgroupsize
 dEQP-VK.subgroups.quad.compute.subgroupquadbroadcast_nonconst_bvec4
+dEQP-VK.subgroups.quad.compute.subgroupquadbroadcast_nonconst_bvec4_requiredsubgroupsize
 dEQP-VK.subgroups.quad.compute.subgroupquadswaphorizontal_bvec4
+dEQP-VK.subgroups.quad.compute.subgroupquadswaphorizontal_bvec4_requiredsubgroupsize
 dEQP-VK.subgroups.quad.compute.subgroupquadswapvertical_bvec4
+dEQP-VK.subgroups.quad.compute.subgroupquadswapvertical_bvec4_requiredsubgroupsize
 dEQP-VK.subgroups.quad.compute.subgroupquadswapdiagonal_bvec4
+dEQP-VK.subgroups.quad.compute.subgroupquadswapdiagonal_bvec4_requiredsubgroupsize
 dEQP-VK.subgroups.quad.framebuffer.subgroupquadbroadcast_int8_t_vertex
 dEQP-VK.subgroups.quad.framebuffer.subgroupquadbroadcast_int8_t_tess_eval
 dEQP-VK.subgroups.quad.framebuffer.subgroupquadbroadcast_int8_t_tess_control
@@ -524071,7 +526721,9 @@ dEQP-VK.subgroups.quad.framebuffer.subgroupquadswapdiagonal_bvec4_geometry
 dEQP-VK.subgroups.shape.graphics.clustered
 dEQP-VK.subgroups.shape.graphics.quad
 dEQP-VK.subgroups.shape.compute.clustered
+dEQP-VK.subgroups.shape.compute.clustered_requiredsubgroupsize
 dEQP-VK.subgroups.shape.compute.quad
+dEQP-VK.subgroups.shape.compute.quad_requiredsubgroupsize
 dEQP-VK.subgroups.shape.framebuffer.clustered_vertex
 dEQP-VK.subgroups.shape.framebuffer.clustered_tess_eval
 dEQP-VK.subgroups.shape.framebuffer.clustered_tess_control
@@ -524086,10 +526738,15 @@ dEQP-VK.subgroups.ballot_mask.ext_shader_subgroup_ballot.graphics.gl_subgroupgtm
 dEQP-VK.subgroups.ballot_mask.ext_shader_subgroup_ballot.graphics.gl_subgrouplemaskarb
 dEQP-VK.subgroups.ballot_mask.ext_shader_subgroup_ballot.graphics.gl_subgroupltmaskarb
 dEQP-VK.subgroups.ballot_mask.ext_shader_subgroup_ballot.compute.gl_subgroupeqmaskarb
+dEQP-VK.subgroups.ballot_mask.ext_shader_subgroup_ballot.compute.gl_subgroupeqmaskarb_requiredsubgroupsize
 dEQP-VK.subgroups.ballot_mask.ext_shader_subgroup_ballot.compute.gl_subgroupgemaskarb
+dEQP-VK.subgroups.ballot_mask.ext_shader_subgroup_ballot.compute.gl_subgroupgemaskarb_requiredsubgroupsize
 dEQP-VK.subgroups.ballot_mask.ext_shader_subgroup_ballot.compute.gl_subgroupgtmaskarb
+dEQP-VK.subgroups.ballot_mask.ext_shader_subgroup_ballot.compute.gl_subgroupgtmaskarb_requiredsubgroupsize
 dEQP-VK.subgroups.ballot_mask.ext_shader_subgroup_ballot.compute.gl_subgrouplemaskarb
+dEQP-VK.subgroups.ballot_mask.ext_shader_subgroup_ballot.compute.gl_subgrouplemaskarb_requiredsubgroupsize
 dEQP-VK.subgroups.ballot_mask.ext_shader_subgroup_ballot.compute.gl_subgroupltmaskarb
+dEQP-VK.subgroups.ballot_mask.ext_shader_subgroup_ballot.compute.gl_subgroupltmaskarb_requiredsubgroupsize
 dEQP-VK.subgroups.ballot_mask.ext_shader_subgroup_ballot.framebuffer.gl_subgroupeqmaskarb_vertex
 dEQP-VK.subgroups.ballot_mask.ext_shader_subgroup_ballot.framebuffer.gl_subgroupeqmaskarb_tess_eval
 dEQP-VK.subgroups.ballot_mask.ext_shader_subgroup_ballot.framebuffer.gl_subgroupeqmaskarb_tess_control
@@ -524110,6 +526767,32 @@ dEQP-VK.subgroups.ballot_mask.ext_shader_subgroup_ballot.framebuffer.gl_subgroup
 dEQP-VK.subgroups.ballot_mask.ext_shader_subgroup_ballot.framebuffer.gl_subgroupltmaskarb_tess_eval
 dEQP-VK.subgroups.ballot_mask.ext_shader_subgroup_ballot.framebuffer.gl_subgroupltmaskarb_tess_control
 dEQP-VK.subgroups.ballot_mask.ext_shader_subgroup_ballot.framebuffer.gl_subgroupltmaskarb_geometry
+dEQP-VK.subgroups.size_control.generic.subgroup_size_properties
+dEQP-VK.subgroups.size_control.graphics.allow_varying_subgroup_size
+dEQP-VK.subgroups.size_control.graphics.required_subgroup_size_max
+dEQP-VK.subgroups.size_control.graphics.required_subgroup_size_min
+dEQP-VK.subgroups.size_control.compute.allow_varying_subgroup_size
+dEQP-VK.subgroups.size_control.compute.require_full_subgroups
+dEQP-VK.subgroups.size_control.compute.require_full_subgroups_allow_varying_subgroup_size
+dEQP-VK.subgroups.size_control.compute.required_subgroup_size_max
+dEQP-VK.subgroups.size_control.compute.required_subgroup_size_min
+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
+dEQP-VK.subgroups.size_control.framebuffer.vertex_allow_varying_subgroup_size
+dEQP-VK.subgroups.size_control.framebuffer.tess_eval_allow_varying_subgroup_size
+dEQP-VK.subgroups.size_control.framebuffer.tess_control_allow_varying_subgroup_size
+dEQP-VK.subgroups.size_control.framebuffer.geometry_allow_varying_subgroup_size
+dEQP-VK.subgroups.size_control.framebuffer.fragment_allow_varying_subgroup_size
+dEQP-VK.subgroups.size_control.framebuffer.vertex_required_subgroup_size_max
+dEQP-VK.subgroups.size_control.framebuffer.vertex_required_subgroup_size_min
+dEQP-VK.subgroups.size_control.framebuffer.tess_eval_required_subgroup_size_max
+dEQP-VK.subgroups.size_control.framebuffer.tess_eval_required_subgroup_size_min
+dEQP-VK.subgroups.size_control.framebuffer.tess_control_required_subgroup_size_max
+dEQP-VK.subgroups.size_control.framebuffer.tess_control_required_subgroup_size_min
+dEQP-VK.subgroups.size_control.framebuffer.geometry_required_subgroup_size_max
+dEQP-VK.subgroups.size_control.framebuffer.geometry_required_subgroup_size_min
+dEQP-VK.subgroups.size_control.framebuffer.fragment_required_subgroup_size_max
+dEQP-VK.subgroups.size_control.framebuffer.fragment_required_subgroup_size_min
 dEQP-VK.ycbcr.format.g8b8g8r8_422_unorm.vertex_optimal
 dEQP-VK.ycbcr.format.g8b8g8r8_422_unorm.vertex_optimal_array
 dEQP-VK.ycbcr.format.g8b8g8r8_422_unorm.vertex_linear