From 75e68dbc3d34561eda963f622a859c2a27163273 Mon Sep 17 00:00:00 2001 From: Stuart Brady Date: Tue, 19 Jan 2021 14:19:40 +0000 Subject: [PATCH] Add tests for VK_KHR_shader_integer_dot_product MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit Components: Vulkan, Framework VK-GL-CTS issue: 2729 New tests: dEQP-VK.spirv_assembly.instruction.compute.opsdotkhr.* dEQP-VK.spirv_assembly.instruction.compute.opudotkhr.* dEQP-VK.spirv_assembly.instruction.compute.opsudotkhr.* dEQP-VK.spirv_assembly.instruction.compute.opsdotaccsatkhr.* dEQP-VK.spirv_assembly.instruction.compute.opudotaccsatkhr.* dEQP-VK.spirv_assembly.instruction.compute.opsudotaccsatkhr.* Affects: dEQP-VK.api.info.get_physical_device_properties2.features dEQP-VK.api.info.get_physical_device_properties2.properties Signed-off-by: Stuart Brady Signed-off-by: Pablo Cascón Signed-off-by: Neil Hickey Change-Id: Ia618d9eb33369e72eedc5845342e17e1ee12da3a --- AndroidGen.mk | 1 + .../master/vk-master-2021-03-01/spirv-assembly.txt | 1212 ++++++++++++++++++++ android/cts/master/vk-master/spirv-assembly.txt | 1212 ++++++++++++++++++++ .../vulkancts/framework/vulkan/vkBasicTypes.inl | 3 + .../framework/vulkan/vkDeviceExtensions.inl | 1 + .../framework/vulkan/vkDeviceFeatures.inl | 148 +-- .../framework/vulkan/vkDeviceFeatures2.inl | 15 +- .../vulkan/vkDeviceFeaturesForContextDecl.inl | 1 + .../vulkan/vkDeviceFeaturesForContextDefs.inl | 1 + .../vkDeviceFeaturesForDefaultDeviceDefs.inl | 1 + .../framework/vulkan/vkDeviceProperties.inl | 80 +- .../vulkan/vkDevicePropertiesForContextDecl.inl | 1 + .../vulkan/vkDevicePropertiesForContextDefs.inl | 1 + .../vkDevicePropertiesForDefaultDeviceDefs.inl | 1 + .../framework/vulkan/vkExtensionFunctions.inl | 8 + .../framework/vulkan/vkGetStructureTypeImpl.inl | 10 + .../framework/vulkan/vkMandatoryFeatures.inl | 19 + external/vulkancts/framework/vulkan/vkStrUtil.inl | 2 + .../vulkancts/framework/vulkan/vkStrUtilImpl.inl | 51 + .../vulkancts/framework/vulkan/vkStructTypes.inl | 43 + external/vulkancts/framework/vulkan/vkVulkan_c.inl | 48 + .../modules/vulkan/api/vktApiFeatureInfo.cpp | 69 +- .../modules/vulkan/spirv_assembly/CMakeLists.txt | 2 + .../spirv_assembly/vktSpvAsmInstructionTests.cpp | 8 + .../vktSpvAsmIntegerDotProductTests.cpp | 1158 +++++++++++++++++++ .../vktSpvAsmIntegerDotProductTests.hpp | 44 + .../vulkan/spirv_assembly/vktSpvAsmUtils.hpp | 2 +- .../mustpass/master/vk-default/spirv-assembly.txt | 1212 ++++++++++++++++++++ external/vulkancts/scripts/gen_framework.py | 3 +- external/vulkancts/scripts/src/extensions_data.txt | 1 + .../vulkancts/scripts/src/mandatory_features.txt | 1 + external/vulkancts/scripts/src/vulkan_core.h | 48 + framework/delibs/decpp/deRandom.hpp | 7 +- 33 files changed, 5287 insertions(+), 127 deletions(-) create mode 100644 external/vulkancts/modules/vulkan/spirv_assembly/vktSpvAsmIntegerDotProductTests.cpp create mode 100644 external/vulkancts/modules/vulkan/spirv_assembly/vktSpvAsmIntegerDotProductTests.hpp diff --git a/AndroidGen.mk b/AndroidGen.mk index a833f2a..4c32d4b 100644 --- a/AndroidGen.mk +++ b/AndroidGen.mk @@ -409,6 +409,7 @@ LOCAL_SRC_FILES := \ external/vulkancts/modules/vulkan/spirv_assembly/vktSpvAsmImageSamplerTests.cpp \ external/vulkancts/modules/vulkan/spirv_assembly/vktSpvAsmIndexingTests.cpp \ external/vulkancts/modules/vulkan/spirv_assembly/vktSpvAsmInstructionTests.cpp \ + external/vulkancts/modules/vulkan/spirv_assembly/vktSpvAsmIntegerDotProductTests.cpp \ external/vulkancts/modules/vulkan/spirv_assembly/vktSpvAsmLoopDepInfTests.cpp \ external/vulkancts/modules/vulkan/spirv_assembly/vktSpvAsmLoopDepLenTests.cpp \ external/vulkancts/modules/vulkan/spirv_assembly/vktSpvAsmNonSemanticInfoTests.cpp \ diff --git a/android/cts/master/vk-master-2021-03-01/spirv-assembly.txt b/android/cts/master/vk-master-2021-03-01/spirv-assembly.txt index ac71d06..0f76190 100644 --- a/android/cts/master/vk-master-2021-03-01/spirv-assembly.txt +++ b/android/cts/master/vk-master-2021-03-01/spirv-assembly.txt @@ -19,6 +19,1218 @@ dEQP-VK.spirv_assembly.instruction.compute.opspecconstantop.shiftleftlogical_s_i dEQP-VK.spirv_assembly.instruction.compute.opundef.undefined_constant_composite dEQP-VK.spirv_assembly.instruction.compute.opundef.undefined_spec_constant_composite dEQP-VK.spirv_assembly.instruction.compute.opunreachable.unreachable-switch-merge-in-loop +dEQP-VK.spirv_assembly.instruction.compute.opsdotkhr.all_uu_v2i8_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsdotkhr.all_uu_v2i8_out16 +dEQP-VK.spirv_assembly.instruction.compute.opsdotkhr.all_uu_v2i8_out8 +dEQP-VK.spirv_assembly.instruction.compute.opsdotkhr.all_us_v2i8_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsdotkhr.all_us_v2i8_out16 +dEQP-VK.spirv_assembly.instruction.compute.opsdotkhr.all_us_v2i8_out8 +dEQP-VK.spirv_assembly.instruction.compute.opsdotkhr.all_su_v2i8_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsdotkhr.all_su_v2i8_out16 +dEQP-VK.spirv_assembly.instruction.compute.opsdotkhr.all_su_v2i8_out8 +dEQP-VK.spirv_assembly.instruction.compute.opsdotkhr.all_ss_v2i8_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsdotkhr.all_ss_v2i8_out16 +dEQP-VK.spirv_assembly.instruction.compute.opsdotkhr.all_ss_v2i8_out8 +dEQP-VK.spirv_assembly.instruction.compute.opsdotkhr.all_uu_v3i8_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsdotkhr.all_uu_v3i8_out16 +dEQP-VK.spirv_assembly.instruction.compute.opsdotkhr.all_uu_v3i8_out8 +dEQP-VK.spirv_assembly.instruction.compute.opsdotkhr.all_us_v3i8_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsdotkhr.all_us_v3i8_out16 +dEQP-VK.spirv_assembly.instruction.compute.opsdotkhr.all_us_v3i8_out8 +dEQP-VK.spirv_assembly.instruction.compute.opsdotkhr.all_su_v3i8_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsdotkhr.all_su_v3i8_out16 +dEQP-VK.spirv_assembly.instruction.compute.opsdotkhr.all_su_v3i8_out8 +dEQP-VK.spirv_assembly.instruction.compute.opsdotkhr.all_ss_v3i8_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsdotkhr.all_ss_v3i8_out16 +dEQP-VK.spirv_assembly.instruction.compute.opsdotkhr.all_ss_v3i8_out8 +dEQP-VK.spirv_assembly.instruction.compute.opsdotkhr.all_uu_v4i8_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsdotkhr.all_uu_v4i8_out16 +dEQP-VK.spirv_assembly.instruction.compute.opsdotkhr.all_uu_v4i8_out8 +dEQP-VK.spirv_assembly.instruction.compute.opsdotkhr.all_us_v4i8_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsdotkhr.all_us_v4i8_out16 +dEQP-VK.spirv_assembly.instruction.compute.opsdotkhr.all_us_v4i8_out8 +dEQP-VK.spirv_assembly.instruction.compute.opsdotkhr.all_su_v4i8_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsdotkhr.all_su_v4i8_out16 +dEQP-VK.spirv_assembly.instruction.compute.opsdotkhr.all_su_v4i8_out8 +dEQP-VK.spirv_assembly.instruction.compute.opsdotkhr.all_ss_v4i8_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsdotkhr.all_ss_v4i8_out16 +dEQP-VK.spirv_assembly.instruction.compute.opsdotkhr.all_ss_v4i8_out8 +dEQP-VK.spirv_assembly.instruction.compute.opsdotkhr.all_packed_ss_v4i8_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsdotkhr.all_packed_ss_v4i8_out16 +dEQP-VK.spirv_assembly.instruction.compute.opsdotkhr.all_packed_ss_v4i8_out8 +dEQP-VK.spirv_assembly.instruction.compute.opsdotkhr.all_packed_su_v4i8_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsdotkhr.all_packed_su_v4i8_out16 +dEQP-VK.spirv_assembly.instruction.compute.opsdotkhr.all_packed_su_v4i8_out8 +dEQP-VK.spirv_assembly.instruction.compute.opsdotkhr.all_packed_us_v4i8_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsdotkhr.all_packed_us_v4i8_out16 +dEQP-VK.spirv_assembly.instruction.compute.opsdotkhr.all_packed_us_v4i8_out8 +dEQP-VK.spirv_assembly.instruction.compute.opsdotkhr.all_packed_uu_v4i8_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsdotkhr.all_packed_uu_v4i8_out16 +dEQP-VK.spirv_assembly.instruction.compute.opsdotkhr.all_packed_uu_v4i8_out8 +dEQP-VK.spirv_assembly.instruction.compute.opsdotkhr.small_uu_v2i8_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsdotkhr.small_uu_v2i8_out16 +dEQP-VK.spirv_assembly.instruction.compute.opsdotkhr.small_uu_v2i8_out8 +dEQP-VK.spirv_assembly.instruction.compute.opsdotkhr.small_us_v2i8_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsdotkhr.small_us_v2i8_out16 +dEQP-VK.spirv_assembly.instruction.compute.opsdotkhr.small_us_v2i8_out8 +dEQP-VK.spirv_assembly.instruction.compute.opsdotkhr.small_su_v2i8_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsdotkhr.small_su_v2i8_out16 +dEQP-VK.spirv_assembly.instruction.compute.opsdotkhr.small_su_v2i8_out8 +dEQP-VK.spirv_assembly.instruction.compute.opsdotkhr.small_ss_v2i8_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsdotkhr.small_ss_v2i8_out16 +dEQP-VK.spirv_assembly.instruction.compute.opsdotkhr.small_ss_v2i8_out8 +dEQP-VK.spirv_assembly.instruction.compute.opsdotkhr.small_uu_v3i8_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsdotkhr.small_uu_v3i8_out16 +dEQP-VK.spirv_assembly.instruction.compute.opsdotkhr.small_uu_v3i8_out8 +dEQP-VK.spirv_assembly.instruction.compute.opsdotkhr.small_us_v3i8_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsdotkhr.small_us_v3i8_out16 +dEQP-VK.spirv_assembly.instruction.compute.opsdotkhr.small_us_v3i8_out8 +dEQP-VK.spirv_assembly.instruction.compute.opsdotkhr.small_su_v3i8_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsdotkhr.small_su_v3i8_out16 +dEQP-VK.spirv_assembly.instruction.compute.opsdotkhr.small_su_v3i8_out8 +dEQP-VK.spirv_assembly.instruction.compute.opsdotkhr.small_ss_v3i8_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsdotkhr.small_ss_v3i8_out16 +dEQP-VK.spirv_assembly.instruction.compute.opsdotkhr.small_ss_v3i8_out8 +dEQP-VK.spirv_assembly.instruction.compute.opsdotkhr.small_uu_v4i8_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsdotkhr.small_uu_v4i8_out16 +dEQP-VK.spirv_assembly.instruction.compute.opsdotkhr.small_uu_v4i8_out8 +dEQP-VK.spirv_assembly.instruction.compute.opsdotkhr.small_us_v4i8_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsdotkhr.small_us_v4i8_out16 +dEQP-VK.spirv_assembly.instruction.compute.opsdotkhr.small_us_v4i8_out8 +dEQP-VK.spirv_assembly.instruction.compute.opsdotkhr.small_su_v4i8_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsdotkhr.small_su_v4i8_out16 +dEQP-VK.spirv_assembly.instruction.compute.opsdotkhr.small_su_v4i8_out8 +dEQP-VK.spirv_assembly.instruction.compute.opsdotkhr.small_ss_v4i8_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsdotkhr.small_ss_v4i8_out16 +dEQP-VK.spirv_assembly.instruction.compute.opsdotkhr.small_ss_v4i8_out8 +dEQP-VK.spirv_assembly.instruction.compute.opsdotkhr.small_packed_ss_v4i8_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsdotkhr.small_packed_ss_v4i8_out16 +dEQP-VK.spirv_assembly.instruction.compute.opsdotkhr.small_packed_ss_v4i8_out8 +dEQP-VK.spirv_assembly.instruction.compute.opsdotkhr.small_packed_su_v4i8_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsdotkhr.small_packed_su_v4i8_out16 +dEQP-VK.spirv_assembly.instruction.compute.opsdotkhr.small_packed_su_v4i8_out8 +dEQP-VK.spirv_assembly.instruction.compute.opsdotkhr.small_packed_us_v4i8_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsdotkhr.small_packed_us_v4i8_out16 +dEQP-VK.spirv_assembly.instruction.compute.opsdotkhr.small_packed_us_v4i8_out8 +dEQP-VK.spirv_assembly.instruction.compute.opsdotkhr.small_packed_uu_v4i8_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsdotkhr.small_packed_uu_v4i8_out16 +dEQP-VK.spirv_assembly.instruction.compute.opsdotkhr.small_packed_uu_v4i8_out8 +dEQP-VK.spirv_assembly.instruction.compute.opsdotkhr.all_uu_v2i16_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsdotkhr.all_uu_v2i16_out16 +dEQP-VK.spirv_assembly.instruction.compute.opsdotkhr.all_us_v2i16_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsdotkhr.all_us_v2i16_out16 +dEQP-VK.spirv_assembly.instruction.compute.opsdotkhr.all_su_v2i16_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsdotkhr.all_su_v2i16_out16 +dEQP-VK.spirv_assembly.instruction.compute.opsdotkhr.all_ss_v2i16_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsdotkhr.all_ss_v2i16_out16 +dEQP-VK.spirv_assembly.instruction.compute.opsdotkhr.all_uu_v3i16_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsdotkhr.all_uu_v3i16_out16 +dEQP-VK.spirv_assembly.instruction.compute.opsdotkhr.all_us_v3i16_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsdotkhr.all_us_v3i16_out16 +dEQP-VK.spirv_assembly.instruction.compute.opsdotkhr.all_su_v3i16_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsdotkhr.all_su_v3i16_out16 +dEQP-VK.spirv_assembly.instruction.compute.opsdotkhr.all_ss_v3i16_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsdotkhr.all_ss_v3i16_out16 +dEQP-VK.spirv_assembly.instruction.compute.opsdotkhr.all_uu_v4i16_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsdotkhr.all_uu_v4i16_out16 +dEQP-VK.spirv_assembly.instruction.compute.opsdotkhr.all_us_v4i16_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsdotkhr.all_us_v4i16_out16 +dEQP-VK.spirv_assembly.instruction.compute.opsdotkhr.all_su_v4i16_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsdotkhr.all_su_v4i16_out16 +dEQP-VK.spirv_assembly.instruction.compute.opsdotkhr.all_ss_v4i16_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsdotkhr.all_ss_v4i16_out16 +dEQP-VK.spirv_assembly.instruction.compute.opsdotkhr.all_uu_v2i32_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsdotkhr.all_us_v2i32_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsdotkhr.all_su_v2i32_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsdotkhr.all_ss_v2i32_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsdotkhr.all_uu_v3i32_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsdotkhr.all_us_v3i32_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsdotkhr.all_su_v3i32_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsdotkhr.all_ss_v3i32_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsdotkhr.all_uu_v4i32_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsdotkhr.all_us_v4i32_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsdotkhr.all_su_v4i32_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsdotkhr.all_ss_v4i32_out32 +dEQP-VK.spirv_assembly.instruction.compute.opudotkhr.all_uu_v2i8_out32 +dEQP-VK.spirv_assembly.instruction.compute.opudotkhr.all_uu_v2i8_out16 +dEQP-VK.spirv_assembly.instruction.compute.opudotkhr.all_uu_v2i8_out8 +dEQP-VK.spirv_assembly.instruction.compute.opudotkhr.all_us_v2i8_out32 +dEQP-VK.spirv_assembly.instruction.compute.opudotkhr.all_us_v2i8_out16 +dEQP-VK.spirv_assembly.instruction.compute.opudotkhr.all_us_v2i8_out8 +dEQP-VK.spirv_assembly.instruction.compute.opudotkhr.all_su_v2i8_out32 +dEQP-VK.spirv_assembly.instruction.compute.opudotkhr.all_su_v2i8_out16 +dEQP-VK.spirv_assembly.instruction.compute.opudotkhr.all_su_v2i8_out8 +dEQP-VK.spirv_assembly.instruction.compute.opudotkhr.all_ss_v2i8_out32 +dEQP-VK.spirv_assembly.instruction.compute.opudotkhr.all_ss_v2i8_out16 +dEQP-VK.spirv_assembly.instruction.compute.opudotkhr.all_ss_v2i8_out8 +dEQP-VK.spirv_assembly.instruction.compute.opudotkhr.all_uu_v3i8_out32 +dEQP-VK.spirv_assembly.instruction.compute.opudotkhr.all_uu_v3i8_out16 +dEQP-VK.spirv_assembly.instruction.compute.opudotkhr.all_uu_v3i8_out8 +dEQP-VK.spirv_assembly.instruction.compute.opudotkhr.all_us_v3i8_out32 +dEQP-VK.spirv_assembly.instruction.compute.opudotkhr.all_us_v3i8_out16 +dEQP-VK.spirv_assembly.instruction.compute.opudotkhr.all_us_v3i8_out8 +dEQP-VK.spirv_assembly.instruction.compute.opudotkhr.all_su_v3i8_out32 +dEQP-VK.spirv_assembly.instruction.compute.opudotkhr.all_su_v3i8_out16 +dEQP-VK.spirv_assembly.instruction.compute.opudotkhr.all_su_v3i8_out8 +dEQP-VK.spirv_assembly.instruction.compute.opudotkhr.all_ss_v3i8_out32 +dEQP-VK.spirv_assembly.instruction.compute.opudotkhr.all_ss_v3i8_out16 +dEQP-VK.spirv_assembly.instruction.compute.opudotkhr.all_ss_v3i8_out8 +dEQP-VK.spirv_assembly.instruction.compute.opudotkhr.all_uu_v4i8_out32 +dEQP-VK.spirv_assembly.instruction.compute.opudotkhr.all_uu_v4i8_out16 +dEQP-VK.spirv_assembly.instruction.compute.opudotkhr.all_uu_v4i8_out8 +dEQP-VK.spirv_assembly.instruction.compute.opudotkhr.all_us_v4i8_out32 +dEQP-VK.spirv_assembly.instruction.compute.opudotkhr.all_us_v4i8_out16 +dEQP-VK.spirv_assembly.instruction.compute.opudotkhr.all_us_v4i8_out8 +dEQP-VK.spirv_assembly.instruction.compute.opudotkhr.all_su_v4i8_out32 +dEQP-VK.spirv_assembly.instruction.compute.opudotkhr.all_su_v4i8_out16 +dEQP-VK.spirv_assembly.instruction.compute.opudotkhr.all_su_v4i8_out8 +dEQP-VK.spirv_assembly.instruction.compute.opudotkhr.all_ss_v4i8_out32 +dEQP-VK.spirv_assembly.instruction.compute.opudotkhr.all_ss_v4i8_out16 +dEQP-VK.spirv_assembly.instruction.compute.opudotkhr.all_ss_v4i8_out8 +dEQP-VK.spirv_assembly.instruction.compute.opudotkhr.all_packed_ss_v4i8_out32 +dEQP-VK.spirv_assembly.instruction.compute.opudotkhr.all_packed_ss_v4i8_out16 +dEQP-VK.spirv_assembly.instruction.compute.opudotkhr.all_packed_ss_v4i8_out8 +dEQP-VK.spirv_assembly.instruction.compute.opudotkhr.all_packed_su_v4i8_out32 +dEQP-VK.spirv_assembly.instruction.compute.opudotkhr.all_packed_su_v4i8_out16 +dEQP-VK.spirv_assembly.instruction.compute.opudotkhr.all_packed_su_v4i8_out8 +dEQP-VK.spirv_assembly.instruction.compute.opudotkhr.all_packed_us_v4i8_out32 +dEQP-VK.spirv_assembly.instruction.compute.opudotkhr.all_packed_us_v4i8_out16 +dEQP-VK.spirv_assembly.instruction.compute.opudotkhr.all_packed_us_v4i8_out8 +dEQP-VK.spirv_assembly.instruction.compute.opudotkhr.all_packed_uu_v4i8_out32 +dEQP-VK.spirv_assembly.instruction.compute.opudotkhr.all_packed_uu_v4i8_out16 +dEQP-VK.spirv_assembly.instruction.compute.opudotkhr.all_packed_uu_v4i8_out8 +dEQP-VK.spirv_assembly.instruction.compute.opudotkhr.small_uu_v2i8_out32 +dEQP-VK.spirv_assembly.instruction.compute.opudotkhr.small_uu_v2i8_out16 +dEQP-VK.spirv_assembly.instruction.compute.opudotkhr.small_uu_v2i8_out8 +dEQP-VK.spirv_assembly.instruction.compute.opudotkhr.small_us_v2i8_out32 +dEQP-VK.spirv_assembly.instruction.compute.opudotkhr.small_us_v2i8_out16 +dEQP-VK.spirv_assembly.instruction.compute.opudotkhr.small_us_v2i8_out8 +dEQP-VK.spirv_assembly.instruction.compute.opudotkhr.small_su_v2i8_out32 +dEQP-VK.spirv_assembly.instruction.compute.opudotkhr.small_su_v2i8_out16 +dEQP-VK.spirv_assembly.instruction.compute.opudotkhr.small_su_v2i8_out8 +dEQP-VK.spirv_assembly.instruction.compute.opudotkhr.small_ss_v2i8_out32 +dEQP-VK.spirv_assembly.instruction.compute.opudotkhr.small_ss_v2i8_out16 +dEQP-VK.spirv_assembly.instruction.compute.opudotkhr.small_ss_v2i8_out8 +dEQP-VK.spirv_assembly.instruction.compute.opudotkhr.small_uu_v3i8_out32 +dEQP-VK.spirv_assembly.instruction.compute.opudotkhr.small_uu_v3i8_out16 +dEQP-VK.spirv_assembly.instruction.compute.opudotkhr.small_uu_v3i8_out8 +dEQP-VK.spirv_assembly.instruction.compute.opudotkhr.small_us_v3i8_out32 +dEQP-VK.spirv_assembly.instruction.compute.opudotkhr.small_us_v3i8_out16 +dEQP-VK.spirv_assembly.instruction.compute.opudotkhr.small_us_v3i8_out8 +dEQP-VK.spirv_assembly.instruction.compute.opudotkhr.small_su_v3i8_out32 +dEQP-VK.spirv_assembly.instruction.compute.opudotkhr.small_su_v3i8_out16 +dEQP-VK.spirv_assembly.instruction.compute.opudotkhr.small_su_v3i8_out8 +dEQP-VK.spirv_assembly.instruction.compute.opudotkhr.small_ss_v3i8_out32 +dEQP-VK.spirv_assembly.instruction.compute.opudotkhr.small_ss_v3i8_out16 +dEQP-VK.spirv_assembly.instruction.compute.opudotkhr.small_ss_v3i8_out8 +dEQP-VK.spirv_assembly.instruction.compute.opudotkhr.small_uu_v4i8_out32 +dEQP-VK.spirv_assembly.instruction.compute.opudotkhr.small_uu_v4i8_out16 +dEQP-VK.spirv_assembly.instruction.compute.opudotkhr.small_uu_v4i8_out8 +dEQP-VK.spirv_assembly.instruction.compute.opudotkhr.small_us_v4i8_out32 +dEQP-VK.spirv_assembly.instruction.compute.opudotkhr.small_us_v4i8_out16 +dEQP-VK.spirv_assembly.instruction.compute.opudotkhr.small_us_v4i8_out8 +dEQP-VK.spirv_assembly.instruction.compute.opudotkhr.small_su_v4i8_out32 +dEQP-VK.spirv_assembly.instruction.compute.opudotkhr.small_su_v4i8_out16 +dEQP-VK.spirv_assembly.instruction.compute.opudotkhr.small_su_v4i8_out8 +dEQP-VK.spirv_assembly.instruction.compute.opudotkhr.small_ss_v4i8_out32 +dEQP-VK.spirv_assembly.instruction.compute.opudotkhr.small_ss_v4i8_out16 +dEQP-VK.spirv_assembly.instruction.compute.opudotkhr.small_ss_v4i8_out8 +dEQP-VK.spirv_assembly.instruction.compute.opudotkhr.small_packed_ss_v4i8_out32 +dEQP-VK.spirv_assembly.instruction.compute.opudotkhr.small_packed_ss_v4i8_out16 +dEQP-VK.spirv_assembly.instruction.compute.opudotkhr.small_packed_ss_v4i8_out8 +dEQP-VK.spirv_assembly.instruction.compute.opudotkhr.small_packed_su_v4i8_out32 +dEQP-VK.spirv_assembly.instruction.compute.opudotkhr.small_packed_su_v4i8_out16 +dEQP-VK.spirv_assembly.instruction.compute.opudotkhr.small_packed_su_v4i8_out8 +dEQP-VK.spirv_assembly.instruction.compute.opudotkhr.small_packed_us_v4i8_out32 +dEQP-VK.spirv_assembly.instruction.compute.opudotkhr.small_packed_us_v4i8_out16 +dEQP-VK.spirv_assembly.instruction.compute.opudotkhr.small_packed_us_v4i8_out8 +dEQP-VK.spirv_assembly.instruction.compute.opudotkhr.small_packed_uu_v4i8_out32 +dEQP-VK.spirv_assembly.instruction.compute.opudotkhr.small_packed_uu_v4i8_out16 +dEQP-VK.spirv_assembly.instruction.compute.opudotkhr.small_packed_uu_v4i8_out8 +dEQP-VK.spirv_assembly.instruction.compute.opudotkhr.all_uu_v2i16_out32 +dEQP-VK.spirv_assembly.instruction.compute.opudotkhr.all_uu_v2i16_out16 +dEQP-VK.spirv_assembly.instruction.compute.opudotkhr.all_us_v2i16_out32 +dEQP-VK.spirv_assembly.instruction.compute.opudotkhr.all_us_v2i16_out16 +dEQP-VK.spirv_assembly.instruction.compute.opudotkhr.all_su_v2i16_out32 +dEQP-VK.spirv_assembly.instruction.compute.opudotkhr.all_su_v2i16_out16 +dEQP-VK.spirv_assembly.instruction.compute.opudotkhr.all_ss_v2i16_out32 +dEQP-VK.spirv_assembly.instruction.compute.opudotkhr.all_ss_v2i16_out16 +dEQP-VK.spirv_assembly.instruction.compute.opudotkhr.all_uu_v3i16_out32 +dEQP-VK.spirv_assembly.instruction.compute.opudotkhr.all_uu_v3i16_out16 +dEQP-VK.spirv_assembly.instruction.compute.opudotkhr.all_us_v3i16_out32 +dEQP-VK.spirv_assembly.instruction.compute.opudotkhr.all_us_v3i16_out16 +dEQP-VK.spirv_assembly.instruction.compute.opudotkhr.all_su_v3i16_out32 +dEQP-VK.spirv_assembly.instruction.compute.opudotkhr.all_su_v3i16_out16 +dEQP-VK.spirv_assembly.instruction.compute.opudotkhr.all_ss_v3i16_out32 +dEQP-VK.spirv_assembly.instruction.compute.opudotkhr.all_ss_v3i16_out16 +dEQP-VK.spirv_assembly.instruction.compute.opudotkhr.all_uu_v4i16_out32 +dEQP-VK.spirv_assembly.instruction.compute.opudotkhr.all_uu_v4i16_out16 +dEQP-VK.spirv_assembly.instruction.compute.opudotkhr.all_us_v4i16_out32 +dEQP-VK.spirv_assembly.instruction.compute.opudotkhr.all_us_v4i16_out16 +dEQP-VK.spirv_assembly.instruction.compute.opudotkhr.all_su_v4i16_out32 +dEQP-VK.spirv_assembly.instruction.compute.opudotkhr.all_su_v4i16_out16 +dEQP-VK.spirv_assembly.instruction.compute.opudotkhr.all_ss_v4i16_out32 +dEQP-VK.spirv_assembly.instruction.compute.opudotkhr.all_ss_v4i16_out16 +dEQP-VK.spirv_assembly.instruction.compute.opudotkhr.all_uu_v2i32_out32 +dEQP-VK.spirv_assembly.instruction.compute.opudotkhr.all_us_v2i32_out32 +dEQP-VK.spirv_assembly.instruction.compute.opudotkhr.all_su_v2i32_out32 +dEQP-VK.spirv_assembly.instruction.compute.opudotkhr.all_ss_v2i32_out32 +dEQP-VK.spirv_assembly.instruction.compute.opudotkhr.all_uu_v3i32_out32 +dEQP-VK.spirv_assembly.instruction.compute.opudotkhr.all_us_v3i32_out32 +dEQP-VK.spirv_assembly.instruction.compute.opudotkhr.all_su_v3i32_out32 +dEQP-VK.spirv_assembly.instruction.compute.opudotkhr.all_ss_v3i32_out32 +dEQP-VK.spirv_assembly.instruction.compute.opudotkhr.all_uu_v4i32_out32 +dEQP-VK.spirv_assembly.instruction.compute.opudotkhr.all_us_v4i32_out32 +dEQP-VK.spirv_assembly.instruction.compute.opudotkhr.all_su_v4i32_out32 +dEQP-VK.spirv_assembly.instruction.compute.opudotkhr.all_ss_v4i32_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsudotkhr.all_uu_v2i8_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsudotkhr.all_uu_v2i8_out16 +dEQP-VK.spirv_assembly.instruction.compute.opsudotkhr.all_uu_v2i8_out8 +dEQP-VK.spirv_assembly.instruction.compute.opsudotkhr.all_us_v2i8_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsudotkhr.all_us_v2i8_out16 +dEQP-VK.spirv_assembly.instruction.compute.opsudotkhr.all_us_v2i8_out8 +dEQP-VK.spirv_assembly.instruction.compute.opsudotkhr.all_su_v2i8_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsudotkhr.all_su_v2i8_out16 +dEQP-VK.spirv_assembly.instruction.compute.opsudotkhr.all_su_v2i8_out8 +dEQP-VK.spirv_assembly.instruction.compute.opsudotkhr.all_ss_v2i8_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsudotkhr.all_ss_v2i8_out16 +dEQP-VK.spirv_assembly.instruction.compute.opsudotkhr.all_ss_v2i8_out8 +dEQP-VK.spirv_assembly.instruction.compute.opsudotkhr.all_uu_v3i8_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsudotkhr.all_uu_v3i8_out16 +dEQP-VK.spirv_assembly.instruction.compute.opsudotkhr.all_uu_v3i8_out8 +dEQP-VK.spirv_assembly.instruction.compute.opsudotkhr.all_us_v3i8_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsudotkhr.all_us_v3i8_out16 +dEQP-VK.spirv_assembly.instruction.compute.opsudotkhr.all_us_v3i8_out8 +dEQP-VK.spirv_assembly.instruction.compute.opsudotkhr.all_su_v3i8_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsudotkhr.all_su_v3i8_out16 +dEQP-VK.spirv_assembly.instruction.compute.opsudotkhr.all_su_v3i8_out8 +dEQP-VK.spirv_assembly.instruction.compute.opsudotkhr.all_ss_v3i8_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsudotkhr.all_ss_v3i8_out16 +dEQP-VK.spirv_assembly.instruction.compute.opsudotkhr.all_ss_v3i8_out8 +dEQP-VK.spirv_assembly.instruction.compute.opsudotkhr.all_uu_v4i8_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsudotkhr.all_uu_v4i8_out16 +dEQP-VK.spirv_assembly.instruction.compute.opsudotkhr.all_uu_v4i8_out8 +dEQP-VK.spirv_assembly.instruction.compute.opsudotkhr.all_us_v4i8_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsudotkhr.all_us_v4i8_out16 +dEQP-VK.spirv_assembly.instruction.compute.opsudotkhr.all_us_v4i8_out8 +dEQP-VK.spirv_assembly.instruction.compute.opsudotkhr.all_su_v4i8_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsudotkhr.all_su_v4i8_out16 +dEQP-VK.spirv_assembly.instruction.compute.opsudotkhr.all_su_v4i8_out8 +dEQP-VK.spirv_assembly.instruction.compute.opsudotkhr.all_ss_v4i8_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsudotkhr.all_ss_v4i8_out16 +dEQP-VK.spirv_assembly.instruction.compute.opsudotkhr.all_ss_v4i8_out8 +dEQP-VK.spirv_assembly.instruction.compute.opsudotkhr.all_packed_ss_v4i8_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsudotkhr.all_packed_ss_v4i8_out16 +dEQP-VK.spirv_assembly.instruction.compute.opsudotkhr.all_packed_ss_v4i8_out8 +dEQP-VK.spirv_assembly.instruction.compute.opsudotkhr.all_packed_su_v4i8_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsudotkhr.all_packed_su_v4i8_out16 +dEQP-VK.spirv_assembly.instruction.compute.opsudotkhr.all_packed_su_v4i8_out8 +dEQP-VK.spirv_assembly.instruction.compute.opsudotkhr.all_packed_us_v4i8_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsudotkhr.all_packed_us_v4i8_out16 +dEQP-VK.spirv_assembly.instruction.compute.opsudotkhr.all_packed_us_v4i8_out8 +dEQP-VK.spirv_assembly.instruction.compute.opsudotkhr.all_packed_uu_v4i8_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsudotkhr.all_packed_uu_v4i8_out16 +dEQP-VK.spirv_assembly.instruction.compute.opsudotkhr.all_packed_uu_v4i8_out8 +dEQP-VK.spirv_assembly.instruction.compute.opsudotkhr.small_uu_v2i8_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsudotkhr.small_uu_v2i8_out16 +dEQP-VK.spirv_assembly.instruction.compute.opsudotkhr.small_uu_v2i8_out8 +dEQP-VK.spirv_assembly.instruction.compute.opsudotkhr.small_us_v2i8_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsudotkhr.small_us_v2i8_out16 +dEQP-VK.spirv_assembly.instruction.compute.opsudotkhr.small_us_v2i8_out8 +dEQP-VK.spirv_assembly.instruction.compute.opsudotkhr.small_su_v2i8_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsudotkhr.small_su_v2i8_out16 +dEQP-VK.spirv_assembly.instruction.compute.opsudotkhr.small_su_v2i8_out8 +dEQP-VK.spirv_assembly.instruction.compute.opsudotkhr.small_ss_v2i8_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsudotkhr.small_ss_v2i8_out16 +dEQP-VK.spirv_assembly.instruction.compute.opsudotkhr.small_ss_v2i8_out8 +dEQP-VK.spirv_assembly.instruction.compute.opsudotkhr.small_uu_v3i8_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsudotkhr.small_uu_v3i8_out16 +dEQP-VK.spirv_assembly.instruction.compute.opsudotkhr.small_uu_v3i8_out8 +dEQP-VK.spirv_assembly.instruction.compute.opsudotkhr.small_us_v3i8_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsudotkhr.small_us_v3i8_out16 +dEQP-VK.spirv_assembly.instruction.compute.opsudotkhr.small_us_v3i8_out8 +dEQP-VK.spirv_assembly.instruction.compute.opsudotkhr.small_su_v3i8_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsudotkhr.small_su_v3i8_out16 +dEQP-VK.spirv_assembly.instruction.compute.opsudotkhr.small_su_v3i8_out8 +dEQP-VK.spirv_assembly.instruction.compute.opsudotkhr.small_ss_v3i8_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsudotkhr.small_ss_v3i8_out16 +dEQP-VK.spirv_assembly.instruction.compute.opsudotkhr.small_ss_v3i8_out8 +dEQP-VK.spirv_assembly.instruction.compute.opsudotkhr.small_uu_v4i8_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsudotkhr.small_uu_v4i8_out16 +dEQP-VK.spirv_assembly.instruction.compute.opsudotkhr.small_uu_v4i8_out8 +dEQP-VK.spirv_assembly.instruction.compute.opsudotkhr.small_us_v4i8_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsudotkhr.small_us_v4i8_out16 +dEQP-VK.spirv_assembly.instruction.compute.opsudotkhr.small_us_v4i8_out8 +dEQP-VK.spirv_assembly.instruction.compute.opsudotkhr.small_su_v4i8_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsudotkhr.small_su_v4i8_out16 +dEQP-VK.spirv_assembly.instruction.compute.opsudotkhr.small_su_v4i8_out8 +dEQP-VK.spirv_assembly.instruction.compute.opsudotkhr.small_ss_v4i8_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsudotkhr.small_ss_v4i8_out16 +dEQP-VK.spirv_assembly.instruction.compute.opsudotkhr.small_ss_v4i8_out8 +dEQP-VK.spirv_assembly.instruction.compute.opsudotkhr.small_packed_ss_v4i8_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsudotkhr.small_packed_ss_v4i8_out16 +dEQP-VK.spirv_assembly.instruction.compute.opsudotkhr.small_packed_ss_v4i8_out8 +dEQP-VK.spirv_assembly.instruction.compute.opsudotkhr.small_packed_su_v4i8_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsudotkhr.small_packed_su_v4i8_out16 +dEQP-VK.spirv_assembly.instruction.compute.opsudotkhr.small_packed_su_v4i8_out8 +dEQP-VK.spirv_assembly.instruction.compute.opsudotkhr.small_packed_us_v4i8_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsudotkhr.small_packed_us_v4i8_out16 +dEQP-VK.spirv_assembly.instruction.compute.opsudotkhr.small_packed_us_v4i8_out8 +dEQP-VK.spirv_assembly.instruction.compute.opsudotkhr.small_packed_uu_v4i8_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsudotkhr.small_packed_uu_v4i8_out16 +dEQP-VK.spirv_assembly.instruction.compute.opsudotkhr.small_packed_uu_v4i8_out8 +dEQP-VK.spirv_assembly.instruction.compute.opsudotkhr.all_uu_v2i16_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsudotkhr.all_uu_v2i16_out16 +dEQP-VK.spirv_assembly.instruction.compute.opsudotkhr.all_us_v2i16_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsudotkhr.all_us_v2i16_out16 +dEQP-VK.spirv_assembly.instruction.compute.opsudotkhr.all_su_v2i16_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsudotkhr.all_su_v2i16_out16 +dEQP-VK.spirv_assembly.instruction.compute.opsudotkhr.all_ss_v2i16_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsudotkhr.all_ss_v2i16_out16 +dEQP-VK.spirv_assembly.instruction.compute.opsudotkhr.all_uu_v3i16_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsudotkhr.all_uu_v3i16_out16 +dEQP-VK.spirv_assembly.instruction.compute.opsudotkhr.all_us_v3i16_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsudotkhr.all_us_v3i16_out16 +dEQP-VK.spirv_assembly.instruction.compute.opsudotkhr.all_su_v3i16_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsudotkhr.all_su_v3i16_out16 +dEQP-VK.spirv_assembly.instruction.compute.opsudotkhr.all_ss_v3i16_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsudotkhr.all_ss_v3i16_out16 +dEQP-VK.spirv_assembly.instruction.compute.opsudotkhr.all_uu_v4i16_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsudotkhr.all_uu_v4i16_out16 +dEQP-VK.spirv_assembly.instruction.compute.opsudotkhr.all_us_v4i16_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsudotkhr.all_us_v4i16_out16 +dEQP-VK.spirv_assembly.instruction.compute.opsudotkhr.all_su_v4i16_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsudotkhr.all_su_v4i16_out16 +dEQP-VK.spirv_assembly.instruction.compute.opsudotkhr.all_ss_v4i16_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsudotkhr.all_ss_v4i16_out16 +dEQP-VK.spirv_assembly.instruction.compute.opsudotkhr.all_uu_v2i32_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsudotkhr.all_us_v2i32_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsudotkhr.all_su_v2i32_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsudotkhr.all_ss_v2i32_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsudotkhr.all_uu_v3i32_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsudotkhr.all_us_v3i32_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsudotkhr.all_su_v3i32_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsudotkhr.all_ss_v3i32_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsudotkhr.all_uu_v4i32_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsudotkhr.all_us_v4i32_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsudotkhr.all_su_v4i32_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsudotkhr.all_ss_v4i32_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsdotaccsatkhr.all_uu_v2i8_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsdotaccsatkhr.all_uu_v2i8_out16 +dEQP-VK.spirv_assembly.instruction.compute.opsdotaccsatkhr.all_uu_v2i8_out8 +dEQP-VK.spirv_assembly.instruction.compute.opsdotaccsatkhr.all_us_v2i8_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsdotaccsatkhr.all_us_v2i8_out16 +dEQP-VK.spirv_assembly.instruction.compute.opsdotaccsatkhr.all_us_v2i8_out8 +dEQP-VK.spirv_assembly.instruction.compute.opsdotaccsatkhr.all_su_v2i8_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsdotaccsatkhr.all_su_v2i8_out16 +dEQP-VK.spirv_assembly.instruction.compute.opsdotaccsatkhr.all_su_v2i8_out8 +dEQP-VK.spirv_assembly.instruction.compute.opsdotaccsatkhr.all_ss_v2i8_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsdotaccsatkhr.all_ss_v2i8_out16 +dEQP-VK.spirv_assembly.instruction.compute.opsdotaccsatkhr.all_ss_v2i8_out8 +dEQP-VK.spirv_assembly.instruction.compute.opsdotaccsatkhr.all_uu_v3i8_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsdotaccsatkhr.all_uu_v3i8_out16 +dEQP-VK.spirv_assembly.instruction.compute.opsdotaccsatkhr.all_uu_v3i8_out8 +dEQP-VK.spirv_assembly.instruction.compute.opsdotaccsatkhr.all_us_v3i8_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsdotaccsatkhr.all_us_v3i8_out16 +dEQP-VK.spirv_assembly.instruction.compute.opsdotaccsatkhr.all_us_v3i8_out8 +dEQP-VK.spirv_assembly.instruction.compute.opsdotaccsatkhr.all_su_v3i8_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsdotaccsatkhr.all_su_v3i8_out16 +dEQP-VK.spirv_assembly.instruction.compute.opsdotaccsatkhr.all_su_v3i8_out8 +dEQP-VK.spirv_assembly.instruction.compute.opsdotaccsatkhr.all_ss_v3i8_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsdotaccsatkhr.all_ss_v3i8_out16 +dEQP-VK.spirv_assembly.instruction.compute.opsdotaccsatkhr.all_ss_v3i8_out8 +dEQP-VK.spirv_assembly.instruction.compute.opsdotaccsatkhr.all_uu_v4i8_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsdotaccsatkhr.all_uu_v4i8_out16 +dEQP-VK.spirv_assembly.instruction.compute.opsdotaccsatkhr.all_uu_v4i8_out8 +dEQP-VK.spirv_assembly.instruction.compute.opsdotaccsatkhr.all_us_v4i8_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsdotaccsatkhr.all_us_v4i8_out16 +dEQP-VK.spirv_assembly.instruction.compute.opsdotaccsatkhr.all_us_v4i8_out8 +dEQP-VK.spirv_assembly.instruction.compute.opsdotaccsatkhr.all_su_v4i8_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsdotaccsatkhr.all_su_v4i8_out16 +dEQP-VK.spirv_assembly.instruction.compute.opsdotaccsatkhr.all_su_v4i8_out8 +dEQP-VK.spirv_assembly.instruction.compute.opsdotaccsatkhr.all_ss_v4i8_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsdotaccsatkhr.all_ss_v4i8_out16 +dEQP-VK.spirv_assembly.instruction.compute.opsdotaccsatkhr.all_ss_v4i8_out8 +dEQP-VK.spirv_assembly.instruction.compute.opsdotaccsatkhr.all_packed_ss_v4i8_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsdotaccsatkhr.all_packed_ss_v4i8_out16 +dEQP-VK.spirv_assembly.instruction.compute.opsdotaccsatkhr.all_packed_ss_v4i8_out8 +dEQP-VK.spirv_assembly.instruction.compute.opsdotaccsatkhr.all_packed_su_v4i8_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsdotaccsatkhr.all_packed_su_v4i8_out16 +dEQP-VK.spirv_assembly.instruction.compute.opsdotaccsatkhr.all_packed_su_v4i8_out8 +dEQP-VK.spirv_assembly.instruction.compute.opsdotaccsatkhr.all_packed_us_v4i8_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsdotaccsatkhr.all_packed_us_v4i8_out16 +dEQP-VK.spirv_assembly.instruction.compute.opsdotaccsatkhr.all_packed_us_v4i8_out8 +dEQP-VK.spirv_assembly.instruction.compute.opsdotaccsatkhr.all_packed_uu_v4i8_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsdotaccsatkhr.all_packed_uu_v4i8_out16 +dEQP-VK.spirv_assembly.instruction.compute.opsdotaccsatkhr.all_packed_uu_v4i8_out8 +dEQP-VK.spirv_assembly.instruction.compute.opsdotaccsatkhr.limits_uu_v2i8_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsdotaccsatkhr.limits_uu_v2i8_out16 +dEQP-VK.spirv_assembly.instruction.compute.opsdotaccsatkhr.limits_uu_v2i8_out8 +dEQP-VK.spirv_assembly.instruction.compute.opsdotaccsatkhr.limits_us_v2i8_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsdotaccsatkhr.limits_us_v2i8_out16 +dEQP-VK.spirv_assembly.instruction.compute.opsdotaccsatkhr.limits_us_v2i8_out8 +dEQP-VK.spirv_assembly.instruction.compute.opsdotaccsatkhr.limits_su_v2i8_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsdotaccsatkhr.limits_su_v2i8_out16 +dEQP-VK.spirv_assembly.instruction.compute.opsdotaccsatkhr.limits_su_v2i8_out8 +dEQP-VK.spirv_assembly.instruction.compute.opsdotaccsatkhr.limits_ss_v2i8_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsdotaccsatkhr.limits_ss_v2i8_out16 +dEQP-VK.spirv_assembly.instruction.compute.opsdotaccsatkhr.limits_ss_v2i8_out8 +dEQP-VK.spirv_assembly.instruction.compute.opsdotaccsatkhr.limits_uu_v3i8_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsdotaccsatkhr.limits_uu_v3i8_out16 +dEQP-VK.spirv_assembly.instruction.compute.opsdotaccsatkhr.limits_uu_v3i8_out8 +dEQP-VK.spirv_assembly.instruction.compute.opsdotaccsatkhr.limits_us_v3i8_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsdotaccsatkhr.limits_us_v3i8_out16 +dEQP-VK.spirv_assembly.instruction.compute.opsdotaccsatkhr.limits_us_v3i8_out8 +dEQP-VK.spirv_assembly.instruction.compute.opsdotaccsatkhr.limits_su_v3i8_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsdotaccsatkhr.limits_su_v3i8_out16 +dEQP-VK.spirv_assembly.instruction.compute.opsdotaccsatkhr.limits_su_v3i8_out8 +dEQP-VK.spirv_assembly.instruction.compute.opsdotaccsatkhr.limits_ss_v3i8_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsdotaccsatkhr.limits_ss_v3i8_out16 +dEQP-VK.spirv_assembly.instruction.compute.opsdotaccsatkhr.limits_ss_v3i8_out8 +dEQP-VK.spirv_assembly.instruction.compute.opsdotaccsatkhr.limits_uu_v4i8_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsdotaccsatkhr.limits_uu_v4i8_out16 +dEQP-VK.spirv_assembly.instruction.compute.opsdotaccsatkhr.limits_uu_v4i8_out8 +dEQP-VK.spirv_assembly.instruction.compute.opsdotaccsatkhr.limits_us_v4i8_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsdotaccsatkhr.limits_us_v4i8_out16 +dEQP-VK.spirv_assembly.instruction.compute.opsdotaccsatkhr.limits_us_v4i8_out8 +dEQP-VK.spirv_assembly.instruction.compute.opsdotaccsatkhr.limits_su_v4i8_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsdotaccsatkhr.limits_su_v4i8_out16 +dEQP-VK.spirv_assembly.instruction.compute.opsdotaccsatkhr.limits_su_v4i8_out8 +dEQP-VK.spirv_assembly.instruction.compute.opsdotaccsatkhr.limits_ss_v4i8_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsdotaccsatkhr.limits_ss_v4i8_out16 +dEQP-VK.spirv_assembly.instruction.compute.opsdotaccsatkhr.limits_ss_v4i8_out8 +dEQP-VK.spirv_assembly.instruction.compute.opsdotaccsatkhr.limits_packed_ss_v4i8_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsdotaccsatkhr.limits_packed_ss_v4i8_out16 +dEQP-VK.spirv_assembly.instruction.compute.opsdotaccsatkhr.limits_packed_ss_v4i8_out8 +dEQP-VK.spirv_assembly.instruction.compute.opsdotaccsatkhr.limits_packed_su_v4i8_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsdotaccsatkhr.limits_packed_su_v4i8_out16 +dEQP-VK.spirv_assembly.instruction.compute.opsdotaccsatkhr.limits_packed_su_v4i8_out8 +dEQP-VK.spirv_assembly.instruction.compute.opsdotaccsatkhr.limits_packed_us_v4i8_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsdotaccsatkhr.limits_packed_us_v4i8_out16 +dEQP-VK.spirv_assembly.instruction.compute.opsdotaccsatkhr.limits_packed_us_v4i8_out8 +dEQP-VK.spirv_assembly.instruction.compute.opsdotaccsatkhr.limits_packed_uu_v4i8_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsdotaccsatkhr.limits_packed_uu_v4i8_out16 +dEQP-VK.spirv_assembly.instruction.compute.opsdotaccsatkhr.limits_packed_uu_v4i8_out8 +dEQP-VK.spirv_assembly.instruction.compute.opsdotaccsatkhr.limits-neg_uu_v2i8_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsdotaccsatkhr.limits-neg_uu_v2i8_out16 +dEQP-VK.spirv_assembly.instruction.compute.opsdotaccsatkhr.limits-neg_uu_v2i8_out8 +dEQP-VK.spirv_assembly.instruction.compute.opsdotaccsatkhr.limits-neg_us_v2i8_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsdotaccsatkhr.limits-neg_us_v2i8_out16 +dEQP-VK.spirv_assembly.instruction.compute.opsdotaccsatkhr.limits-neg_us_v2i8_out8 +dEQP-VK.spirv_assembly.instruction.compute.opsdotaccsatkhr.limits-neg_su_v2i8_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsdotaccsatkhr.limits-neg_su_v2i8_out16 +dEQP-VK.spirv_assembly.instruction.compute.opsdotaccsatkhr.limits-neg_su_v2i8_out8 +dEQP-VK.spirv_assembly.instruction.compute.opsdotaccsatkhr.limits-neg_ss_v2i8_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsdotaccsatkhr.limits-neg_ss_v2i8_out16 +dEQP-VK.spirv_assembly.instruction.compute.opsdotaccsatkhr.limits-neg_ss_v2i8_out8 +dEQP-VK.spirv_assembly.instruction.compute.opsdotaccsatkhr.limits-neg_uu_v3i8_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsdotaccsatkhr.limits-neg_uu_v3i8_out16 +dEQP-VK.spirv_assembly.instruction.compute.opsdotaccsatkhr.limits-neg_uu_v3i8_out8 +dEQP-VK.spirv_assembly.instruction.compute.opsdotaccsatkhr.limits-neg_us_v3i8_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsdotaccsatkhr.limits-neg_us_v3i8_out16 +dEQP-VK.spirv_assembly.instruction.compute.opsdotaccsatkhr.limits-neg_us_v3i8_out8 +dEQP-VK.spirv_assembly.instruction.compute.opsdotaccsatkhr.limits-neg_su_v3i8_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsdotaccsatkhr.limits-neg_su_v3i8_out16 +dEQP-VK.spirv_assembly.instruction.compute.opsdotaccsatkhr.limits-neg_su_v3i8_out8 +dEQP-VK.spirv_assembly.instruction.compute.opsdotaccsatkhr.limits-neg_ss_v3i8_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsdotaccsatkhr.limits-neg_ss_v3i8_out16 +dEQP-VK.spirv_assembly.instruction.compute.opsdotaccsatkhr.limits-neg_ss_v3i8_out8 +dEQP-VK.spirv_assembly.instruction.compute.opsdotaccsatkhr.limits-neg_uu_v4i8_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsdotaccsatkhr.limits-neg_uu_v4i8_out16 +dEQP-VK.spirv_assembly.instruction.compute.opsdotaccsatkhr.limits-neg_uu_v4i8_out8 +dEQP-VK.spirv_assembly.instruction.compute.opsdotaccsatkhr.limits-neg_us_v4i8_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsdotaccsatkhr.limits-neg_us_v4i8_out16 +dEQP-VK.spirv_assembly.instruction.compute.opsdotaccsatkhr.limits-neg_us_v4i8_out8 +dEQP-VK.spirv_assembly.instruction.compute.opsdotaccsatkhr.limits-neg_su_v4i8_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsdotaccsatkhr.limits-neg_su_v4i8_out16 +dEQP-VK.spirv_assembly.instruction.compute.opsdotaccsatkhr.limits-neg_su_v4i8_out8 +dEQP-VK.spirv_assembly.instruction.compute.opsdotaccsatkhr.limits-neg_ss_v4i8_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsdotaccsatkhr.limits-neg_ss_v4i8_out16 +dEQP-VK.spirv_assembly.instruction.compute.opsdotaccsatkhr.limits-neg_ss_v4i8_out8 +dEQP-VK.spirv_assembly.instruction.compute.opsdotaccsatkhr.limits-neg_packed_ss_v4i8_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsdotaccsatkhr.limits-neg_packed_ss_v4i8_out16 +dEQP-VK.spirv_assembly.instruction.compute.opsdotaccsatkhr.limits-neg_packed_ss_v4i8_out8 +dEQP-VK.spirv_assembly.instruction.compute.opsdotaccsatkhr.limits-neg_packed_su_v4i8_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsdotaccsatkhr.limits-neg_packed_su_v4i8_out16 +dEQP-VK.spirv_assembly.instruction.compute.opsdotaccsatkhr.limits-neg_packed_su_v4i8_out8 +dEQP-VK.spirv_assembly.instruction.compute.opsdotaccsatkhr.limits-neg_packed_us_v4i8_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsdotaccsatkhr.limits-neg_packed_us_v4i8_out16 +dEQP-VK.spirv_assembly.instruction.compute.opsdotaccsatkhr.limits-neg_packed_us_v4i8_out8 +dEQP-VK.spirv_assembly.instruction.compute.opsdotaccsatkhr.limits-neg_packed_uu_v4i8_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsdotaccsatkhr.limits-neg_packed_uu_v4i8_out16 +dEQP-VK.spirv_assembly.instruction.compute.opsdotaccsatkhr.limits-neg_packed_uu_v4i8_out8 +dEQP-VK.spirv_assembly.instruction.compute.opsdotaccsatkhr.small_uu_v2i8_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsdotaccsatkhr.small_uu_v2i8_out16 +dEQP-VK.spirv_assembly.instruction.compute.opsdotaccsatkhr.small_uu_v2i8_out8 +dEQP-VK.spirv_assembly.instruction.compute.opsdotaccsatkhr.small_us_v2i8_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsdotaccsatkhr.small_us_v2i8_out16 +dEQP-VK.spirv_assembly.instruction.compute.opsdotaccsatkhr.small_us_v2i8_out8 +dEQP-VK.spirv_assembly.instruction.compute.opsdotaccsatkhr.small_su_v2i8_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsdotaccsatkhr.small_su_v2i8_out16 +dEQP-VK.spirv_assembly.instruction.compute.opsdotaccsatkhr.small_su_v2i8_out8 +dEQP-VK.spirv_assembly.instruction.compute.opsdotaccsatkhr.small_ss_v2i8_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsdotaccsatkhr.small_ss_v2i8_out16 +dEQP-VK.spirv_assembly.instruction.compute.opsdotaccsatkhr.small_ss_v2i8_out8 +dEQP-VK.spirv_assembly.instruction.compute.opsdotaccsatkhr.small_uu_v3i8_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsdotaccsatkhr.small_uu_v3i8_out16 +dEQP-VK.spirv_assembly.instruction.compute.opsdotaccsatkhr.small_uu_v3i8_out8 +dEQP-VK.spirv_assembly.instruction.compute.opsdotaccsatkhr.small_us_v3i8_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsdotaccsatkhr.small_us_v3i8_out16 +dEQP-VK.spirv_assembly.instruction.compute.opsdotaccsatkhr.small_us_v3i8_out8 +dEQP-VK.spirv_assembly.instruction.compute.opsdotaccsatkhr.small_su_v3i8_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsdotaccsatkhr.small_su_v3i8_out16 +dEQP-VK.spirv_assembly.instruction.compute.opsdotaccsatkhr.small_su_v3i8_out8 +dEQP-VK.spirv_assembly.instruction.compute.opsdotaccsatkhr.small_ss_v3i8_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsdotaccsatkhr.small_ss_v3i8_out16 +dEQP-VK.spirv_assembly.instruction.compute.opsdotaccsatkhr.small_ss_v3i8_out8 +dEQP-VK.spirv_assembly.instruction.compute.opsdotaccsatkhr.small_uu_v4i8_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsdotaccsatkhr.small_uu_v4i8_out16 +dEQP-VK.spirv_assembly.instruction.compute.opsdotaccsatkhr.small_uu_v4i8_out8 +dEQP-VK.spirv_assembly.instruction.compute.opsdotaccsatkhr.small_us_v4i8_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsdotaccsatkhr.small_us_v4i8_out16 +dEQP-VK.spirv_assembly.instruction.compute.opsdotaccsatkhr.small_us_v4i8_out8 +dEQP-VK.spirv_assembly.instruction.compute.opsdotaccsatkhr.small_su_v4i8_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsdotaccsatkhr.small_su_v4i8_out16 +dEQP-VK.spirv_assembly.instruction.compute.opsdotaccsatkhr.small_su_v4i8_out8 +dEQP-VK.spirv_assembly.instruction.compute.opsdotaccsatkhr.small_ss_v4i8_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsdotaccsatkhr.small_ss_v4i8_out16 +dEQP-VK.spirv_assembly.instruction.compute.opsdotaccsatkhr.small_ss_v4i8_out8 +dEQP-VK.spirv_assembly.instruction.compute.opsdotaccsatkhr.small_packed_ss_v4i8_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsdotaccsatkhr.small_packed_ss_v4i8_out16 +dEQP-VK.spirv_assembly.instruction.compute.opsdotaccsatkhr.small_packed_ss_v4i8_out8 +dEQP-VK.spirv_assembly.instruction.compute.opsdotaccsatkhr.small_packed_su_v4i8_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsdotaccsatkhr.small_packed_su_v4i8_out16 +dEQP-VK.spirv_assembly.instruction.compute.opsdotaccsatkhr.small_packed_su_v4i8_out8 +dEQP-VK.spirv_assembly.instruction.compute.opsdotaccsatkhr.small_packed_us_v4i8_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsdotaccsatkhr.small_packed_us_v4i8_out16 +dEQP-VK.spirv_assembly.instruction.compute.opsdotaccsatkhr.small_packed_us_v4i8_out8 +dEQP-VK.spirv_assembly.instruction.compute.opsdotaccsatkhr.small_packed_uu_v4i8_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsdotaccsatkhr.small_packed_uu_v4i8_out16 +dEQP-VK.spirv_assembly.instruction.compute.opsdotaccsatkhr.small_packed_uu_v4i8_out8 +dEQP-VK.spirv_assembly.instruction.compute.opsdotaccsatkhr.all_uu_v2i16_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsdotaccsatkhr.all_uu_v2i16_out16 +dEQP-VK.spirv_assembly.instruction.compute.opsdotaccsatkhr.all_us_v2i16_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsdotaccsatkhr.all_us_v2i16_out16 +dEQP-VK.spirv_assembly.instruction.compute.opsdotaccsatkhr.all_su_v2i16_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsdotaccsatkhr.all_su_v2i16_out16 +dEQP-VK.spirv_assembly.instruction.compute.opsdotaccsatkhr.all_ss_v2i16_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsdotaccsatkhr.all_ss_v2i16_out16 +dEQP-VK.spirv_assembly.instruction.compute.opsdotaccsatkhr.all_uu_v3i16_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsdotaccsatkhr.all_uu_v3i16_out16 +dEQP-VK.spirv_assembly.instruction.compute.opsdotaccsatkhr.all_us_v3i16_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsdotaccsatkhr.all_us_v3i16_out16 +dEQP-VK.spirv_assembly.instruction.compute.opsdotaccsatkhr.all_su_v3i16_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsdotaccsatkhr.all_su_v3i16_out16 +dEQP-VK.spirv_assembly.instruction.compute.opsdotaccsatkhr.all_ss_v3i16_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsdotaccsatkhr.all_ss_v3i16_out16 +dEQP-VK.spirv_assembly.instruction.compute.opsdotaccsatkhr.all_uu_v4i16_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsdotaccsatkhr.all_uu_v4i16_out16 +dEQP-VK.spirv_assembly.instruction.compute.opsdotaccsatkhr.all_us_v4i16_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsdotaccsatkhr.all_us_v4i16_out16 +dEQP-VK.spirv_assembly.instruction.compute.opsdotaccsatkhr.all_su_v4i16_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsdotaccsatkhr.all_su_v4i16_out16 +dEQP-VK.spirv_assembly.instruction.compute.opsdotaccsatkhr.all_ss_v4i16_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsdotaccsatkhr.all_ss_v4i16_out16 +dEQP-VK.spirv_assembly.instruction.compute.opsdotaccsatkhr.limits_uu_v2i16_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsdotaccsatkhr.limits_uu_v2i16_out16 +dEQP-VK.spirv_assembly.instruction.compute.opsdotaccsatkhr.limits_us_v2i16_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsdotaccsatkhr.limits_us_v2i16_out16 +dEQP-VK.spirv_assembly.instruction.compute.opsdotaccsatkhr.limits_su_v2i16_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsdotaccsatkhr.limits_su_v2i16_out16 +dEQP-VK.spirv_assembly.instruction.compute.opsdotaccsatkhr.limits_ss_v2i16_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsdotaccsatkhr.limits_ss_v2i16_out16 +dEQP-VK.spirv_assembly.instruction.compute.opsdotaccsatkhr.limits_uu_v3i16_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsdotaccsatkhr.limits_uu_v3i16_out16 +dEQP-VK.spirv_assembly.instruction.compute.opsdotaccsatkhr.limits_us_v3i16_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsdotaccsatkhr.limits_us_v3i16_out16 +dEQP-VK.spirv_assembly.instruction.compute.opsdotaccsatkhr.limits_su_v3i16_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsdotaccsatkhr.limits_su_v3i16_out16 +dEQP-VK.spirv_assembly.instruction.compute.opsdotaccsatkhr.limits_ss_v3i16_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsdotaccsatkhr.limits_ss_v3i16_out16 +dEQP-VK.spirv_assembly.instruction.compute.opsdotaccsatkhr.limits_uu_v4i16_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsdotaccsatkhr.limits_uu_v4i16_out16 +dEQP-VK.spirv_assembly.instruction.compute.opsdotaccsatkhr.limits_us_v4i16_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsdotaccsatkhr.limits_us_v4i16_out16 +dEQP-VK.spirv_assembly.instruction.compute.opsdotaccsatkhr.limits_su_v4i16_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsdotaccsatkhr.limits_su_v4i16_out16 +dEQP-VK.spirv_assembly.instruction.compute.opsdotaccsatkhr.limits_ss_v4i16_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsdotaccsatkhr.limits_ss_v4i16_out16 +dEQP-VK.spirv_assembly.instruction.compute.opsdotaccsatkhr.limits-neg_uu_v2i16_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsdotaccsatkhr.limits-neg_uu_v2i16_out16 +dEQP-VK.spirv_assembly.instruction.compute.opsdotaccsatkhr.limits-neg_us_v2i16_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsdotaccsatkhr.limits-neg_us_v2i16_out16 +dEQP-VK.spirv_assembly.instruction.compute.opsdotaccsatkhr.limits-neg_su_v2i16_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsdotaccsatkhr.limits-neg_su_v2i16_out16 +dEQP-VK.spirv_assembly.instruction.compute.opsdotaccsatkhr.limits-neg_ss_v2i16_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsdotaccsatkhr.limits-neg_ss_v2i16_out16 +dEQP-VK.spirv_assembly.instruction.compute.opsdotaccsatkhr.limits-neg_uu_v3i16_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsdotaccsatkhr.limits-neg_uu_v3i16_out16 +dEQP-VK.spirv_assembly.instruction.compute.opsdotaccsatkhr.limits-neg_us_v3i16_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsdotaccsatkhr.limits-neg_us_v3i16_out16 +dEQP-VK.spirv_assembly.instruction.compute.opsdotaccsatkhr.limits-neg_su_v3i16_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsdotaccsatkhr.limits-neg_su_v3i16_out16 +dEQP-VK.spirv_assembly.instruction.compute.opsdotaccsatkhr.limits-neg_ss_v3i16_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsdotaccsatkhr.limits-neg_ss_v3i16_out16 +dEQP-VK.spirv_assembly.instruction.compute.opsdotaccsatkhr.limits-neg_uu_v4i16_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsdotaccsatkhr.limits-neg_uu_v4i16_out16 +dEQP-VK.spirv_assembly.instruction.compute.opsdotaccsatkhr.limits-neg_us_v4i16_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsdotaccsatkhr.limits-neg_us_v4i16_out16 +dEQP-VK.spirv_assembly.instruction.compute.opsdotaccsatkhr.limits-neg_su_v4i16_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsdotaccsatkhr.limits-neg_su_v4i16_out16 +dEQP-VK.spirv_assembly.instruction.compute.opsdotaccsatkhr.limits-neg_ss_v4i16_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsdotaccsatkhr.limits-neg_ss_v4i16_out16 +dEQP-VK.spirv_assembly.instruction.compute.opsdotaccsatkhr.all_uu_v2i32_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsdotaccsatkhr.all_us_v2i32_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsdotaccsatkhr.all_su_v2i32_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsdotaccsatkhr.all_ss_v2i32_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsdotaccsatkhr.all_uu_v3i32_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsdotaccsatkhr.all_us_v3i32_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsdotaccsatkhr.all_su_v3i32_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsdotaccsatkhr.all_ss_v3i32_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsdotaccsatkhr.all_uu_v4i32_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsdotaccsatkhr.all_us_v4i32_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsdotaccsatkhr.all_su_v4i32_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsdotaccsatkhr.all_ss_v4i32_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsdotaccsatkhr.limits_uu_v2i32_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsdotaccsatkhr.limits_us_v2i32_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsdotaccsatkhr.limits_su_v2i32_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsdotaccsatkhr.limits_ss_v2i32_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsdotaccsatkhr.limits_uu_v3i32_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsdotaccsatkhr.limits_us_v3i32_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsdotaccsatkhr.limits_su_v3i32_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsdotaccsatkhr.limits_ss_v3i32_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsdotaccsatkhr.limits_uu_v4i32_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsdotaccsatkhr.limits_us_v4i32_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsdotaccsatkhr.limits_su_v4i32_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsdotaccsatkhr.limits_ss_v4i32_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsdotaccsatkhr.limits-neg_uu_v2i32_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsdotaccsatkhr.limits-neg_us_v2i32_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsdotaccsatkhr.limits-neg_su_v2i32_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsdotaccsatkhr.limits-neg_ss_v2i32_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsdotaccsatkhr.limits-neg_uu_v3i32_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsdotaccsatkhr.limits-neg_us_v3i32_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsdotaccsatkhr.limits-neg_su_v3i32_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsdotaccsatkhr.limits-neg_ss_v3i32_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsdotaccsatkhr.limits-neg_uu_v4i32_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsdotaccsatkhr.limits-neg_us_v4i32_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsdotaccsatkhr.limits-neg_su_v4i32_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsdotaccsatkhr.limits-neg_ss_v4i32_out32 +dEQP-VK.spirv_assembly.instruction.compute.opudotaccsatkhr.all_uu_v2i8_out32 +dEQP-VK.spirv_assembly.instruction.compute.opudotaccsatkhr.all_uu_v2i8_out16 +dEQP-VK.spirv_assembly.instruction.compute.opudotaccsatkhr.all_uu_v2i8_out8 +dEQP-VK.spirv_assembly.instruction.compute.opudotaccsatkhr.all_us_v2i8_out32 +dEQP-VK.spirv_assembly.instruction.compute.opudotaccsatkhr.all_us_v2i8_out16 +dEQP-VK.spirv_assembly.instruction.compute.opudotaccsatkhr.all_us_v2i8_out8 +dEQP-VK.spirv_assembly.instruction.compute.opudotaccsatkhr.all_su_v2i8_out32 +dEQP-VK.spirv_assembly.instruction.compute.opudotaccsatkhr.all_su_v2i8_out16 +dEQP-VK.spirv_assembly.instruction.compute.opudotaccsatkhr.all_su_v2i8_out8 +dEQP-VK.spirv_assembly.instruction.compute.opudotaccsatkhr.all_ss_v2i8_out32 +dEQP-VK.spirv_assembly.instruction.compute.opudotaccsatkhr.all_ss_v2i8_out16 +dEQP-VK.spirv_assembly.instruction.compute.opudotaccsatkhr.all_ss_v2i8_out8 +dEQP-VK.spirv_assembly.instruction.compute.opudotaccsatkhr.all_uu_v3i8_out32 +dEQP-VK.spirv_assembly.instruction.compute.opudotaccsatkhr.all_uu_v3i8_out16 +dEQP-VK.spirv_assembly.instruction.compute.opudotaccsatkhr.all_uu_v3i8_out8 +dEQP-VK.spirv_assembly.instruction.compute.opudotaccsatkhr.all_us_v3i8_out32 +dEQP-VK.spirv_assembly.instruction.compute.opudotaccsatkhr.all_us_v3i8_out16 +dEQP-VK.spirv_assembly.instruction.compute.opudotaccsatkhr.all_us_v3i8_out8 +dEQP-VK.spirv_assembly.instruction.compute.opudotaccsatkhr.all_su_v3i8_out32 +dEQP-VK.spirv_assembly.instruction.compute.opudotaccsatkhr.all_su_v3i8_out16 +dEQP-VK.spirv_assembly.instruction.compute.opudotaccsatkhr.all_su_v3i8_out8 +dEQP-VK.spirv_assembly.instruction.compute.opudotaccsatkhr.all_ss_v3i8_out32 +dEQP-VK.spirv_assembly.instruction.compute.opudotaccsatkhr.all_ss_v3i8_out16 +dEQP-VK.spirv_assembly.instruction.compute.opudotaccsatkhr.all_ss_v3i8_out8 +dEQP-VK.spirv_assembly.instruction.compute.opudotaccsatkhr.all_uu_v4i8_out32 +dEQP-VK.spirv_assembly.instruction.compute.opudotaccsatkhr.all_uu_v4i8_out16 +dEQP-VK.spirv_assembly.instruction.compute.opudotaccsatkhr.all_uu_v4i8_out8 +dEQP-VK.spirv_assembly.instruction.compute.opudotaccsatkhr.all_us_v4i8_out32 +dEQP-VK.spirv_assembly.instruction.compute.opudotaccsatkhr.all_us_v4i8_out16 +dEQP-VK.spirv_assembly.instruction.compute.opudotaccsatkhr.all_us_v4i8_out8 +dEQP-VK.spirv_assembly.instruction.compute.opudotaccsatkhr.all_su_v4i8_out32 +dEQP-VK.spirv_assembly.instruction.compute.opudotaccsatkhr.all_su_v4i8_out16 +dEQP-VK.spirv_assembly.instruction.compute.opudotaccsatkhr.all_su_v4i8_out8 +dEQP-VK.spirv_assembly.instruction.compute.opudotaccsatkhr.all_ss_v4i8_out32 +dEQP-VK.spirv_assembly.instruction.compute.opudotaccsatkhr.all_ss_v4i8_out16 +dEQP-VK.spirv_assembly.instruction.compute.opudotaccsatkhr.all_ss_v4i8_out8 +dEQP-VK.spirv_assembly.instruction.compute.opudotaccsatkhr.all_packed_ss_v4i8_out32 +dEQP-VK.spirv_assembly.instruction.compute.opudotaccsatkhr.all_packed_ss_v4i8_out16 +dEQP-VK.spirv_assembly.instruction.compute.opudotaccsatkhr.all_packed_ss_v4i8_out8 +dEQP-VK.spirv_assembly.instruction.compute.opudotaccsatkhr.all_packed_su_v4i8_out32 +dEQP-VK.spirv_assembly.instruction.compute.opudotaccsatkhr.all_packed_su_v4i8_out16 +dEQP-VK.spirv_assembly.instruction.compute.opudotaccsatkhr.all_packed_su_v4i8_out8 +dEQP-VK.spirv_assembly.instruction.compute.opudotaccsatkhr.all_packed_us_v4i8_out32 +dEQP-VK.spirv_assembly.instruction.compute.opudotaccsatkhr.all_packed_us_v4i8_out16 +dEQP-VK.spirv_assembly.instruction.compute.opudotaccsatkhr.all_packed_us_v4i8_out8 +dEQP-VK.spirv_assembly.instruction.compute.opudotaccsatkhr.all_packed_uu_v4i8_out32 +dEQP-VK.spirv_assembly.instruction.compute.opudotaccsatkhr.all_packed_uu_v4i8_out16 +dEQP-VK.spirv_assembly.instruction.compute.opudotaccsatkhr.all_packed_uu_v4i8_out8 +dEQP-VK.spirv_assembly.instruction.compute.opudotaccsatkhr.limits_uu_v2i8_out32 +dEQP-VK.spirv_assembly.instruction.compute.opudotaccsatkhr.limits_uu_v2i8_out16 +dEQP-VK.spirv_assembly.instruction.compute.opudotaccsatkhr.limits_uu_v2i8_out8 +dEQP-VK.spirv_assembly.instruction.compute.opudotaccsatkhr.limits_us_v2i8_out32 +dEQP-VK.spirv_assembly.instruction.compute.opudotaccsatkhr.limits_us_v2i8_out16 +dEQP-VK.spirv_assembly.instruction.compute.opudotaccsatkhr.limits_us_v2i8_out8 +dEQP-VK.spirv_assembly.instruction.compute.opudotaccsatkhr.limits_su_v2i8_out32 +dEQP-VK.spirv_assembly.instruction.compute.opudotaccsatkhr.limits_su_v2i8_out16 +dEQP-VK.spirv_assembly.instruction.compute.opudotaccsatkhr.limits_su_v2i8_out8 +dEQP-VK.spirv_assembly.instruction.compute.opudotaccsatkhr.limits_ss_v2i8_out32 +dEQP-VK.spirv_assembly.instruction.compute.opudotaccsatkhr.limits_ss_v2i8_out16 +dEQP-VK.spirv_assembly.instruction.compute.opudotaccsatkhr.limits_ss_v2i8_out8 +dEQP-VK.spirv_assembly.instruction.compute.opudotaccsatkhr.limits_uu_v3i8_out32 +dEQP-VK.spirv_assembly.instruction.compute.opudotaccsatkhr.limits_uu_v3i8_out16 +dEQP-VK.spirv_assembly.instruction.compute.opudotaccsatkhr.limits_uu_v3i8_out8 +dEQP-VK.spirv_assembly.instruction.compute.opudotaccsatkhr.limits_us_v3i8_out32 +dEQP-VK.spirv_assembly.instruction.compute.opudotaccsatkhr.limits_us_v3i8_out16 +dEQP-VK.spirv_assembly.instruction.compute.opudotaccsatkhr.limits_us_v3i8_out8 +dEQP-VK.spirv_assembly.instruction.compute.opudotaccsatkhr.limits_su_v3i8_out32 +dEQP-VK.spirv_assembly.instruction.compute.opudotaccsatkhr.limits_su_v3i8_out16 +dEQP-VK.spirv_assembly.instruction.compute.opudotaccsatkhr.limits_su_v3i8_out8 +dEQP-VK.spirv_assembly.instruction.compute.opudotaccsatkhr.limits_ss_v3i8_out32 +dEQP-VK.spirv_assembly.instruction.compute.opudotaccsatkhr.limits_ss_v3i8_out16 +dEQP-VK.spirv_assembly.instruction.compute.opudotaccsatkhr.limits_ss_v3i8_out8 +dEQP-VK.spirv_assembly.instruction.compute.opudotaccsatkhr.limits_uu_v4i8_out32 +dEQP-VK.spirv_assembly.instruction.compute.opudotaccsatkhr.limits_uu_v4i8_out16 +dEQP-VK.spirv_assembly.instruction.compute.opudotaccsatkhr.limits_uu_v4i8_out8 +dEQP-VK.spirv_assembly.instruction.compute.opudotaccsatkhr.limits_us_v4i8_out32 +dEQP-VK.spirv_assembly.instruction.compute.opudotaccsatkhr.limits_us_v4i8_out16 +dEQP-VK.spirv_assembly.instruction.compute.opudotaccsatkhr.limits_us_v4i8_out8 +dEQP-VK.spirv_assembly.instruction.compute.opudotaccsatkhr.limits_su_v4i8_out32 +dEQP-VK.spirv_assembly.instruction.compute.opudotaccsatkhr.limits_su_v4i8_out16 +dEQP-VK.spirv_assembly.instruction.compute.opudotaccsatkhr.limits_su_v4i8_out8 +dEQP-VK.spirv_assembly.instruction.compute.opudotaccsatkhr.limits_ss_v4i8_out32 +dEQP-VK.spirv_assembly.instruction.compute.opudotaccsatkhr.limits_ss_v4i8_out16 +dEQP-VK.spirv_assembly.instruction.compute.opudotaccsatkhr.limits_ss_v4i8_out8 +dEQP-VK.spirv_assembly.instruction.compute.opudotaccsatkhr.limits_packed_ss_v4i8_out32 +dEQP-VK.spirv_assembly.instruction.compute.opudotaccsatkhr.limits_packed_ss_v4i8_out16 +dEQP-VK.spirv_assembly.instruction.compute.opudotaccsatkhr.limits_packed_ss_v4i8_out8 +dEQP-VK.spirv_assembly.instruction.compute.opudotaccsatkhr.limits_packed_su_v4i8_out32 +dEQP-VK.spirv_assembly.instruction.compute.opudotaccsatkhr.limits_packed_su_v4i8_out16 +dEQP-VK.spirv_assembly.instruction.compute.opudotaccsatkhr.limits_packed_su_v4i8_out8 +dEQP-VK.spirv_assembly.instruction.compute.opudotaccsatkhr.limits_packed_us_v4i8_out32 +dEQP-VK.spirv_assembly.instruction.compute.opudotaccsatkhr.limits_packed_us_v4i8_out16 +dEQP-VK.spirv_assembly.instruction.compute.opudotaccsatkhr.limits_packed_us_v4i8_out8 +dEQP-VK.spirv_assembly.instruction.compute.opudotaccsatkhr.limits_packed_uu_v4i8_out32 +dEQP-VK.spirv_assembly.instruction.compute.opudotaccsatkhr.limits_packed_uu_v4i8_out16 +dEQP-VK.spirv_assembly.instruction.compute.opudotaccsatkhr.limits_packed_uu_v4i8_out8 +dEQP-VK.spirv_assembly.instruction.compute.opudotaccsatkhr.small_uu_v2i8_out32 +dEQP-VK.spirv_assembly.instruction.compute.opudotaccsatkhr.small_uu_v2i8_out16 +dEQP-VK.spirv_assembly.instruction.compute.opudotaccsatkhr.small_uu_v2i8_out8 +dEQP-VK.spirv_assembly.instruction.compute.opudotaccsatkhr.small_us_v2i8_out32 +dEQP-VK.spirv_assembly.instruction.compute.opudotaccsatkhr.small_us_v2i8_out16 +dEQP-VK.spirv_assembly.instruction.compute.opudotaccsatkhr.small_us_v2i8_out8 +dEQP-VK.spirv_assembly.instruction.compute.opudotaccsatkhr.small_su_v2i8_out32 +dEQP-VK.spirv_assembly.instruction.compute.opudotaccsatkhr.small_su_v2i8_out16 +dEQP-VK.spirv_assembly.instruction.compute.opudotaccsatkhr.small_su_v2i8_out8 +dEQP-VK.spirv_assembly.instruction.compute.opudotaccsatkhr.small_ss_v2i8_out32 +dEQP-VK.spirv_assembly.instruction.compute.opudotaccsatkhr.small_ss_v2i8_out16 +dEQP-VK.spirv_assembly.instruction.compute.opudotaccsatkhr.small_ss_v2i8_out8 +dEQP-VK.spirv_assembly.instruction.compute.opudotaccsatkhr.small_uu_v3i8_out32 +dEQP-VK.spirv_assembly.instruction.compute.opudotaccsatkhr.small_uu_v3i8_out16 +dEQP-VK.spirv_assembly.instruction.compute.opudotaccsatkhr.small_uu_v3i8_out8 +dEQP-VK.spirv_assembly.instruction.compute.opudotaccsatkhr.small_us_v3i8_out32 +dEQP-VK.spirv_assembly.instruction.compute.opudotaccsatkhr.small_us_v3i8_out16 +dEQP-VK.spirv_assembly.instruction.compute.opudotaccsatkhr.small_us_v3i8_out8 +dEQP-VK.spirv_assembly.instruction.compute.opudotaccsatkhr.small_su_v3i8_out32 +dEQP-VK.spirv_assembly.instruction.compute.opudotaccsatkhr.small_su_v3i8_out16 +dEQP-VK.spirv_assembly.instruction.compute.opudotaccsatkhr.small_su_v3i8_out8 +dEQP-VK.spirv_assembly.instruction.compute.opudotaccsatkhr.small_ss_v3i8_out32 +dEQP-VK.spirv_assembly.instruction.compute.opudotaccsatkhr.small_ss_v3i8_out16 +dEQP-VK.spirv_assembly.instruction.compute.opudotaccsatkhr.small_ss_v3i8_out8 +dEQP-VK.spirv_assembly.instruction.compute.opudotaccsatkhr.small_uu_v4i8_out32 +dEQP-VK.spirv_assembly.instruction.compute.opudotaccsatkhr.small_uu_v4i8_out16 +dEQP-VK.spirv_assembly.instruction.compute.opudotaccsatkhr.small_uu_v4i8_out8 +dEQP-VK.spirv_assembly.instruction.compute.opudotaccsatkhr.small_us_v4i8_out32 +dEQP-VK.spirv_assembly.instruction.compute.opudotaccsatkhr.small_us_v4i8_out16 +dEQP-VK.spirv_assembly.instruction.compute.opudotaccsatkhr.small_us_v4i8_out8 +dEQP-VK.spirv_assembly.instruction.compute.opudotaccsatkhr.small_su_v4i8_out32 +dEQP-VK.spirv_assembly.instruction.compute.opudotaccsatkhr.small_su_v4i8_out16 +dEQP-VK.spirv_assembly.instruction.compute.opudotaccsatkhr.small_su_v4i8_out8 +dEQP-VK.spirv_assembly.instruction.compute.opudotaccsatkhr.small_ss_v4i8_out32 +dEQP-VK.spirv_assembly.instruction.compute.opudotaccsatkhr.small_ss_v4i8_out16 +dEQP-VK.spirv_assembly.instruction.compute.opudotaccsatkhr.small_ss_v4i8_out8 +dEQP-VK.spirv_assembly.instruction.compute.opudotaccsatkhr.small_packed_ss_v4i8_out32 +dEQP-VK.spirv_assembly.instruction.compute.opudotaccsatkhr.small_packed_ss_v4i8_out16 +dEQP-VK.spirv_assembly.instruction.compute.opudotaccsatkhr.small_packed_ss_v4i8_out8 +dEQP-VK.spirv_assembly.instruction.compute.opudotaccsatkhr.small_packed_su_v4i8_out32 +dEQP-VK.spirv_assembly.instruction.compute.opudotaccsatkhr.small_packed_su_v4i8_out16 +dEQP-VK.spirv_assembly.instruction.compute.opudotaccsatkhr.small_packed_su_v4i8_out8 +dEQP-VK.spirv_assembly.instruction.compute.opudotaccsatkhr.small_packed_us_v4i8_out32 +dEQP-VK.spirv_assembly.instruction.compute.opudotaccsatkhr.small_packed_us_v4i8_out16 +dEQP-VK.spirv_assembly.instruction.compute.opudotaccsatkhr.small_packed_us_v4i8_out8 +dEQP-VK.spirv_assembly.instruction.compute.opudotaccsatkhr.small_packed_uu_v4i8_out32 +dEQP-VK.spirv_assembly.instruction.compute.opudotaccsatkhr.small_packed_uu_v4i8_out16 +dEQP-VK.spirv_assembly.instruction.compute.opudotaccsatkhr.small_packed_uu_v4i8_out8 +dEQP-VK.spirv_assembly.instruction.compute.opudotaccsatkhr.all_uu_v2i16_out32 +dEQP-VK.spirv_assembly.instruction.compute.opudotaccsatkhr.all_uu_v2i16_out16 +dEQP-VK.spirv_assembly.instruction.compute.opudotaccsatkhr.all_us_v2i16_out32 +dEQP-VK.spirv_assembly.instruction.compute.opudotaccsatkhr.all_us_v2i16_out16 +dEQP-VK.spirv_assembly.instruction.compute.opudotaccsatkhr.all_su_v2i16_out32 +dEQP-VK.spirv_assembly.instruction.compute.opudotaccsatkhr.all_su_v2i16_out16 +dEQP-VK.spirv_assembly.instruction.compute.opudotaccsatkhr.all_ss_v2i16_out32 +dEQP-VK.spirv_assembly.instruction.compute.opudotaccsatkhr.all_ss_v2i16_out16 +dEQP-VK.spirv_assembly.instruction.compute.opudotaccsatkhr.all_uu_v3i16_out32 +dEQP-VK.spirv_assembly.instruction.compute.opudotaccsatkhr.all_uu_v3i16_out16 +dEQP-VK.spirv_assembly.instruction.compute.opudotaccsatkhr.all_us_v3i16_out32 +dEQP-VK.spirv_assembly.instruction.compute.opudotaccsatkhr.all_us_v3i16_out16 +dEQP-VK.spirv_assembly.instruction.compute.opudotaccsatkhr.all_su_v3i16_out32 +dEQP-VK.spirv_assembly.instruction.compute.opudotaccsatkhr.all_su_v3i16_out16 +dEQP-VK.spirv_assembly.instruction.compute.opudotaccsatkhr.all_ss_v3i16_out32 +dEQP-VK.spirv_assembly.instruction.compute.opudotaccsatkhr.all_ss_v3i16_out16 +dEQP-VK.spirv_assembly.instruction.compute.opudotaccsatkhr.all_uu_v4i16_out32 +dEQP-VK.spirv_assembly.instruction.compute.opudotaccsatkhr.all_uu_v4i16_out16 +dEQP-VK.spirv_assembly.instruction.compute.opudotaccsatkhr.all_us_v4i16_out32 +dEQP-VK.spirv_assembly.instruction.compute.opudotaccsatkhr.all_us_v4i16_out16 +dEQP-VK.spirv_assembly.instruction.compute.opudotaccsatkhr.all_su_v4i16_out32 +dEQP-VK.spirv_assembly.instruction.compute.opudotaccsatkhr.all_su_v4i16_out16 +dEQP-VK.spirv_assembly.instruction.compute.opudotaccsatkhr.all_ss_v4i16_out32 +dEQP-VK.spirv_assembly.instruction.compute.opudotaccsatkhr.all_ss_v4i16_out16 +dEQP-VK.spirv_assembly.instruction.compute.opudotaccsatkhr.limits_uu_v2i16_out32 +dEQP-VK.spirv_assembly.instruction.compute.opudotaccsatkhr.limits_uu_v2i16_out16 +dEQP-VK.spirv_assembly.instruction.compute.opudotaccsatkhr.limits_us_v2i16_out32 +dEQP-VK.spirv_assembly.instruction.compute.opudotaccsatkhr.limits_us_v2i16_out16 +dEQP-VK.spirv_assembly.instruction.compute.opudotaccsatkhr.limits_su_v2i16_out32 +dEQP-VK.spirv_assembly.instruction.compute.opudotaccsatkhr.limits_su_v2i16_out16 +dEQP-VK.spirv_assembly.instruction.compute.opudotaccsatkhr.limits_ss_v2i16_out32 +dEQP-VK.spirv_assembly.instruction.compute.opudotaccsatkhr.limits_ss_v2i16_out16 +dEQP-VK.spirv_assembly.instruction.compute.opudotaccsatkhr.limits_uu_v3i16_out32 +dEQP-VK.spirv_assembly.instruction.compute.opudotaccsatkhr.limits_uu_v3i16_out16 +dEQP-VK.spirv_assembly.instruction.compute.opudotaccsatkhr.limits_us_v3i16_out32 +dEQP-VK.spirv_assembly.instruction.compute.opudotaccsatkhr.limits_us_v3i16_out16 +dEQP-VK.spirv_assembly.instruction.compute.opudotaccsatkhr.limits_su_v3i16_out32 +dEQP-VK.spirv_assembly.instruction.compute.opudotaccsatkhr.limits_su_v3i16_out16 +dEQP-VK.spirv_assembly.instruction.compute.opudotaccsatkhr.limits_ss_v3i16_out32 +dEQP-VK.spirv_assembly.instruction.compute.opudotaccsatkhr.limits_ss_v3i16_out16 +dEQP-VK.spirv_assembly.instruction.compute.opudotaccsatkhr.limits_uu_v4i16_out32 +dEQP-VK.spirv_assembly.instruction.compute.opudotaccsatkhr.limits_uu_v4i16_out16 +dEQP-VK.spirv_assembly.instruction.compute.opudotaccsatkhr.limits_us_v4i16_out32 +dEQP-VK.spirv_assembly.instruction.compute.opudotaccsatkhr.limits_us_v4i16_out16 +dEQP-VK.spirv_assembly.instruction.compute.opudotaccsatkhr.limits_su_v4i16_out32 +dEQP-VK.spirv_assembly.instruction.compute.opudotaccsatkhr.limits_su_v4i16_out16 +dEQP-VK.spirv_assembly.instruction.compute.opudotaccsatkhr.limits_ss_v4i16_out32 +dEQP-VK.spirv_assembly.instruction.compute.opudotaccsatkhr.limits_ss_v4i16_out16 +dEQP-VK.spirv_assembly.instruction.compute.opudotaccsatkhr.all_uu_v2i32_out32 +dEQP-VK.spirv_assembly.instruction.compute.opudotaccsatkhr.all_us_v2i32_out32 +dEQP-VK.spirv_assembly.instruction.compute.opudotaccsatkhr.all_su_v2i32_out32 +dEQP-VK.spirv_assembly.instruction.compute.opudotaccsatkhr.all_ss_v2i32_out32 +dEQP-VK.spirv_assembly.instruction.compute.opudotaccsatkhr.all_uu_v3i32_out32 +dEQP-VK.spirv_assembly.instruction.compute.opudotaccsatkhr.all_us_v3i32_out32 +dEQP-VK.spirv_assembly.instruction.compute.opudotaccsatkhr.all_su_v3i32_out32 +dEQP-VK.spirv_assembly.instruction.compute.opudotaccsatkhr.all_ss_v3i32_out32 +dEQP-VK.spirv_assembly.instruction.compute.opudotaccsatkhr.all_uu_v4i32_out32 +dEQP-VK.spirv_assembly.instruction.compute.opudotaccsatkhr.all_us_v4i32_out32 +dEQP-VK.spirv_assembly.instruction.compute.opudotaccsatkhr.all_su_v4i32_out32 +dEQP-VK.spirv_assembly.instruction.compute.opudotaccsatkhr.all_ss_v4i32_out32 +dEQP-VK.spirv_assembly.instruction.compute.opudotaccsatkhr.limits_uu_v2i32_out32 +dEQP-VK.spirv_assembly.instruction.compute.opudotaccsatkhr.limits_us_v2i32_out32 +dEQP-VK.spirv_assembly.instruction.compute.opudotaccsatkhr.limits_su_v2i32_out32 +dEQP-VK.spirv_assembly.instruction.compute.opudotaccsatkhr.limits_ss_v2i32_out32 +dEQP-VK.spirv_assembly.instruction.compute.opudotaccsatkhr.limits_uu_v3i32_out32 +dEQP-VK.spirv_assembly.instruction.compute.opudotaccsatkhr.limits_us_v3i32_out32 +dEQP-VK.spirv_assembly.instruction.compute.opudotaccsatkhr.limits_su_v3i32_out32 +dEQP-VK.spirv_assembly.instruction.compute.opudotaccsatkhr.limits_ss_v3i32_out32 +dEQP-VK.spirv_assembly.instruction.compute.opudotaccsatkhr.limits_uu_v4i32_out32 +dEQP-VK.spirv_assembly.instruction.compute.opudotaccsatkhr.limits_us_v4i32_out32 +dEQP-VK.spirv_assembly.instruction.compute.opudotaccsatkhr.limits_su_v4i32_out32 +dEQP-VK.spirv_assembly.instruction.compute.opudotaccsatkhr.limits_ss_v4i32_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsudotaccsatkhr.all_uu_v2i8_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsudotaccsatkhr.all_uu_v2i8_out16 +dEQP-VK.spirv_assembly.instruction.compute.opsudotaccsatkhr.all_uu_v2i8_out8 +dEQP-VK.spirv_assembly.instruction.compute.opsudotaccsatkhr.all_us_v2i8_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsudotaccsatkhr.all_us_v2i8_out16 +dEQP-VK.spirv_assembly.instruction.compute.opsudotaccsatkhr.all_us_v2i8_out8 +dEQP-VK.spirv_assembly.instruction.compute.opsudotaccsatkhr.all_su_v2i8_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsudotaccsatkhr.all_su_v2i8_out16 +dEQP-VK.spirv_assembly.instruction.compute.opsudotaccsatkhr.all_su_v2i8_out8 +dEQP-VK.spirv_assembly.instruction.compute.opsudotaccsatkhr.all_ss_v2i8_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsudotaccsatkhr.all_ss_v2i8_out16 +dEQP-VK.spirv_assembly.instruction.compute.opsudotaccsatkhr.all_ss_v2i8_out8 +dEQP-VK.spirv_assembly.instruction.compute.opsudotaccsatkhr.all_uu_v3i8_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsudotaccsatkhr.all_uu_v3i8_out16 +dEQP-VK.spirv_assembly.instruction.compute.opsudotaccsatkhr.all_uu_v3i8_out8 +dEQP-VK.spirv_assembly.instruction.compute.opsudotaccsatkhr.all_us_v3i8_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsudotaccsatkhr.all_us_v3i8_out16 +dEQP-VK.spirv_assembly.instruction.compute.opsudotaccsatkhr.all_us_v3i8_out8 +dEQP-VK.spirv_assembly.instruction.compute.opsudotaccsatkhr.all_su_v3i8_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsudotaccsatkhr.all_su_v3i8_out16 +dEQP-VK.spirv_assembly.instruction.compute.opsudotaccsatkhr.all_su_v3i8_out8 +dEQP-VK.spirv_assembly.instruction.compute.opsudotaccsatkhr.all_ss_v3i8_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsudotaccsatkhr.all_ss_v3i8_out16 +dEQP-VK.spirv_assembly.instruction.compute.opsudotaccsatkhr.all_ss_v3i8_out8 +dEQP-VK.spirv_assembly.instruction.compute.opsudotaccsatkhr.all_uu_v4i8_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsudotaccsatkhr.all_uu_v4i8_out16 +dEQP-VK.spirv_assembly.instruction.compute.opsudotaccsatkhr.all_uu_v4i8_out8 +dEQP-VK.spirv_assembly.instruction.compute.opsudotaccsatkhr.all_us_v4i8_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsudotaccsatkhr.all_us_v4i8_out16 +dEQP-VK.spirv_assembly.instruction.compute.opsudotaccsatkhr.all_us_v4i8_out8 +dEQP-VK.spirv_assembly.instruction.compute.opsudotaccsatkhr.all_su_v4i8_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsudotaccsatkhr.all_su_v4i8_out16 +dEQP-VK.spirv_assembly.instruction.compute.opsudotaccsatkhr.all_su_v4i8_out8 +dEQP-VK.spirv_assembly.instruction.compute.opsudotaccsatkhr.all_ss_v4i8_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsudotaccsatkhr.all_ss_v4i8_out16 +dEQP-VK.spirv_assembly.instruction.compute.opsudotaccsatkhr.all_ss_v4i8_out8 +dEQP-VK.spirv_assembly.instruction.compute.opsudotaccsatkhr.all_packed_ss_v4i8_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsudotaccsatkhr.all_packed_ss_v4i8_out16 +dEQP-VK.spirv_assembly.instruction.compute.opsudotaccsatkhr.all_packed_ss_v4i8_out8 +dEQP-VK.spirv_assembly.instruction.compute.opsudotaccsatkhr.all_packed_su_v4i8_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsudotaccsatkhr.all_packed_su_v4i8_out16 +dEQP-VK.spirv_assembly.instruction.compute.opsudotaccsatkhr.all_packed_su_v4i8_out8 +dEQP-VK.spirv_assembly.instruction.compute.opsudotaccsatkhr.all_packed_us_v4i8_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsudotaccsatkhr.all_packed_us_v4i8_out16 +dEQP-VK.spirv_assembly.instruction.compute.opsudotaccsatkhr.all_packed_us_v4i8_out8 +dEQP-VK.spirv_assembly.instruction.compute.opsudotaccsatkhr.all_packed_uu_v4i8_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsudotaccsatkhr.all_packed_uu_v4i8_out16 +dEQP-VK.spirv_assembly.instruction.compute.opsudotaccsatkhr.all_packed_uu_v4i8_out8 +dEQP-VK.spirv_assembly.instruction.compute.opsudotaccsatkhr.limits_uu_v2i8_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsudotaccsatkhr.limits_uu_v2i8_out16 +dEQP-VK.spirv_assembly.instruction.compute.opsudotaccsatkhr.limits_uu_v2i8_out8 +dEQP-VK.spirv_assembly.instruction.compute.opsudotaccsatkhr.limits_us_v2i8_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsudotaccsatkhr.limits_us_v2i8_out16 +dEQP-VK.spirv_assembly.instruction.compute.opsudotaccsatkhr.limits_us_v2i8_out8 +dEQP-VK.spirv_assembly.instruction.compute.opsudotaccsatkhr.limits_su_v2i8_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsudotaccsatkhr.limits_su_v2i8_out16 +dEQP-VK.spirv_assembly.instruction.compute.opsudotaccsatkhr.limits_su_v2i8_out8 +dEQP-VK.spirv_assembly.instruction.compute.opsudotaccsatkhr.limits_ss_v2i8_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsudotaccsatkhr.limits_ss_v2i8_out16 +dEQP-VK.spirv_assembly.instruction.compute.opsudotaccsatkhr.limits_ss_v2i8_out8 +dEQP-VK.spirv_assembly.instruction.compute.opsudotaccsatkhr.limits_uu_v3i8_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsudotaccsatkhr.limits_uu_v3i8_out16 +dEQP-VK.spirv_assembly.instruction.compute.opsudotaccsatkhr.limits_uu_v3i8_out8 +dEQP-VK.spirv_assembly.instruction.compute.opsudotaccsatkhr.limits_us_v3i8_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsudotaccsatkhr.limits_us_v3i8_out16 +dEQP-VK.spirv_assembly.instruction.compute.opsudotaccsatkhr.limits_us_v3i8_out8 +dEQP-VK.spirv_assembly.instruction.compute.opsudotaccsatkhr.limits_su_v3i8_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsudotaccsatkhr.limits_su_v3i8_out16 +dEQP-VK.spirv_assembly.instruction.compute.opsudotaccsatkhr.limits_su_v3i8_out8 +dEQP-VK.spirv_assembly.instruction.compute.opsudotaccsatkhr.limits_ss_v3i8_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsudotaccsatkhr.limits_ss_v3i8_out16 +dEQP-VK.spirv_assembly.instruction.compute.opsudotaccsatkhr.limits_ss_v3i8_out8 +dEQP-VK.spirv_assembly.instruction.compute.opsudotaccsatkhr.limits_uu_v4i8_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsudotaccsatkhr.limits_uu_v4i8_out16 +dEQP-VK.spirv_assembly.instruction.compute.opsudotaccsatkhr.limits_uu_v4i8_out8 +dEQP-VK.spirv_assembly.instruction.compute.opsudotaccsatkhr.limits_us_v4i8_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsudotaccsatkhr.limits_us_v4i8_out16 +dEQP-VK.spirv_assembly.instruction.compute.opsudotaccsatkhr.limits_us_v4i8_out8 +dEQP-VK.spirv_assembly.instruction.compute.opsudotaccsatkhr.limits_su_v4i8_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsudotaccsatkhr.limits_su_v4i8_out16 +dEQP-VK.spirv_assembly.instruction.compute.opsudotaccsatkhr.limits_su_v4i8_out8 +dEQP-VK.spirv_assembly.instruction.compute.opsudotaccsatkhr.limits_ss_v4i8_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsudotaccsatkhr.limits_ss_v4i8_out16 +dEQP-VK.spirv_assembly.instruction.compute.opsudotaccsatkhr.limits_ss_v4i8_out8 +dEQP-VK.spirv_assembly.instruction.compute.opsudotaccsatkhr.limits_packed_ss_v4i8_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsudotaccsatkhr.limits_packed_ss_v4i8_out16 +dEQP-VK.spirv_assembly.instruction.compute.opsudotaccsatkhr.limits_packed_ss_v4i8_out8 +dEQP-VK.spirv_assembly.instruction.compute.opsudotaccsatkhr.limits_packed_su_v4i8_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsudotaccsatkhr.limits_packed_su_v4i8_out16 +dEQP-VK.spirv_assembly.instruction.compute.opsudotaccsatkhr.limits_packed_su_v4i8_out8 +dEQP-VK.spirv_assembly.instruction.compute.opsudotaccsatkhr.limits_packed_us_v4i8_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsudotaccsatkhr.limits_packed_us_v4i8_out16 +dEQP-VK.spirv_assembly.instruction.compute.opsudotaccsatkhr.limits_packed_us_v4i8_out8 +dEQP-VK.spirv_assembly.instruction.compute.opsudotaccsatkhr.limits_packed_uu_v4i8_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsudotaccsatkhr.limits_packed_uu_v4i8_out16 +dEQP-VK.spirv_assembly.instruction.compute.opsudotaccsatkhr.limits_packed_uu_v4i8_out8 +dEQP-VK.spirv_assembly.instruction.compute.opsudotaccsatkhr.limits-neg_uu_v2i8_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsudotaccsatkhr.limits-neg_uu_v2i8_out16 +dEQP-VK.spirv_assembly.instruction.compute.opsudotaccsatkhr.limits-neg_uu_v2i8_out8 +dEQP-VK.spirv_assembly.instruction.compute.opsudotaccsatkhr.limits-neg_us_v2i8_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsudotaccsatkhr.limits-neg_us_v2i8_out16 +dEQP-VK.spirv_assembly.instruction.compute.opsudotaccsatkhr.limits-neg_us_v2i8_out8 +dEQP-VK.spirv_assembly.instruction.compute.opsudotaccsatkhr.limits-neg_su_v2i8_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsudotaccsatkhr.limits-neg_su_v2i8_out16 +dEQP-VK.spirv_assembly.instruction.compute.opsudotaccsatkhr.limits-neg_su_v2i8_out8 +dEQP-VK.spirv_assembly.instruction.compute.opsudotaccsatkhr.limits-neg_ss_v2i8_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsudotaccsatkhr.limits-neg_ss_v2i8_out16 +dEQP-VK.spirv_assembly.instruction.compute.opsudotaccsatkhr.limits-neg_ss_v2i8_out8 +dEQP-VK.spirv_assembly.instruction.compute.opsudotaccsatkhr.limits-neg_uu_v3i8_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsudotaccsatkhr.limits-neg_uu_v3i8_out16 +dEQP-VK.spirv_assembly.instruction.compute.opsudotaccsatkhr.limits-neg_uu_v3i8_out8 +dEQP-VK.spirv_assembly.instruction.compute.opsudotaccsatkhr.limits-neg_us_v3i8_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsudotaccsatkhr.limits-neg_us_v3i8_out16 +dEQP-VK.spirv_assembly.instruction.compute.opsudotaccsatkhr.limits-neg_us_v3i8_out8 +dEQP-VK.spirv_assembly.instruction.compute.opsudotaccsatkhr.limits-neg_su_v3i8_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsudotaccsatkhr.limits-neg_su_v3i8_out16 +dEQP-VK.spirv_assembly.instruction.compute.opsudotaccsatkhr.limits-neg_su_v3i8_out8 +dEQP-VK.spirv_assembly.instruction.compute.opsudotaccsatkhr.limits-neg_ss_v3i8_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsudotaccsatkhr.limits-neg_ss_v3i8_out16 +dEQP-VK.spirv_assembly.instruction.compute.opsudotaccsatkhr.limits-neg_ss_v3i8_out8 +dEQP-VK.spirv_assembly.instruction.compute.opsudotaccsatkhr.limits-neg_uu_v4i8_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsudotaccsatkhr.limits-neg_uu_v4i8_out16 +dEQP-VK.spirv_assembly.instruction.compute.opsudotaccsatkhr.limits-neg_uu_v4i8_out8 +dEQP-VK.spirv_assembly.instruction.compute.opsudotaccsatkhr.limits-neg_us_v4i8_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsudotaccsatkhr.limits-neg_us_v4i8_out16 +dEQP-VK.spirv_assembly.instruction.compute.opsudotaccsatkhr.limits-neg_us_v4i8_out8 +dEQP-VK.spirv_assembly.instruction.compute.opsudotaccsatkhr.limits-neg_su_v4i8_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsudotaccsatkhr.limits-neg_su_v4i8_out16 +dEQP-VK.spirv_assembly.instruction.compute.opsudotaccsatkhr.limits-neg_su_v4i8_out8 +dEQP-VK.spirv_assembly.instruction.compute.opsudotaccsatkhr.limits-neg_ss_v4i8_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsudotaccsatkhr.limits-neg_ss_v4i8_out16 +dEQP-VK.spirv_assembly.instruction.compute.opsudotaccsatkhr.limits-neg_ss_v4i8_out8 +dEQP-VK.spirv_assembly.instruction.compute.opsudotaccsatkhr.limits-neg_packed_ss_v4i8_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsudotaccsatkhr.limits-neg_packed_ss_v4i8_out16 +dEQP-VK.spirv_assembly.instruction.compute.opsudotaccsatkhr.limits-neg_packed_ss_v4i8_out8 +dEQP-VK.spirv_assembly.instruction.compute.opsudotaccsatkhr.limits-neg_packed_su_v4i8_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsudotaccsatkhr.limits-neg_packed_su_v4i8_out16 +dEQP-VK.spirv_assembly.instruction.compute.opsudotaccsatkhr.limits-neg_packed_su_v4i8_out8 +dEQP-VK.spirv_assembly.instruction.compute.opsudotaccsatkhr.limits-neg_packed_us_v4i8_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsudotaccsatkhr.limits-neg_packed_us_v4i8_out16 +dEQP-VK.spirv_assembly.instruction.compute.opsudotaccsatkhr.limits-neg_packed_us_v4i8_out8 +dEQP-VK.spirv_assembly.instruction.compute.opsudotaccsatkhr.limits-neg_packed_uu_v4i8_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsudotaccsatkhr.limits-neg_packed_uu_v4i8_out16 +dEQP-VK.spirv_assembly.instruction.compute.opsudotaccsatkhr.limits-neg_packed_uu_v4i8_out8 +dEQP-VK.spirv_assembly.instruction.compute.opsudotaccsatkhr.small_uu_v2i8_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsudotaccsatkhr.small_uu_v2i8_out16 +dEQP-VK.spirv_assembly.instruction.compute.opsudotaccsatkhr.small_uu_v2i8_out8 +dEQP-VK.spirv_assembly.instruction.compute.opsudotaccsatkhr.small_us_v2i8_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsudotaccsatkhr.small_us_v2i8_out16 +dEQP-VK.spirv_assembly.instruction.compute.opsudotaccsatkhr.small_us_v2i8_out8 +dEQP-VK.spirv_assembly.instruction.compute.opsudotaccsatkhr.small_su_v2i8_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsudotaccsatkhr.small_su_v2i8_out16 +dEQP-VK.spirv_assembly.instruction.compute.opsudotaccsatkhr.small_su_v2i8_out8 +dEQP-VK.spirv_assembly.instruction.compute.opsudotaccsatkhr.small_ss_v2i8_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsudotaccsatkhr.small_ss_v2i8_out16 +dEQP-VK.spirv_assembly.instruction.compute.opsudotaccsatkhr.small_ss_v2i8_out8 +dEQP-VK.spirv_assembly.instruction.compute.opsudotaccsatkhr.small_uu_v3i8_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsudotaccsatkhr.small_uu_v3i8_out16 +dEQP-VK.spirv_assembly.instruction.compute.opsudotaccsatkhr.small_uu_v3i8_out8 +dEQP-VK.spirv_assembly.instruction.compute.opsudotaccsatkhr.small_us_v3i8_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsudotaccsatkhr.small_us_v3i8_out16 +dEQP-VK.spirv_assembly.instruction.compute.opsudotaccsatkhr.small_us_v3i8_out8 +dEQP-VK.spirv_assembly.instruction.compute.opsudotaccsatkhr.small_su_v3i8_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsudotaccsatkhr.small_su_v3i8_out16 +dEQP-VK.spirv_assembly.instruction.compute.opsudotaccsatkhr.small_su_v3i8_out8 +dEQP-VK.spirv_assembly.instruction.compute.opsudotaccsatkhr.small_ss_v3i8_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsudotaccsatkhr.small_ss_v3i8_out16 +dEQP-VK.spirv_assembly.instruction.compute.opsudotaccsatkhr.small_ss_v3i8_out8 +dEQP-VK.spirv_assembly.instruction.compute.opsudotaccsatkhr.small_uu_v4i8_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsudotaccsatkhr.small_uu_v4i8_out16 +dEQP-VK.spirv_assembly.instruction.compute.opsudotaccsatkhr.small_uu_v4i8_out8 +dEQP-VK.spirv_assembly.instruction.compute.opsudotaccsatkhr.small_us_v4i8_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsudotaccsatkhr.small_us_v4i8_out16 +dEQP-VK.spirv_assembly.instruction.compute.opsudotaccsatkhr.small_us_v4i8_out8 +dEQP-VK.spirv_assembly.instruction.compute.opsudotaccsatkhr.small_su_v4i8_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsudotaccsatkhr.small_su_v4i8_out16 +dEQP-VK.spirv_assembly.instruction.compute.opsudotaccsatkhr.small_su_v4i8_out8 +dEQP-VK.spirv_assembly.instruction.compute.opsudotaccsatkhr.small_ss_v4i8_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsudotaccsatkhr.small_ss_v4i8_out16 +dEQP-VK.spirv_assembly.instruction.compute.opsudotaccsatkhr.small_ss_v4i8_out8 +dEQP-VK.spirv_assembly.instruction.compute.opsudotaccsatkhr.small_packed_ss_v4i8_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsudotaccsatkhr.small_packed_ss_v4i8_out16 +dEQP-VK.spirv_assembly.instruction.compute.opsudotaccsatkhr.small_packed_ss_v4i8_out8 +dEQP-VK.spirv_assembly.instruction.compute.opsudotaccsatkhr.small_packed_su_v4i8_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsudotaccsatkhr.small_packed_su_v4i8_out16 +dEQP-VK.spirv_assembly.instruction.compute.opsudotaccsatkhr.small_packed_su_v4i8_out8 +dEQP-VK.spirv_assembly.instruction.compute.opsudotaccsatkhr.small_packed_us_v4i8_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsudotaccsatkhr.small_packed_us_v4i8_out16 +dEQP-VK.spirv_assembly.instruction.compute.opsudotaccsatkhr.small_packed_us_v4i8_out8 +dEQP-VK.spirv_assembly.instruction.compute.opsudotaccsatkhr.small_packed_uu_v4i8_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsudotaccsatkhr.small_packed_uu_v4i8_out16 +dEQP-VK.spirv_assembly.instruction.compute.opsudotaccsatkhr.small_packed_uu_v4i8_out8 +dEQP-VK.spirv_assembly.instruction.compute.opsudotaccsatkhr.all_uu_v2i16_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsudotaccsatkhr.all_uu_v2i16_out16 +dEQP-VK.spirv_assembly.instruction.compute.opsudotaccsatkhr.all_us_v2i16_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsudotaccsatkhr.all_us_v2i16_out16 +dEQP-VK.spirv_assembly.instruction.compute.opsudotaccsatkhr.all_su_v2i16_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsudotaccsatkhr.all_su_v2i16_out16 +dEQP-VK.spirv_assembly.instruction.compute.opsudotaccsatkhr.all_ss_v2i16_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsudotaccsatkhr.all_ss_v2i16_out16 +dEQP-VK.spirv_assembly.instruction.compute.opsudotaccsatkhr.all_uu_v3i16_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsudotaccsatkhr.all_uu_v3i16_out16 +dEQP-VK.spirv_assembly.instruction.compute.opsudotaccsatkhr.all_us_v3i16_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsudotaccsatkhr.all_us_v3i16_out16 +dEQP-VK.spirv_assembly.instruction.compute.opsudotaccsatkhr.all_su_v3i16_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsudotaccsatkhr.all_su_v3i16_out16 +dEQP-VK.spirv_assembly.instruction.compute.opsudotaccsatkhr.all_ss_v3i16_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsudotaccsatkhr.all_ss_v3i16_out16 +dEQP-VK.spirv_assembly.instruction.compute.opsudotaccsatkhr.all_uu_v4i16_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsudotaccsatkhr.all_uu_v4i16_out16 +dEQP-VK.spirv_assembly.instruction.compute.opsudotaccsatkhr.all_us_v4i16_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsudotaccsatkhr.all_us_v4i16_out16 +dEQP-VK.spirv_assembly.instruction.compute.opsudotaccsatkhr.all_su_v4i16_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsudotaccsatkhr.all_su_v4i16_out16 +dEQP-VK.spirv_assembly.instruction.compute.opsudotaccsatkhr.all_ss_v4i16_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsudotaccsatkhr.all_ss_v4i16_out16 +dEQP-VK.spirv_assembly.instruction.compute.opsudotaccsatkhr.limits_uu_v2i16_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsudotaccsatkhr.limits_uu_v2i16_out16 +dEQP-VK.spirv_assembly.instruction.compute.opsudotaccsatkhr.limits_us_v2i16_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsudotaccsatkhr.limits_us_v2i16_out16 +dEQP-VK.spirv_assembly.instruction.compute.opsudotaccsatkhr.limits_su_v2i16_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsudotaccsatkhr.limits_su_v2i16_out16 +dEQP-VK.spirv_assembly.instruction.compute.opsudotaccsatkhr.limits_ss_v2i16_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsudotaccsatkhr.limits_ss_v2i16_out16 +dEQP-VK.spirv_assembly.instruction.compute.opsudotaccsatkhr.limits_uu_v3i16_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsudotaccsatkhr.limits_uu_v3i16_out16 +dEQP-VK.spirv_assembly.instruction.compute.opsudotaccsatkhr.limits_us_v3i16_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsudotaccsatkhr.limits_us_v3i16_out16 +dEQP-VK.spirv_assembly.instruction.compute.opsudotaccsatkhr.limits_su_v3i16_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsudotaccsatkhr.limits_su_v3i16_out16 +dEQP-VK.spirv_assembly.instruction.compute.opsudotaccsatkhr.limits_ss_v3i16_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsudotaccsatkhr.limits_ss_v3i16_out16 +dEQP-VK.spirv_assembly.instruction.compute.opsudotaccsatkhr.limits_uu_v4i16_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsudotaccsatkhr.limits_uu_v4i16_out16 +dEQP-VK.spirv_assembly.instruction.compute.opsudotaccsatkhr.limits_us_v4i16_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsudotaccsatkhr.limits_us_v4i16_out16 +dEQP-VK.spirv_assembly.instruction.compute.opsudotaccsatkhr.limits_su_v4i16_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsudotaccsatkhr.limits_su_v4i16_out16 +dEQP-VK.spirv_assembly.instruction.compute.opsudotaccsatkhr.limits_ss_v4i16_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsudotaccsatkhr.limits_ss_v4i16_out16 +dEQP-VK.spirv_assembly.instruction.compute.opsudotaccsatkhr.limits-neg_uu_v2i16_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsudotaccsatkhr.limits-neg_uu_v2i16_out16 +dEQP-VK.spirv_assembly.instruction.compute.opsudotaccsatkhr.limits-neg_us_v2i16_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsudotaccsatkhr.limits-neg_us_v2i16_out16 +dEQP-VK.spirv_assembly.instruction.compute.opsudotaccsatkhr.limits-neg_su_v2i16_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsudotaccsatkhr.limits-neg_su_v2i16_out16 +dEQP-VK.spirv_assembly.instruction.compute.opsudotaccsatkhr.limits-neg_ss_v2i16_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsudotaccsatkhr.limits-neg_ss_v2i16_out16 +dEQP-VK.spirv_assembly.instruction.compute.opsudotaccsatkhr.limits-neg_uu_v3i16_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsudotaccsatkhr.limits-neg_uu_v3i16_out16 +dEQP-VK.spirv_assembly.instruction.compute.opsudotaccsatkhr.limits-neg_us_v3i16_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsudotaccsatkhr.limits-neg_us_v3i16_out16 +dEQP-VK.spirv_assembly.instruction.compute.opsudotaccsatkhr.limits-neg_su_v3i16_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsudotaccsatkhr.limits-neg_su_v3i16_out16 +dEQP-VK.spirv_assembly.instruction.compute.opsudotaccsatkhr.limits-neg_ss_v3i16_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsudotaccsatkhr.limits-neg_ss_v3i16_out16 +dEQP-VK.spirv_assembly.instruction.compute.opsudotaccsatkhr.limits-neg_uu_v4i16_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsudotaccsatkhr.limits-neg_uu_v4i16_out16 +dEQP-VK.spirv_assembly.instruction.compute.opsudotaccsatkhr.limits-neg_us_v4i16_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsudotaccsatkhr.limits-neg_us_v4i16_out16 +dEQP-VK.spirv_assembly.instruction.compute.opsudotaccsatkhr.limits-neg_su_v4i16_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsudotaccsatkhr.limits-neg_su_v4i16_out16 +dEQP-VK.spirv_assembly.instruction.compute.opsudotaccsatkhr.limits-neg_ss_v4i16_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsudotaccsatkhr.limits-neg_ss_v4i16_out16 +dEQP-VK.spirv_assembly.instruction.compute.opsudotaccsatkhr.all_uu_v2i32_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsudotaccsatkhr.all_us_v2i32_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsudotaccsatkhr.all_su_v2i32_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsudotaccsatkhr.all_ss_v2i32_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsudotaccsatkhr.all_uu_v3i32_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsudotaccsatkhr.all_us_v3i32_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsudotaccsatkhr.all_su_v3i32_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsudotaccsatkhr.all_ss_v3i32_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsudotaccsatkhr.all_uu_v4i32_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsudotaccsatkhr.all_us_v4i32_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsudotaccsatkhr.all_su_v4i32_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsudotaccsatkhr.all_ss_v4i32_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsudotaccsatkhr.limits_uu_v2i32_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsudotaccsatkhr.limits_us_v2i32_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsudotaccsatkhr.limits_su_v2i32_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsudotaccsatkhr.limits_ss_v2i32_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsudotaccsatkhr.limits_uu_v3i32_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsudotaccsatkhr.limits_us_v3i32_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsudotaccsatkhr.limits_su_v3i32_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsudotaccsatkhr.limits_ss_v3i32_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsudotaccsatkhr.limits_uu_v4i32_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsudotaccsatkhr.limits_us_v4i32_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsudotaccsatkhr.limits_su_v4i32_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsudotaccsatkhr.limits_ss_v4i32_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsudotaccsatkhr.limits-neg_uu_v2i32_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsudotaccsatkhr.limits-neg_us_v2i32_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsudotaccsatkhr.limits-neg_su_v2i32_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsudotaccsatkhr.limits-neg_ss_v2i32_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsudotaccsatkhr.limits-neg_uu_v3i32_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsudotaccsatkhr.limits-neg_us_v3i32_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsudotaccsatkhr.limits-neg_su_v3i32_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsudotaccsatkhr.limits-neg_ss_v3i32_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsudotaccsatkhr.limits-neg_uu_v4i32_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsudotaccsatkhr.limits-neg_us_v4i32_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsudotaccsatkhr.limits-neg_su_v4i32_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsudotaccsatkhr.limits-neg_ss_v4i32_out32 dEQP-VK.spirv_assembly.instruction.compute.fconvert.float16_to_float64_no_storage dEQP-VK.spirv_assembly.instruction.compute.fconvert.float64_to_float16_no_storage dEQP-VK.spirv_assembly.instruction.compute.convertstof.int32_to_float16_p32768 diff --git a/android/cts/master/vk-master/spirv-assembly.txt b/android/cts/master/vk-master/spirv-assembly.txt index fe25f29..9e093d6 100644 --- a/android/cts/master/vk-master/spirv-assembly.txt +++ b/android/cts/master/vk-master/spirv-assembly.txt @@ -236,6 +236,1218 @@ dEQP-VK.spirv_assembly.instruction.compute.opsmod.positive dEQP-VK.spirv_assembly.instruction.compute.opsmod.all dEQP-VK.spirv_assembly.instruction.compute.opsmod64.positive dEQP-VK.spirv_assembly.instruction.compute.opsmod64.all +dEQP-VK.spirv_assembly.instruction.compute.opsdotkhr.all_uu_v2i8_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsdotkhr.all_uu_v2i8_out16 +dEQP-VK.spirv_assembly.instruction.compute.opsdotkhr.all_uu_v2i8_out8 +dEQP-VK.spirv_assembly.instruction.compute.opsdotkhr.all_us_v2i8_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsdotkhr.all_us_v2i8_out16 +dEQP-VK.spirv_assembly.instruction.compute.opsdotkhr.all_us_v2i8_out8 +dEQP-VK.spirv_assembly.instruction.compute.opsdotkhr.all_su_v2i8_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsdotkhr.all_su_v2i8_out16 +dEQP-VK.spirv_assembly.instruction.compute.opsdotkhr.all_su_v2i8_out8 +dEQP-VK.spirv_assembly.instruction.compute.opsdotkhr.all_ss_v2i8_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsdotkhr.all_ss_v2i8_out16 +dEQP-VK.spirv_assembly.instruction.compute.opsdotkhr.all_ss_v2i8_out8 +dEQP-VK.spirv_assembly.instruction.compute.opsdotkhr.all_uu_v3i8_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsdotkhr.all_uu_v3i8_out16 +dEQP-VK.spirv_assembly.instruction.compute.opsdotkhr.all_uu_v3i8_out8 +dEQP-VK.spirv_assembly.instruction.compute.opsdotkhr.all_us_v3i8_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsdotkhr.all_us_v3i8_out16 +dEQP-VK.spirv_assembly.instruction.compute.opsdotkhr.all_us_v3i8_out8 +dEQP-VK.spirv_assembly.instruction.compute.opsdotkhr.all_su_v3i8_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsdotkhr.all_su_v3i8_out16 +dEQP-VK.spirv_assembly.instruction.compute.opsdotkhr.all_su_v3i8_out8 +dEQP-VK.spirv_assembly.instruction.compute.opsdotkhr.all_ss_v3i8_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsdotkhr.all_ss_v3i8_out16 +dEQP-VK.spirv_assembly.instruction.compute.opsdotkhr.all_ss_v3i8_out8 +dEQP-VK.spirv_assembly.instruction.compute.opsdotkhr.all_uu_v4i8_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsdotkhr.all_uu_v4i8_out16 +dEQP-VK.spirv_assembly.instruction.compute.opsdotkhr.all_uu_v4i8_out8 +dEQP-VK.spirv_assembly.instruction.compute.opsdotkhr.all_us_v4i8_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsdotkhr.all_us_v4i8_out16 +dEQP-VK.spirv_assembly.instruction.compute.opsdotkhr.all_us_v4i8_out8 +dEQP-VK.spirv_assembly.instruction.compute.opsdotkhr.all_su_v4i8_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsdotkhr.all_su_v4i8_out16 +dEQP-VK.spirv_assembly.instruction.compute.opsdotkhr.all_su_v4i8_out8 +dEQP-VK.spirv_assembly.instruction.compute.opsdotkhr.all_ss_v4i8_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsdotkhr.all_ss_v4i8_out16 +dEQP-VK.spirv_assembly.instruction.compute.opsdotkhr.all_ss_v4i8_out8 +dEQP-VK.spirv_assembly.instruction.compute.opsdotkhr.all_packed_ss_v4i8_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsdotkhr.all_packed_ss_v4i8_out16 +dEQP-VK.spirv_assembly.instruction.compute.opsdotkhr.all_packed_ss_v4i8_out8 +dEQP-VK.spirv_assembly.instruction.compute.opsdotkhr.all_packed_su_v4i8_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsdotkhr.all_packed_su_v4i8_out16 +dEQP-VK.spirv_assembly.instruction.compute.opsdotkhr.all_packed_su_v4i8_out8 +dEQP-VK.spirv_assembly.instruction.compute.opsdotkhr.all_packed_us_v4i8_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsdotkhr.all_packed_us_v4i8_out16 +dEQP-VK.spirv_assembly.instruction.compute.opsdotkhr.all_packed_us_v4i8_out8 +dEQP-VK.spirv_assembly.instruction.compute.opsdotkhr.all_packed_uu_v4i8_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsdotkhr.all_packed_uu_v4i8_out16 +dEQP-VK.spirv_assembly.instruction.compute.opsdotkhr.all_packed_uu_v4i8_out8 +dEQP-VK.spirv_assembly.instruction.compute.opsdotkhr.small_uu_v2i8_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsdotkhr.small_uu_v2i8_out16 +dEQP-VK.spirv_assembly.instruction.compute.opsdotkhr.small_uu_v2i8_out8 +dEQP-VK.spirv_assembly.instruction.compute.opsdotkhr.small_us_v2i8_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsdotkhr.small_us_v2i8_out16 +dEQP-VK.spirv_assembly.instruction.compute.opsdotkhr.small_us_v2i8_out8 +dEQP-VK.spirv_assembly.instruction.compute.opsdotkhr.small_su_v2i8_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsdotkhr.small_su_v2i8_out16 +dEQP-VK.spirv_assembly.instruction.compute.opsdotkhr.small_su_v2i8_out8 +dEQP-VK.spirv_assembly.instruction.compute.opsdotkhr.small_ss_v2i8_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsdotkhr.small_ss_v2i8_out16 +dEQP-VK.spirv_assembly.instruction.compute.opsdotkhr.small_ss_v2i8_out8 +dEQP-VK.spirv_assembly.instruction.compute.opsdotkhr.small_uu_v3i8_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsdotkhr.small_uu_v3i8_out16 +dEQP-VK.spirv_assembly.instruction.compute.opsdotkhr.small_uu_v3i8_out8 +dEQP-VK.spirv_assembly.instruction.compute.opsdotkhr.small_us_v3i8_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsdotkhr.small_us_v3i8_out16 +dEQP-VK.spirv_assembly.instruction.compute.opsdotkhr.small_us_v3i8_out8 +dEQP-VK.spirv_assembly.instruction.compute.opsdotkhr.small_su_v3i8_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsdotkhr.small_su_v3i8_out16 +dEQP-VK.spirv_assembly.instruction.compute.opsdotkhr.small_su_v3i8_out8 +dEQP-VK.spirv_assembly.instruction.compute.opsdotkhr.small_ss_v3i8_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsdotkhr.small_ss_v3i8_out16 +dEQP-VK.spirv_assembly.instruction.compute.opsdotkhr.small_ss_v3i8_out8 +dEQP-VK.spirv_assembly.instruction.compute.opsdotkhr.small_uu_v4i8_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsdotkhr.small_uu_v4i8_out16 +dEQP-VK.spirv_assembly.instruction.compute.opsdotkhr.small_uu_v4i8_out8 +dEQP-VK.spirv_assembly.instruction.compute.opsdotkhr.small_us_v4i8_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsdotkhr.small_us_v4i8_out16 +dEQP-VK.spirv_assembly.instruction.compute.opsdotkhr.small_us_v4i8_out8 +dEQP-VK.spirv_assembly.instruction.compute.opsdotkhr.small_su_v4i8_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsdotkhr.small_su_v4i8_out16 +dEQP-VK.spirv_assembly.instruction.compute.opsdotkhr.small_su_v4i8_out8 +dEQP-VK.spirv_assembly.instruction.compute.opsdotkhr.small_ss_v4i8_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsdotkhr.small_ss_v4i8_out16 +dEQP-VK.spirv_assembly.instruction.compute.opsdotkhr.small_ss_v4i8_out8 +dEQP-VK.spirv_assembly.instruction.compute.opsdotkhr.small_packed_ss_v4i8_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsdotkhr.small_packed_ss_v4i8_out16 +dEQP-VK.spirv_assembly.instruction.compute.opsdotkhr.small_packed_ss_v4i8_out8 +dEQP-VK.spirv_assembly.instruction.compute.opsdotkhr.small_packed_su_v4i8_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsdotkhr.small_packed_su_v4i8_out16 +dEQP-VK.spirv_assembly.instruction.compute.opsdotkhr.small_packed_su_v4i8_out8 +dEQP-VK.spirv_assembly.instruction.compute.opsdotkhr.small_packed_us_v4i8_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsdotkhr.small_packed_us_v4i8_out16 +dEQP-VK.spirv_assembly.instruction.compute.opsdotkhr.small_packed_us_v4i8_out8 +dEQP-VK.spirv_assembly.instruction.compute.opsdotkhr.small_packed_uu_v4i8_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsdotkhr.small_packed_uu_v4i8_out16 +dEQP-VK.spirv_assembly.instruction.compute.opsdotkhr.small_packed_uu_v4i8_out8 +dEQP-VK.spirv_assembly.instruction.compute.opsdotkhr.all_uu_v2i16_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsdotkhr.all_uu_v2i16_out16 +dEQP-VK.spirv_assembly.instruction.compute.opsdotkhr.all_us_v2i16_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsdotkhr.all_us_v2i16_out16 +dEQP-VK.spirv_assembly.instruction.compute.opsdotkhr.all_su_v2i16_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsdotkhr.all_su_v2i16_out16 +dEQP-VK.spirv_assembly.instruction.compute.opsdotkhr.all_ss_v2i16_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsdotkhr.all_ss_v2i16_out16 +dEQP-VK.spirv_assembly.instruction.compute.opsdotkhr.all_uu_v3i16_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsdotkhr.all_uu_v3i16_out16 +dEQP-VK.spirv_assembly.instruction.compute.opsdotkhr.all_us_v3i16_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsdotkhr.all_us_v3i16_out16 +dEQP-VK.spirv_assembly.instruction.compute.opsdotkhr.all_su_v3i16_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsdotkhr.all_su_v3i16_out16 +dEQP-VK.spirv_assembly.instruction.compute.opsdotkhr.all_ss_v3i16_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsdotkhr.all_ss_v3i16_out16 +dEQP-VK.spirv_assembly.instruction.compute.opsdotkhr.all_uu_v4i16_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsdotkhr.all_uu_v4i16_out16 +dEQP-VK.spirv_assembly.instruction.compute.opsdotkhr.all_us_v4i16_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsdotkhr.all_us_v4i16_out16 +dEQP-VK.spirv_assembly.instruction.compute.opsdotkhr.all_su_v4i16_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsdotkhr.all_su_v4i16_out16 +dEQP-VK.spirv_assembly.instruction.compute.opsdotkhr.all_ss_v4i16_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsdotkhr.all_ss_v4i16_out16 +dEQP-VK.spirv_assembly.instruction.compute.opsdotkhr.all_uu_v2i32_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsdotkhr.all_us_v2i32_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsdotkhr.all_su_v2i32_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsdotkhr.all_ss_v2i32_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsdotkhr.all_uu_v3i32_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsdotkhr.all_us_v3i32_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsdotkhr.all_su_v3i32_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsdotkhr.all_ss_v3i32_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsdotkhr.all_uu_v4i32_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsdotkhr.all_us_v4i32_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsdotkhr.all_su_v4i32_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsdotkhr.all_ss_v4i32_out32 +dEQP-VK.spirv_assembly.instruction.compute.opudotkhr.all_uu_v2i8_out32 +dEQP-VK.spirv_assembly.instruction.compute.opudotkhr.all_uu_v2i8_out16 +dEQP-VK.spirv_assembly.instruction.compute.opudotkhr.all_uu_v2i8_out8 +dEQP-VK.spirv_assembly.instruction.compute.opudotkhr.all_us_v2i8_out32 +dEQP-VK.spirv_assembly.instruction.compute.opudotkhr.all_us_v2i8_out16 +dEQP-VK.spirv_assembly.instruction.compute.opudotkhr.all_us_v2i8_out8 +dEQP-VK.spirv_assembly.instruction.compute.opudotkhr.all_su_v2i8_out32 +dEQP-VK.spirv_assembly.instruction.compute.opudotkhr.all_su_v2i8_out16 +dEQP-VK.spirv_assembly.instruction.compute.opudotkhr.all_su_v2i8_out8 +dEQP-VK.spirv_assembly.instruction.compute.opudotkhr.all_ss_v2i8_out32 +dEQP-VK.spirv_assembly.instruction.compute.opudotkhr.all_ss_v2i8_out16 +dEQP-VK.spirv_assembly.instruction.compute.opudotkhr.all_ss_v2i8_out8 +dEQP-VK.spirv_assembly.instruction.compute.opudotkhr.all_uu_v3i8_out32 +dEQP-VK.spirv_assembly.instruction.compute.opudotkhr.all_uu_v3i8_out16 +dEQP-VK.spirv_assembly.instruction.compute.opudotkhr.all_uu_v3i8_out8 +dEQP-VK.spirv_assembly.instruction.compute.opudotkhr.all_us_v3i8_out32 +dEQP-VK.spirv_assembly.instruction.compute.opudotkhr.all_us_v3i8_out16 +dEQP-VK.spirv_assembly.instruction.compute.opudotkhr.all_us_v3i8_out8 +dEQP-VK.spirv_assembly.instruction.compute.opudotkhr.all_su_v3i8_out32 +dEQP-VK.spirv_assembly.instruction.compute.opudotkhr.all_su_v3i8_out16 +dEQP-VK.spirv_assembly.instruction.compute.opudotkhr.all_su_v3i8_out8 +dEQP-VK.spirv_assembly.instruction.compute.opudotkhr.all_ss_v3i8_out32 +dEQP-VK.spirv_assembly.instruction.compute.opudotkhr.all_ss_v3i8_out16 +dEQP-VK.spirv_assembly.instruction.compute.opudotkhr.all_ss_v3i8_out8 +dEQP-VK.spirv_assembly.instruction.compute.opudotkhr.all_uu_v4i8_out32 +dEQP-VK.spirv_assembly.instruction.compute.opudotkhr.all_uu_v4i8_out16 +dEQP-VK.spirv_assembly.instruction.compute.opudotkhr.all_uu_v4i8_out8 +dEQP-VK.spirv_assembly.instruction.compute.opudotkhr.all_us_v4i8_out32 +dEQP-VK.spirv_assembly.instruction.compute.opudotkhr.all_us_v4i8_out16 +dEQP-VK.spirv_assembly.instruction.compute.opudotkhr.all_us_v4i8_out8 +dEQP-VK.spirv_assembly.instruction.compute.opudotkhr.all_su_v4i8_out32 +dEQP-VK.spirv_assembly.instruction.compute.opudotkhr.all_su_v4i8_out16 +dEQP-VK.spirv_assembly.instruction.compute.opudotkhr.all_su_v4i8_out8 +dEQP-VK.spirv_assembly.instruction.compute.opudotkhr.all_ss_v4i8_out32 +dEQP-VK.spirv_assembly.instruction.compute.opudotkhr.all_ss_v4i8_out16 +dEQP-VK.spirv_assembly.instruction.compute.opudotkhr.all_ss_v4i8_out8 +dEQP-VK.spirv_assembly.instruction.compute.opudotkhr.all_packed_ss_v4i8_out32 +dEQP-VK.spirv_assembly.instruction.compute.opudotkhr.all_packed_ss_v4i8_out16 +dEQP-VK.spirv_assembly.instruction.compute.opudotkhr.all_packed_ss_v4i8_out8 +dEQP-VK.spirv_assembly.instruction.compute.opudotkhr.all_packed_su_v4i8_out32 +dEQP-VK.spirv_assembly.instruction.compute.opudotkhr.all_packed_su_v4i8_out16 +dEQP-VK.spirv_assembly.instruction.compute.opudotkhr.all_packed_su_v4i8_out8 +dEQP-VK.spirv_assembly.instruction.compute.opudotkhr.all_packed_us_v4i8_out32 +dEQP-VK.spirv_assembly.instruction.compute.opudotkhr.all_packed_us_v4i8_out16 +dEQP-VK.spirv_assembly.instruction.compute.opudotkhr.all_packed_us_v4i8_out8 +dEQP-VK.spirv_assembly.instruction.compute.opudotkhr.all_packed_uu_v4i8_out32 +dEQP-VK.spirv_assembly.instruction.compute.opudotkhr.all_packed_uu_v4i8_out16 +dEQP-VK.spirv_assembly.instruction.compute.opudotkhr.all_packed_uu_v4i8_out8 +dEQP-VK.spirv_assembly.instruction.compute.opudotkhr.small_uu_v2i8_out32 +dEQP-VK.spirv_assembly.instruction.compute.opudotkhr.small_uu_v2i8_out16 +dEQP-VK.spirv_assembly.instruction.compute.opudotkhr.small_uu_v2i8_out8 +dEQP-VK.spirv_assembly.instruction.compute.opudotkhr.small_us_v2i8_out32 +dEQP-VK.spirv_assembly.instruction.compute.opudotkhr.small_us_v2i8_out16 +dEQP-VK.spirv_assembly.instruction.compute.opudotkhr.small_us_v2i8_out8 +dEQP-VK.spirv_assembly.instruction.compute.opudotkhr.small_su_v2i8_out32 +dEQP-VK.spirv_assembly.instruction.compute.opudotkhr.small_su_v2i8_out16 +dEQP-VK.spirv_assembly.instruction.compute.opudotkhr.small_su_v2i8_out8 +dEQP-VK.spirv_assembly.instruction.compute.opudotkhr.small_ss_v2i8_out32 +dEQP-VK.spirv_assembly.instruction.compute.opudotkhr.small_ss_v2i8_out16 +dEQP-VK.spirv_assembly.instruction.compute.opudotkhr.small_ss_v2i8_out8 +dEQP-VK.spirv_assembly.instruction.compute.opudotkhr.small_uu_v3i8_out32 +dEQP-VK.spirv_assembly.instruction.compute.opudotkhr.small_uu_v3i8_out16 +dEQP-VK.spirv_assembly.instruction.compute.opudotkhr.small_uu_v3i8_out8 +dEQP-VK.spirv_assembly.instruction.compute.opudotkhr.small_us_v3i8_out32 +dEQP-VK.spirv_assembly.instruction.compute.opudotkhr.small_us_v3i8_out16 +dEQP-VK.spirv_assembly.instruction.compute.opudotkhr.small_us_v3i8_out8 +dEQP-VK.spirv_assembly.instruction.compute.opudotkhr.small_su_v3i8_out32 +dEQP-VK.spirv_assembly.instruction.compute.opudotkhr.small_su_v3i8_out16 +dEQP-VK.spirv_assembly.instruction.compute.opudotkhr.small_su_v3i8_out8 +dEQP-VK.spirv_assembly.instruction.compute.opudotkhr.small_ss_v3i8_out32 +dEQP-VK.spirv_assembly.instruction.compute.opudotkhr.small_ss_v3i8_out16 +dEQP-VK.spirv_assembly.instruction.compute.opudotkhr.small_ss_v3i8_out8 +dEQP-VK.spirv_assembly.instruction.compute.opudotkhr.small_uu_v4i8_out32 +dEQP-VK.spirv_assembly.instruction.compute.opudotkhr.small_uu_v4i8_out16 +dEQP-VK.spirv_assembly.instruction.compute.opudotkhr.small_uu_v4i8_out8 +dEQP-VK.spirv_assembly.instruction.compute.opudotkhr.small_us_v4i8_out32 +dEQP-VK.spirv_assembly.instruction.compute.opudotkhr.small_us_v4i8_out16 +dEQP-VK.spirv_assembly.instruction.compute.opudotkhr.small_us_v4i8_out8 +dEQP-VK.spirv_assembly.instruction.compute.opudotkhr.small_su_v4i8_out32 +dEQP-VK.spirv_assembly.instruction.compute.opudotkhr.small_su_v4i8_out16 +dEQP-VK.spirv_assembly.instruction.compute.opudotkhr.small_su_v4i8_out8 +dEQP-VK.spirv_assembly.instruction.compute.opudotkhr.small_ss_v4i8_out32 +dEQP-VK.spirv_assembly.instruction.compute.opudotkhr.small_ss_v4i8_out16 +dEQP-VK.spirv_assembly.instruction.compute.opudotkhr.small_ss_v4i8_out8 +dEQP-VK.spirv_assembly.instruction.compute.opudotkhr.small_packed_ss_v4i8_out32 +dEQP-VK.spirv_assembly.instruction.compute.opudotkhr.small_packed_ss_v4i8_out16 +dEQP-VK.spirv_assembly.instruction.compute.opudotkhr.small_packed_ss_v4i8_out8 +dEQP-VK.spirv_assembly.instruction.compute.opudotkhr.small_packed_su_v4i8_out32 +dEQP-VK.spirv_assembly.instruction.compute.opudotkhr.small_packed_su_v4i8_out16 +dEQP-VK.spirv_assembly.instruction.compute.opudotkhr.small_packed_su_v4i8_out8 +dEQP-VK.spirv_assembly.instruction.compute.opudotkhr.small_packed_us_v4i8_out32 +dEQP-VK.spirv_assembly.instruction.compute.opudotkhr.small_packed_us_v4i8_out16 +dEQP-VK.spirv_assembly.instruction.compute.opudotkhr.small_packed_us_v4i8_out8 +dEQP-VK.spirv_assembly.instruction.compute.opudotkhr.small_packed_uu_v4i8_out32 +dEQP-VK.spirv_assembly.instruction.compute.opudotkhr.small_packed_uu_v4i8_out16 +dEQP-VK.spirv_assembly.instruction.compute.opudotkhr.small_packed_uu_v4i8_out8 +dEQP-VK.spirv_assembly.instruction.compute.opudotkhr.all_uu_v2i16_out32 +dEQP-VK.spirv_assembly.instruction.compute.opudotkhr.all_uu_v2i16_out16 +dEQP-VK.spirv_assembly.instruction.compute.opudotkhr.all_us_v2i16_out32 +dEQP-VK.spirv_assembly.instruction.compute.opudotkhr.all_us_v2i16_out16 +dEQP-VK.spirv_assembly.instruction.compute.opudotkhr.all_su_v2i16_out32 +dEQP-VK.spirv_assembly.instruction.compute.opudotkhr.all_su_v2i16_out16 +dEQP-VK.spirv_assembly.instruction.compute.opudotkhr.all_ss_v2i16_out32 +dEQP-VK.spirv_assembly.instruction.compute.opudotkhr.all_ss_v2i16_out16 +dEQP-VK.spirv_assembly.instruction.compute.opudotkhr.all_uu_v3i16_out32 +dEQP-VK.spirv_assembly.instruction.compute.opudotkhr.all_uu_v3i16_out16 +dEQP-VK.spirv_assembly.instruction.compute.opudotkhr.all_us_v3i16_out32 +dEQP-VK.spirv_assembly.instruction.compute.opudotkhr.all_us_v3i16_out16 +dEQP-VK.spirv_assembly.instruction.compute.opudotkhr.all_su_v3i16_out32 +dEQP-VK.spirv_assembly.instruction.compute.opudotkhr.all_su_v3i16_out16 +dEQP-VK.spirv_assembly.instruction.compute.opudotkhr.all_ss_v3i16_out32 +dEQP-VK.spirv_assembly.instruction.compute.opudotkhr.all_ss_v3i16_out16 +dEQP-VK.spirv_assembly.instruction.compute.opudotkhr.all_uu_v4i16_out32 +dEQP-VK.spirv_assembly.instruction.compute.opudotkhr.all_uu_v4i16_out16 +dEQP-VK.spirv_assembly.instruction.compute.opudotkhr.all_us_v4i16_out32 +dEQP-VK.spirv_assembly.instruction.compute.opudotkhr.all_us_v4i16_out16 +dEQP-VK.spirv_assembly.instruction.compute.opudotkhr.all_su_v4i16_out32 +dEQP-VK.spirv_assembly.instruction.compute.opudotkhr.all_su_v4i16_out16 +dEQP-VK.spirv_assembly.instruction.compute.opudotkhr.all_ss_v4i16_out32 +dEQP-VK.spirv_assembly.instruction.compute.opudotkhr.all_ss_v4i16_out16 +dEQP-VK.spirv_assembly.instruction.compute.opudotkhr.all_uu_v2i32_out32 +dEQP-VK.spirv_assembly.instruction.compute.opudotkhr.all_us_v2i32_out32 +dEQP-VK.spirv_assembly.instruction.compute.opudotkhr.all_su_v2i32_out32 +dEQP-VK.spirv_assembly.instruction.compute.opudotkhr.all_ss_v2i32_out32 +dEQP-VK.spirv_assembly.instruction.compute.opudotkhr.all_uu_v3i32_out32 +dEQP-VK.spirv_assembly.instruction.compute.opudotkhr.all_us_v3i32_out32 +dEQP-VK.spirv_assembly.instruction.compute.opudotkhr.all_su_v3i32_out32 +dEQP-VK.spirv_assembly.instruction.compute.opudotkhr.all_ss_v3i32_out32 +dEQP-VK.spirv_assembly.instruction.compute.opudotkhr.all_uu_v4i32_out32 +dEQP-VK.spirv_assembly.instruction.compute.opudotkhr.all_us_v4i32_out32 +dEQP-VK.spirv_assembly.instruction.compute.opudotkhr.all_su_v4i32_out32 +dEQP-VK.spirv_assembly.instruction.compute.opudotkhr.all_ss_v4i32_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsudotkhr.all_uu_v2i8_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsudotkhr.all_uu_v2i8_out16 +dEQP-VK.spirv_assembly.instruction.compute.opsudotkhr.all_uu_v2i8_out8 +dEQP-VK.spirv_assembly.instruction.compute.opsudotkhr.all_us_v2i8_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsudotkhr.all_us_v2i8_out16 +dEQP-VK.spirv_assembly.instruction.compute.opsudotkhr.all_us_v2i8_out8 +dEQP-VK.spirv_assembly.instruction.compute.opsudotkhr.all_su_v2i8_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsudotkhr.all_su_v2i8_out16 +dEQP-VK.spirv_assembly.instruction.compute.opsudotkhr.all_su_v2i8_out8 +dEQP-VK.spirv_assembly.instruction.compute.opsudotkhr.all_ss_v2i8_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsudotkhr.all_ss_v2i8_out16 +dEQP-VK.spirv_assembly.instruction.compute.opsudotkhr.all_ss_v2i8_out8 +dEQP-VK.spirv_assembly.instruction.compute.opsudotkhr.all_uu_v3i8_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsudotkhr.all_uu_v3i8_out16 +dEQP-VK.spirv_assembly.instruction.compute.opsudotkhr.all_uu_v3i8_out8 +dEQP-VK.spirv_assembly.instruction.compute.opsudotkhr.all_us_v3i8_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsudotkhr.all_us_v3i8_out16 +dEQP-VK.spirv_assembly.instruction.compute.opsudotkhr.all_us_v3i8_out8 +dEQP-VK.spirv_assembly.instruction.compute.opsudotkhr.all_su_v3i8_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsudotkhr.all_su_v3i8_out16 +dEQP-VK.spirv_assembly.instruction.compute.opsudotkhr.all_su_v3i8_out8 +dEQP-VK.spirv_assembly.instruction.compute.opsudotkhr.all_ss_v3i8_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsudotkhr.all_ss_v3i8_out16 +dEQP-VK.spirv_assembly.instruction.compute.opsudotkhr.all_ss_v3i8_out8 +dEQP-VK.spirv_assembly.instruction.compute.opsudotkhr.all_uu_v4i8_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsudotkhr.all_uu_v4i8_out16 +dEQP-VK.spirv_assembly.instruction.compute.opsudotkhr.all_uu_v4i8_out8 +dEQP-VK.spirv_assembly.instruction.compute.opsudotkhr.all_us_v4i8_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsudotkhr.all_us_v4i8_out16 +dEQP-VK.spirv_assembly.instruction.compute.opsudotkhr.all_us_v4i8_out8 +dEQP-VK.spirv_assembly.instruction.compute.opsudotkhr.all_su_v4i8_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsudotkhr.all_su_v4i8_out16 +dEQP-VK.spirv_assembly.instruction.compute.opsudotkhr.all_su_v4i8_out8 +dEQP-VK.spirv_assembly.instruction.compute.opsudotkhr.all_ss_v4i8_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsudotkhr.all_ss_v4i8_out16 +dEQP-VK.spirv_assembly.instruction.compute.opsudotkhr.all_ss_v4i8_out8 +dEQP-VK.spirv_assembly.instruction.compute.opsudotkhr.all_packed_ss_v4i8_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsudotkhr.all_packed_ss_v4i8_out16 +dEQP-VK.spirv_assembly.instruction.compute.opsudotkhr.all_packed_ss_v4i8_out8 +dEQP-VK.spirv_assembly.instruction.compute.opsudotkhr.all_packed_su_v4i8_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsudotkhr.all_packed_su_v4i8_out16 +dEQP-VK.spirv_assembly.instruction.compute.opsudotkhr.all_packed_su_v4i8_out8 +dEQP-VK.spirv_assembly.instruction.compute.opsudotkhr.all_packed_us_v4i8_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsudotkhr.all_packed_us_v4i8_out16 +dEQP-VK.spirv_assembly.instruction.compute.opsudotkhr.all_packed_us_v4i8_out8 +dEQP-VK.spirv_assembly.instruction.compute.opsudotkhr.all_packed_uu_v4i8_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsudotkhr.all_packed_uu_v4i8_out16 +dEQP-VK.spirv_assembly.instruction.compute.opsudotkhr.all_packed_uu_v4i8_out8 +dEQP-VK.spirv_assembly.instruction.compute.opsudotkhr.small_uu_v2i8_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsudotkhr.small_uu_v2i8_out16 +dEQP-VK.spirv_assembly.instruction.compute.opsudotkhr.small_uu_v2i8_out8 +dEQP-VK.spirv_assembly.instruction.compute.opsudotkhr.small_us_v2i8_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsudotkhr.small_us_v2i8_out16 +dEQP-VK.spirv_assembly.instruction.compute.opsudotkhr.small_us_v2i8_out8 +dEQP-VK.spirv_assembly.instruction.compute.opsudotkhr.small_su_v2i8_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsudotkhr.small_su_v2i8_out16 +dEQP-VK.spirv_assembly.instruction.compute.opsudotkhr.small_su_v2i8_out8 +dEQP-VK.spirv_assembly.instruction.compute.opsudotkhr.small_ss_v2i8_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsudotkhr.small_ss_v2i8_out16 +dEQP-VK.spirv_assembly.instruction.compute.opsudotkhr.small_ss_v2i8_out8 +dEQP-VK.spirv_assembly.instruction.compute.opsudotkhr.small_uu_v3i8_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsudotkhr.small_uu_v3i8_out16 +dEQP-VK.spirv_assembly.instruction.compute.opsudotkhr.small_uu_v3i8_out8 +dEQP-VK.spirv_assembly.instruction.compute.opsudotkhr.small_us_v3i8_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsudotkhr.small_us_v3i8_out16 +dEQP-VK.spirv_assembly.instruction.compute.opsudotkhr.small_us_v3i8_out8 +dEQP-VK.spirv_assembly.instruction.compute.opsudotkhr.small_su_v3i8_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsudotkhr.small_su_v3i8_out16 +dEQP-VK.spirv_assembly.instruction.compute.opsudotkhr.small_su_v3i8_out8 +dEQP-VK.spirv_assembly.instruction.compute.opsudotkhr.small_ss_v3i8_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsudotkhr.small_ss_v3i8_out16 +dEQP-VK.spirv_assembly.instruction.compute.opsudotkhr.small_ss_v3i8_out8 +dEQP-VK.spirv_assembly.instruction.compute.opsudotkhr.small_uu_v4i8_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsudotkhr.small_uu_v4i8_out16 +dEQP-VK.spirv_assembly.instruction.compute.opsudotkhr.small_uu_v4i8_out8 +dEQP-VK.spirv_assembly.instruction.compute.opsudotkhr.small_us_v4i8_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsudotkhr.small_us_v4i8_out16 +dEQP-VK.spirv_assembly.instruction.compute.opsudotkhr.small_us_v4i8_out8 +dEQP-VK.spirv_assembly.instruction.compute.opsudotkhr.small_su_v4i8_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsudotkhr.small_su_v4i8_out16 +dEQP-VK.spirv_assembly.instruction.compute.opsudotkhr.small_su_v4i8_out8 +dEQP-VK.spirv_assembly.instruction.compute.opsudotkhr.small_ss_v4i8_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsudotkhr.small_ss_v4i8_out16 +dEQP-VK.spirv_assembly.instruction.compute.opsudotkhr.small_ss_v4i8_out8 +dEQP-VK.spirv_assembly.instruction.compute.opsudotkhr.small_packed_ss_v4i8_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsudotkhr.small_packed_ss_v4i8_out16 +dEQP-VK.spirv_assembly.instruction.compute.opsudotkhr.small_packed_ss_v4i8_out8 +dEQP-VK.spirv_assembly.instruction.compute.opsudotkhr.small_packed_su_v4i8_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsudotkhr.small_packed_su_v4i8_out16 +dEQP-VK.spirv_assembly.instruction.compute.opsudotkhr.small_packed_su_v4i8_out8 +dEQP-VK.spirv_assembly.instruction.compute.opsudotkhr.small_packed_us_v4i8_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsudotkhr.small_packed_us_v4i8_out16 +dEQP-VK.spirv_assembly.instruction.compute.opsudotkhr.small_packed_us_v4i8_out8 +dEQP-VK.spirv_assembly.instruction.compute.opsudotkhr.small_packed_uu_v4i8_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsudotkhr.small_packed_uu_v4i8_out16 +dEQP-VK.spirv_assembly.instruction.compute.opsudotkhr.small_packed_uu_v4i8_out8 +dEQP-VK.spirv_assembly.instruction.compute.opsudotkhr.all_uu_v2i16_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsudotkhr.all_uu_v2i16_out16 +dEQP-VK.spirv_assembly.instruction.compute.opsudotkhr.all_us_v2i16_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsudotkhr.all_us_v2i16_out16 +dEQP-VK.spirv_assembly.instruction.compute.opsudotkhr.all_su_v2i16_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsudotkhr.all_su_v2i16_out16 +dEQP-VK.spirv_assembly.instruction.compute.opsudotkhr.all_ss_v2i16_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsudotkhr.all_ss_v2i16_out16 +dEQP-VK.spirv_assembly.instruction.compute.opsudotkhr.all_uu_v3i16_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsudotkhr.all_uu_v3i16_out16 +dEQP-VK.spirv_assembly.instruction.compute.opsudotkhr.all_us_v3i16_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsudotkhr.all_us_v3i16_out16 +dEQP-VK.spirv_assembly.instruction.compute.opsudotkhr.all_su_v3i16_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsudotkhr.all_su_v3i16_out16 +dEQP-VK.spirv_assembly.instruction.compute.opsudotkhr.all_ss_v3i16_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsudotkhr.all_ss_v3i16_out16 +dEQP-VK.spirv_assembly.instruction.compute.opsudotkhr.all_uu_v4i16_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsudotkhr.all_uu_v4i16_out16 +dEQP-VK.spirv_assembly.instruction.compute.opsudotkhr.all_us_v4i16_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsudotkhr.all_us_v4i16_out16 +dEQP-VK.spirv_assembly.instruction.compute.opsudotkhr.all_su_v4i16_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsudotkhr.all_su_v4i16_out16 +dEQP-VK.spirv_assembly.instruction.compute.opsudotkhr.all_ss_v4i16_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsudotkhr.all_ss_v4i16_out16 +dEQP-VK.spirv_assembly.instruction.compute.opsudotkhr.all_uu_v2i32_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsudotkhr.all_us_v2i32_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsudotkhr.all_su_v2i32_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsudotkhr.all_ss_v2i32_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsudotkhr.all_uu_v3i32_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsudotkhr.all_us_v3i32_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsudotkhr.all_su_v3i32_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsudotkhr.all_ss_v3i32_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsudotkhr.all_uu_v4i32_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsudotkhr.all_us_v4i32_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsudotkhr.all_su_v4i32_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsudotkhr.all_ss_v4i32_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsdotaccsatkhr.all_uu_v2i8_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsdotaccsatkhr.all_uu_v2i8_out16 +dEQP-VK.spirv_assembly.instruction.compute.opsdotaccsatkhr.all_uu_v2i8_out8 +dEQP-VK.spirv_assembly.instruction.compute.opsdotaccsatkhr.all_us_v2i8_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsdotaccsatkhr.all_us_v2i8_out16 +dEQP-VK.spirv_assembly.instruction.compute.opsdotaccsatkhr.all_us_v2i8_out8 +dEQP-VK.spirv_assembly.instruction.compute.opsdotaccsatkhr.all_su_v2i8_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsdotaccsatkhr.all_su_v2i8_out16 +dEQP-VK.spirv_assembly.instruction.compute.opsdotaccsatkhr.all_su_v2i8_out8 +dEQP-VK.spirv_assembly.instruction.compute.opsdotaccsatkhr.all_ss_v2i8_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsdotaccsatkhr.all_ss_v2i8_out16 +dEQP-VK.spirv_assembly.instruction.compute.opsdotaccsatkhr.all_ss_v2i8_out8 +dEQP-VK.spirv_assembly.instruction.compute.opsdotaccsatkhr.all_uu_v3i8_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsdotaccsatkhr.all_uu_v3i8_out16 +dEQP-VK.spirv_assembly.instruction.compute.opsdotaccsatkhr.all_uu_v3i8_out8 +dEQP-VK.spirv_assembly.instruction.compute.opsdotaccsatkhr.all_us_v3i8_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsdotaccsatkhr.all_us_v3i8_out16 +dEQP-VK.spirv_assembly.instruction.compute.opsdotaccsatkhr.all_us_v3i8_out8 +dEQP-VK.spirv_assembly.instruction.compute.opsdotaccsatkhr.all_su_v3i8_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsdotaccsatkhr.all_su_v3i8_out16 +dEQP-VK.spirv_assembly.instruction.compute.opsdotaccsatkhr.all_su_v3i8_out8 +dEQP-VK.spirv_assembly.instruction.compute.opsdotaccsatkhr.all_ss_v3i8_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsdotaccsatkhr.all_ss_v3i8_out16 +dEQP-VK.spirv_assembly.instruction.compute.opsdotaccsatkhr.all_ss_v3i8_out8 +dEQP-VK.spirv_assembly.instruction.compute.opsdotaccsatkhr.all_uu_v4i8_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsdotaccsatkhr.all_uu_v4i8_out16 +dEQP-VK.spirv_assembly.instruction.compute.opsdotaccsatkhr.all_uu_v4i8_out8 +dEQP-VK.spirv_assembly.instruction.compute.opsdotaccsatkhr.all_us_v4i8_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsdotaccsatkhr.all_us_v4i8_out16 +dEQP-VK.spirv_assembly.instruction.compute.opsdotaccsatkhr.all_us_v4i8_out8 +dEQP-VK.spirv_assembly.instruction.compute.opsdotaccsatkhr.all_su_v4i8_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsdotaccsatkhr.all_su_v4i8_out16 +dEQP-VK.spirv_assembly.instruction.compute.opsdotaccsatkhr.all_su_v4i8_out8 +dEQP-VK.spirv_assembly.instruction.compute.opsdotaccsatkhr.all_ss_v4i8_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsdotaccsatkhr.all_ss_v4i8_out16 +dEQP-VK.spirv_assembly.instruction.compute.opsdotaccsatkhr.all_ss_v4i8_out8 +dEQP-VK.spirv_assembly.instruction.compute.opsdotaccsatkhr.all_packed_ss_v4i8_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsdotaccsatkhr.all_packed_ss_v4i8_out16 +dEQP-VK.spirv_assembly.instruction.compute.opsdotaccsatkhr.all_packed_ss_v4i8_out8 +dEQP-VK.spirv_assembly.instruction.compute.opsdotaccsatkhr.all_packed_su_v4i8_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsdotaccsatkhr.all_packed_su_v4i8_out16 +dEQP-VK.spirv_assembly.instruction.compute.opsdotaccsatkhr.all_packed_su_v4i8_out8 +dEQP-VK.spirv_assembly.instruction.compute.opsdotaccsatkhr.all_packed_us_v4i8_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsdotaccsatkhr.all_packed_us_v4i8_out16 +dEQP-VK.spirv_assembly.instruction.compute.opsdotaccsatkhr.all_packed_us_v4i8_out8 +dEQP-VK.spirv_assembly.instruction.compute.opsdotaccsatkhr.all_packed_uu_v4i8_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsdotaccsatkhr.all_packed_uu_v4i8_out16 +dEQP-VK.spirv_assembly.instruction.compute.opsdotaccsatkhr.all_packed_uu_v4i8_out8 +dEQP-VK.spirv_assembly.instruction.compute.opsdotaccsatkhr.limits_uu_v2i8_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsdotaccsatkhr.limits_uu_v2i8_out16 +dEQP-VK.spirv_assembly.instruction.compute.opsdotaccsatkhr.limits_uu_v2i8_out8 +dEQP-VK.spirv_assembly.instruction.compute.opsdotaccsatkhr.limits_us_v2i8_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsdotaccsatkhr.limits_us_v2i8_out16 +dEQP-VK.spirv_assembly.instruction.compute.opsdotaccsatkhr.limits_us_v2i8_out8 +dEQP-VK.spirv_assembly.instruction.compute.opsdotaccsatkhr.limits_su_v2i8_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsdotaccsatkhr.limits_su_v2i8_out16 +dEQP-VK.spirv_assembly.instruction.compute.opsdotaccsatkhr.limits_su_v2i8_out8 +dEQP-VK.spirv_assembly.instruction.compute.opsdotaccsatkhr.limits_ss_v2i8_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsdotaccsatkhr.limits_ss_v2i8_out16 +dEQP-VK.spirv_assembly.instruction.compute.opsdotaccsatkhr.limits_ss_v2i8_out8 +dEQP-VK.spirv_assembly.instruction.compute.opsdotaccsatkhr.limits_uu_v3i8_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsdotaccsatkhr.limits_uu_v3i8_out16 +dEQP-VK.spirv_assembly.instruction.compute.opsdotaccsatkhr.limits_uu_v3i8_out8 +dEQP-VK.spirv_assembly.instruction.compute.opsdotaccsatkhr.limits_us_v3i8_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsdotaccsatkhr.limits_us_v3i8_out16 +dEQP-VK.spirv_assembly.instruction.compute.opsdotaccsatkhr.limits_us_v3i8_out8 +dEQP-VK.spirv_assembly.instruction.compute.opsdotaccsatkhr.limits_su_v3i8_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsdotaccsatkhr.limits_su_v3i8_out16 +dEQP-VK.spirv_assembly.instruction.compute.opsdotaccsatkhr.limits_su_v3i8_out8 +dEQP-VK.spirv_assembly.instruction.compute.opsdotaccsatkhr.limits_ss_v3i8_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsdotaccsatkhr.limits_ss_v3i8_out16 +dEQP-VK.spirv_assembly.instruction.compute.opsdotaccsatkhr.limits_ss_v3i8_out8 +dEQP-VK.spirv_assembly.instruction.compute.opsdotaccsatkhr.limits_uu_v4i8_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsdotaccsatkhr.limits_uu_v4i8_out16 +dEQP-VK.spirv_assembly.instruction.compute.opsdotaccsatkhr.limits_uu_v4i8_out8 +dEQP-VK.spirv_assembly.instruction.compute.opsdotaccsatkhr.limits_us_v4i8_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsdotaccsatkhr.limits_us_v4i8_out16 +dEQP-VK.spirv_assembly.instruction.compute.opsdotaccsatkhr.limits_us_v4i8_out8 +dEQP-VK.spirv_assembly.instruction.compute.opsdotaccsatkhr.limits_su_v4i8_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsdotaccsatkhr.limits_su_v4i8_out16 +dEQP-VK.spirv_assembly.instruction.compute.opsdotaccsatkhr.limits_su_v4i8_out8 +dEQP-VK.spirv_assembly.instruction.compute.opsdotaccsatkhr.limits_ss_v4i8_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsdotaccsatkhr.limits_ss_v4i8_out16 +dEQP-VK.spirv_assembly.instruction.compute.opsdotaccsatkhr.limits_ss_v4i8_out8 +dEQP-VK.spirv_assembly.instruction.compute.opsdotaccsatkhr.limits_packed_ss_v4i8_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsdotaccsatkhr.limits_packed_ss_v4i8_out16 +dEQP-VK.spirv_assembly.instruction.compute.opsdotaccsatkhr.limits_packed_ss_v4i8_out8 +dEQP-VK.spirv_assembly.instruction.compute.opsdotaccsatkhr.limits_packed_su_v4i8_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsdotaccsatkhr.limits_packed_su_v4i8_out16 +dEQP-VK.spirv_assembly.instruction.compute.opsdotaccsatkhr.limits_packed_su_v4i8_out8 +dEQP-VK.spirv_assembly.instruction.compute.opsdotaccsatkhr.limits_packed_us_v4i8_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsdotaccsatkhr.limits_packed_us_v4i8_out16 +dEQP-VK.spirv_assembly.instruction.compute.opsdotaccsatkhr.limits_packed_us_v4i8_out8 +dEQP-VK.spirv_assembly.instruction.compute.opsdotaccsatkhr.limits_packed_uu_v4i8_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsdotaccsatkhr.limits_packed_uu_v4i8_out16 +dEQP-VK.spirv_assembly.instruction.compute.opsdotaccsatkhr.limits_packed_uu_v4i8_out8 +dEQP-VK.spirv_assembly.instruction.compute.opsdotaccsatkhr.limits-neg_uu_v2i8_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsdotaccsatkhr.limits-neg_uu_v2i8_out16 +dEQP-VK.spirv_assembly.instruction.compute.opsdotaccsatkhr.limits-neg_uu_v2i8_out8 +dEQP-VK.spirv_assembly.instruction.compute.opsdotaccsatkhr.limits-neg_us_v2i8_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsdotaccsatkhr.limits-neg_us_v2i8_out16 +dEQP-VK.spirv_assembly.instruction.compute.opsdotaccsatkhr.limits-neg_us_v2i8_out8 +dEQP-VK.spirv_assembly.instruction.compute.opsdotaccsatkhr.limits-neg_su_v2i8_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsdotaccsatkhr.limits-neg_su_v2i8_out16 +dEQP-VK.spirv_assembly.instruction.compute.opsdotaccsatkhr.limits-neg_su_v2i8_out8 +dEQP-VK.spirv_assembly.instruction.compute.opsdotaccsatkhr.limits-neg_ss_v2i8_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsdotaccsatkhr.limits-neg_ss_v2i8_out16 +dEQP-VK.spirv_assembly.instruction.compute.opsdotaccsatkhr.limits-neg_ss_v2i8_out8 +dEQP-VK.spirv_assembly.instruction.compute.opsdotaccsatkhr.limits-neg_uu_v3i8_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsdotaccsatkhr.limits-neg_uu_v3i8_out16 +dEQP-VK.spirv_assembly.instruction.compute.opsdotaccsatkhr.limits-neg_uu_v3i8_out8 +dEQP-VK.spirv_assembly.instruction.compute.opsdotaccsatkhr.limits-neg_us_v3i8_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsdotaccsatkhr.limits-neg_us_v3i8_out16 +dEQP-VK.spirv_assembly.instruction.compute.opsdotaccsatkhr.limits-neg_us_v3i8_out8 +dEQP-VK.spirv_assembly.instruction.compute.opsdotaccsatkhr.limits-neg_su_v3i8_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsdotaccsatkhr.limits-neg_su_v3i8_out16 +dEQP-VK.spirv_assembly.instruction.compute.opsdotaccsatkhr.limits-neg_su_v3i8_out8 +dEQP-VK.spirv_assembly.instruction.compute.opsdotaccsatkhr.limits-neg_ss_v3i8_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsdotaccsatkhr.limits-neg_ss_v3i8_out16 +dEQP-VK.spirv_assembly.instruction.compute.opsdotaccsatkhr.limits-neg_ss_v3i8_out8 +dEQP-VK.spirv_assembly.instruction.compute.opsdotaccsatkhr.limits-neg_uu_v4i8_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsdotaccsatkhr.limits-neg_uu_v4i8_out16 +dEQP-VK.spirv_assembly.instruction.compute.opsdotaccsatkhr.limits-neg_uu_v4i8_out8 +dEQP-VK.spirv_assembly.instruction.compute.opsdotaccsatkhr.limits-neg_us_v4i8_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsdotaccsatkhr.limits-neg_us_v4i8_out16 +dEQP-VK.spirv_assembly.instruction.compute.opsdotaccsatkhr.limits-neg_us_v4i8_out8 +dEQP-VK.spirv_assembly.instruction.compute.opsdotaccsatkhr.limits-neg_su_v4i8_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsdotaccsatkhr.limits-neg_su_v4i8_out16 +dEQP-VK.spirv_assembly.instruction.compute.opsdotaccsatkhr.limits-neg_su_v4i8_out8 +dEQP-VK.spirv_assembly.instruction.compute.opsdotaccsatkhr.limits-neg_ss_v4i8_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsdotaccsatkhr.limits-neg_ss_v4i8_out16 +dEQP-VK.spirv_assembly.instruction.compute.opsdotaccsatkhr.limits-neg_ss_v4i8_out8 +dEQP-VK.spirv_assembly.instruction.compute.opsdotaccsatkhr.limits-neg_packed_ss_v4i8_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsdotaccsatkhr.limits-neg_packed_ss_v4i8_out16 +dEQP-VK.spirv_assembly.instruction.compute.opsdotaccsatkhr.limits-neg_packed_ss_v4i8_out8 +dEQP-VK.spirv_assembly.instruction.compute.opsdotaccsatkhr.limits-neg_packed_su_v4i8_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsdotaccsatkhr.limits-neg_packed_su_v4i8_out16 +dEQP-VK.spirv_assembly.instruction.compute.opsdotaccsatkhr.limits-neg_packed_su_v4i8_out8 +dEQP-VK.spirv_assembly.instruction.compute.opsdotaccsatkhr.limits-neg_packed_us_v4i8_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsdotaccsatkhr.limits-neg_packed_us_v4i8_out16 +dEQP-VK.spirv_assembly.instruction.compute.opsdotaccsatkhr.limits-neg_packed_us_v4i8_out8 +dEQP-VK.spirv_assembly.instruction.compute.opsdotaccsatkhr.limits-neg_packed_uu_v4i8_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsdotaccsatkhr.limits-neg_packed_uu_v4i8_out16 +dEQP-VK.spirv_assembly.instruction.compute.opsdotaccsatkhr.limits-neg_packed_uu_v4i8_out8 +dEQP-VK.spirv_assembly.instruction.compute.opsdotaccsatkhr.small_uu_v2i8_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsdotaccsatkhr.small_uu_v2i8_out16 +dEQP-VK.spirv_assembly.instruction.compute.opsdotaccsatkhr.small_uu_v2i8_out8 +dEQP-VK.spirv_assembly.instruction.compute.opsdotaccsatkhr.small_us_v2i8_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsdotaccsatkhr.small_us_v2i8_out16 +dEQP-VK.spirv_assembly.instruction.compute.opsdotaccsatkhr.small_us_v2i8_out8 +dEQP-VK.spirv_assembly.instruction.compute.opsdotaccsatkhr.small_su_v2i8_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsdotaccsatkhr.small_su_v2i8_out16 +dEQP-VK.spirv_assembly.instruction.compute.opsdotaccsatkhr.small_su_v2i8_out8 +dEQP-VK.spirv_assembly.instruction.compute.opsdotaccsatkhr.small_ss_v2i8_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsdotaccsatkhr.small_ss_v2i8_out16 +dEQP-VK.spirv_assembly.instruction.compute.opsdotaccsatkhr.small_ss_v2i8_out8 +dEQP-VK.spirv_assembly.instruction.compute.opsdotaccsatkhr.small_uu_v3i8_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsdotaccsatkhr.small_uu_v3i8_out16 +dEQP-VK.spirv_assembly.instruction.compute.opsdotaccsatkhr.small_uu_v3i8_out8 +dEQP-VK.spirv_assembly.instruction.compute.opsdotaccsatkhr.small_us_v3i8_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsdotaccsatkhr.small_us_v3i8_out16 +dEQP-VK.spirv_assembly.instruction.compute.opsdotaccsatkhr.small_us_v3i8_out8 +dEQP-VK.spirv_assembly.instruction.compute.opsdotaccsatkhr.small_su_v3i8_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsdotaccsatkhr.small_su_v3i8_out16 +dEQP-VK.spirv_assembly.instruction.compute.opsdotaccsatkhr.small_su_v3i8_out8 +dEQP-VK.spirv_assembly.instruction.compute.opsdotaccsatkhr.small_ss_v3i8_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsdotaccsatkhr.small_ss_v3i8_out16 +dEQP-VK.spirv_assembly.instruction.compute.opsdotaccsatkhr.small_ss_v3i8_out8 +dEQP-VK.spirv_assembly.instruction.compute.opsdotaccsatkhr.small_uu_v4i8_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsdotaccsatkhr.small_uu_v4i8_out16 +dEQP-VK.spirv_assembly.instruction.compute.opsdotaccsatkhr.small_uu_v4i8_out8 +dEQP-VK.spirv_assembly.instruction.compute.opsdotaccsatkhr.small_us_v4i8_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsdotaccsatkhr.small_us_v4i8_out16 +dEQP-VK.spirv_assembly.instruction.compute.opsdotaccsatkhr.small_us_v4i8_out8 +dEQP-VK.spirv_assembly.instruction.compute.opsdotaccsatkhr.small_su_v4i8_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsdotaccsatkhr.small_su_v4i8_out16 +dEQP-VK.spirv_assembly.instruction.compute.opsdotaccsatkhr.small_su_v4i8_out8 +dEQP-VK.spirv_assembly.instruction.compute.opsdotaccsatkhr.small_ss_v4i8_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsdotaccsatkhr.small_ss_v4i8_out16 +dEQP-VK.spirv_assembly.instruction.compute.opsdotaccsatkhr.small_ss_v4i8_out8 +dEQP-VK.spirv_assembly.instruction.compute.opsdotaccsatkhr.small_packed_ss_v4i8_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsdotaccsatkhr.small_packed_ss_v4i8_out16 +dEQP-VK.spirv_assembly.instruction.compute.opsdotaccsatkhr.small_packed_ss_v4i8_out8 +dEQP-VK.spirv_assembly.instruction.compute.opsdotaccsatkhr.small_packed_su_v4i8_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsdotaccsatkhr.small_packed_su_v4i8_out16 +dEQP-VK.spirv_assembly.instruction.compute.opsdotaccsatkhr.small_packed_su_v4i8_out8 +dEQP-VK.spirv_assembly.instruction.compute.opsdotaccsatkhr.small_packed_us_v4i8_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsdotaccsatkhr.small_packed_us_v4i8_out16 +dEQP-VK.spirv_assembly.instruction.compute.opsdotaccsatkhr.small_packed_us_v4i8_out8 +dEQP-VK.spirv_assembly.instruction.compute.opsdotaccsatkhr.small_packed_uu_v4i8_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsdotaccsatkhr.small_packed_uu_v4i8_out16 +dEQP-VK.spirv_assembly.instruction.compute.opsdotaccsatkhr.small_packed_uu_v4i8_out8 +dEQP-VK.spirv_assembly.instruction.compute.opsdotaccsatkhr.all_uu_v2i16_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsdotaccsatkhr.all_uu_v2i16_out16 +dEQP-VK.spirv_assembly.instruction.compute.opsdotaccsatkhr.all_us_v2i16_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsdotaccsatkhr.all_us_v2i16_out16 +dEQP-VK.spirv_assembly.instruction.compute.opsdotaccsatkhr.all_su_v2i16_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsdotaccsatkhr.all_su_v2i16_out16 +dEQP-VK.spirv_assembly.instruction.compute.opsdotaccsatkhr.all_ss_v2i16_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsdotaccsatkhr.all_ss_v2i16_out16 +dEQP-VK.spirv_assembly.instruction.compute.opsdotaccsatkhr.all_uu_v3i16_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsdotaccsatkhr.all_uu_v3i16_out16 +dEQP-VK.spirv_assembly.instruction.compute.opsdotaccsatkhr.all_us_v3i16_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsdotaccsatkhr.all_us_v3i16_out16 +dEQP-VK.spirv_assembly.instruction.compute.opsdotaccsatkhr.all_su_v3i16_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsdotaccsatkhr.all_su_v3i16_out16 +dEQP-VK.spirv_assembly.instruction.compute.opsdotaccsatkhr.all_ss_v3i16_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsdotaccsatkhr.all_ss_v3i16_out16 +dEQP-VK.spirv_assembly.instruction.compute.opsdotaccsatkhr.all_uu_v4i16_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsdotaccsatkhr.all_uu_v4i16_out16 +dEQP-VK.spirv_assembly.instruction.compute.opsdotaccsatkhr.all_us_v4i16_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsdotaccsatkhr.all_us_v4i16_out16 +dEQP-VK.spirv_assembly.instruction.compute.opsdotaccsatkhr.all_su_v4i16_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsdotaccsatkhr.all_su_v4i16_out16 +dEQP-VK.spirv_assembly.instruction.compute.opsdotaccsatkhr.all_ss_v4i16_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsdotaccsatkhr.all_ss_v4i16_out16 +dEQP-VK.spirv_assembly.instruction.compute.opsdotaccsatkhr.limits_uu_v2i16_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsdotaccsatkhr.limits_uu_v2i16_out16 +dEQP-VK.spirv_assembly.instruction.compute.opsdotaccsatkhr.limits_us_v2i16_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsdotaccsatkhr.limits_us_v2i16_out16 +dEQP-VK.spirv_assembly.instruction.compute.opsdotaccsatkhr.limits_su_v2i16_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsdotaccsatkhr.limits_su_v2i16_out16 +dEQP-VK.spirv_assembly.instruction.compute.opsdotaccsatkhr.limits_ss_v2i16_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsdotaccsatkhr.limits_ss_v2i16_out16 +dEQP-VK.spirv_assembly.instruction.compute.opsdotaccsatkhr.limits_uu_v3i16_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsdotaccsatkhr.limits_uu_v3i16_out16 +dEQP-VK.spirv_assembly.instruction.compute.opsdotaccsatkhr.limits_us_v3i16_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsdotaccsatkhr.limits_us_v3i16_out16 +dEQP-VK.spirv_assembly.instruction.compute.opsdotaccsatkhr.limits_su_v3i16_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsdotaccsatkhr.limits_su_v3i16_out16 +dEQP-VK.spirv_assembly.instruction.compute.opsdotaccsatkhr.limits_ss_v3i16_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsdotaccsatkhr.limits_ss_v3i16_out16 +dEQP-VK.spirv_assembly.instruction.compute.opsdotaccsatkhr.limits_uu_v4i16_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsdotaccsatkhr.limits_uu_v4i16_out16 +dEQP-VK.spirv_assembly.instruction.compute.opsdotaccsatkhr.limits_us_v4i16_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsdotaccsatkhr.limits_us_v4i16_out16 +dEQP-VK.spirv_assembly.instruction.compute.opsdotaccsatkhr.limits_su_v4i16_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsdotaccsatkhr.limits_su_v4i16_out16 +dEQP-VK.spirv_assembly.instruction.compute.opsdotaccsatkhr.limits_ss_v4i16_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsdotaccsatkhr.limits_ss_v4i16_out16 +dEQP-VK.spirv_assembly.instruction.compute.opsdotaccsatkhr.limits-neg_uu_v2i16_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsdotaccsatkhr.limits-neg_uu_v2i16_out16 +dEQP-VK.spirv_assembly.instruction.compute.opsdotaccsatkhr.limits-neg_us_v2i16_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsdotaccsatkhr.limits-neg_us_v2i16_out16 +dEQP-VK.spirv_assembly.instruction.compute.opsdotaccsatkhr.limits-neg_su_v2i16_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsdotaccsatkhr.limits-neg_su_v2i16_out16 +dEQP-VK.spirv_assembly.instruction.compute.opsdotaccsatkhr.limits-neg_ss_v2i16_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsdotaccsatkhr.limits-neg_ss_v2i16_out16 +dEQP-VK.spirv_assembly.instruction.compute.opsdotaccsatkhr.limits-neg_uu_v3i16_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsdotaccsatkhr.limits-neg_uu_v3i16_out16 +dEQP-VK.spirv_assembly.instruction.compute.opsdotaccsatkhr.limits-neg_us_v3i16_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsdotaccsatkhr.limits-neg_us_v3i16_out16 +dEQP-VK.spirv_assembly.instruction.compute.opsdotaccsatkhr.limits-neg_su_v3i16_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsdotaccsatkhr.limits-neg_su_v3i16_out16 +dEQP-VK.spirv_assembly.instruction.compute.opsdotaccsatkhr.limits-neg_ss_v3i16_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsdotaccsatkhr.limits-neg_ss_v3i16_out16 +dEQP-VK.spirv_assembly.instruction.compute.opsdotaccsatkhr.limits-neg_uu_v4i16_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsdotaccsatkhr.limits-neg_uu_v4i16_out16 +dEQP-VK.spirv_assembly.instruction.compute.opsdotaccsatkhr.limits-neg_us_v4i16_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsdotaccsatkhr.limits-neg_us_v4i16_out16 +dEQP-VK.spirv_assembly.instruction.compute.opsdotaccsatkhr.limits-neg_su_v4i16_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsdotaccsatkhr.limits-neg_su_v4i16_out16 +dEQP-VK.spirv_assembly.instruction.compute.opsdotaccsatkhr.limits-neg_ss_v4i16_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsdotaccsatkhr.limits-neg_ss_v4i16_out16 +dEQP-VK.spirv_assembly.instruction.compute.opsdotaccsatkhr.all_uu_v2i32_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsdotaccsatkhr.all_us_v2i32_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsdotaccsatkhr.all_su_v2i32_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsdotaccsatkhr.all_ss_v2i32_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsdotaccsatkhr.all_uu_v3i32_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsdotaccsatkhr.all_us_v3i32_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsdotaccsatkhr.all_su_v3i32_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsdotaccsatkhr.all_ss_v3i32_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsdotaccsatkhr.all_uu_v4i32_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsdotaccsatkhr.all_us_v4i32_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsdotaccsatkhr.all_su_v4i32_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsdotaccsatkhr.all_ss_v4i32_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsdotaccsatkhr.limits_uu_v2i32_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsdotaccsatkhr.limits_us_v2i32_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsdotaccsatkhr.limits_su_v2i32_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsdotaccsatkhr.limits_ss_v2i32_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsdotaccsatkhr.limits_uu_v3i32_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsdotaccsatkhr.limits_us_v3i32_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsdotaccsatkhr.limits_su_v3i32_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsdotaccsatkhr.limits_ss_v3i32_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsdotaccsatkhr.limits_uu_v4i32_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsdotaccsatkhr.limits_us_v4i32_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsdotaccsatkhr.limits_su_v4i32_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsdotaccsatkhr.limits_ss_v4i32_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsdotaccsatkhr.limits-neg_uu_v2i32_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsdotaccsatkhr.limits-neg_us_v2i32_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsdotaccsatkhr.limits-neg_su_v2i32_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsdotaccsatkhr.limits-neg_ss_v2i32_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsdotaccsatkhr.limits-neg_uu_v3i32_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsdotaccsatkhr.limits-neg_us_v3i32_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsdotaccsatkhr.limits-neg_su_v3i32_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsdotaccsatkhr.limits-neg_ss_v3i32_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsdotaccsatkhr.limits-neg_uu_v4i32_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsdotaccsatkhr.limits-neg_us_v4i32_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsdotaccsatkhr.limits-neg_su_v4i32_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsdotaccsatkhr.limits-neg_ss_v4i32_out32 +dEQP-VK.spirv_assembly.instruction.compute.opudotaccsatkhr.all_uu_v2i8_out32 +dEQP-VK.spirv_assembly.instruction.compute.opudotaccsatkhr.all_uu_v2i8_out16 +dEQP-VK.spirv_assembly.instruction.compute.opudotaccsatkhr.all_uu_v2i8_out8 +dEQP-VK.spirv_assembly.instruction.compute.opudotaccsatkhr.all_us_v2i8_out32 +dEQP-VK.spirv_assembly.instruction.compute.opudotaccsatkhr.all_us_v2i8_out16 +dEQP-VK.spirv_assembly.instruction.compute.opudotaccsatkhr.all_us_v2i8_out8 +dEQP-VK.spirv_assembly.instruction.compute.opudotaccsatkhr.all_su_v2i8_out32 +dEQP-VK.spirv_assembly.instruction.compute.opudotaccsatkhr.all_su_v2i8_out16 +dEQP-VK.spirv_assembly.instruction.compute.opudotaccsatkhr.all_su_v2i8_out8 +dEQP-VK.spirv_assembly.instruction.compute.opudotaccsatkhr.all_ss_v2i8_out32 +dEQP-VK.spirv_assembly.instruction.compute.opudotaccsatkhr.all_ss_v2i8_out16 +dEQP-VK.spirv_assembly.instruction.compute.opudotaccsatkhr.all_ss_v2i8_out8 +dEQP-VK.spirv_assembly.instruction.compute.opudotaccsatkhr.all_uu_v3i8_out32 +dEQP-VK.spirv_assembly.instruction.compute.opudotaccsatkhr.all_uu_v3i8_out16 +dEQP-VK.spirv_assembly.instruction.compute.opudotaccsatkhr.all_uu_v3i8_out8 +dEQP-VK.spirv_assembly.instruction.compute.opudotaccsatkhr.all_us_v3i8_out32 +dEQP-VK.spirv_assembly.instruction.compute.opudotaccsatkhr.all_us_v3i8_out16 +dEQP-VK.spirv_assembly.instruction.compute.opudotaccsatkhr.all_us_v3i8_out8 +dEQP-VK.spirv_assembly.instruction.compute.opudotaccsatkhr.all_su_v3i8_out32 +dEQP-VK.spirv_assembly.instruction.compute.opudotaccsatkhr.all_su_v3i8_out16 +dEQP-VK.spirv_assembly.instruction.compute.opudotaccsatkhr.all_su_v3i8_out8 +dEQP-VK.spirv_assembly.instruction.compute.opudotaccsatkhr.all_ss_v3i8_out32 +dEQP-VK.spirv_assembly.instruction.compute.opudotaccsatkhr.all_ss_v3i8_out16 +dEQP-VK.spirv_assembly.instruction.compute.opudotaccsatkhr.all_ss_v3i8_out8 +dEQP-VK.spirv_assembly.instruction.compute.opudotaccsatkhr.all_uu_v4i8_out32 +dEQP-VK.spirv_assembly.instruction.compute.opudotaccsatkhr.all_uu_v4i8_out16 +dEQP-VK.spirv_assembly.instruction.compute.opudotaccsatkhr.all_uu_v4i8_out8 +dEQP-VK.spirv_assembly.instruction.compute.opudotaccsatkhr.all_us_v4i8_out32 +dEQP-VK.spirv_assembly.instruction.compute.opudotaccsatkhr.all_us_v4i8_out16 +dEQP-VK.spirv_assembly.instruction.compute.opudotaccsatkhr.all_us_v4i8_out8 +dEQP-VK.spirv_assembly.instruction.compute.opudotaccsatkhr.all_su_v4i8_out32 +dEQP-VK.spirv_assembly.instruction.compute.opudotaccsatkhr.all_su_v4i8_out16 +dEQP-VK.spirv_assembly.instruction.compute.opudotaccsatkhr.all_su_v4i8_out8 +dEQP-VK.spirv_assembly.instruction.compute.opudotaccsatkhr.all_ss_v4i8_out32 +dEQP-VK.spirv_assembly.instruction.compute.opudotaccsatkhr.all_ss_v4i8_out16 +dEQP-VK.spirv_assembly.instruction.compute.opudotaccsatkhr.all_ss_v4i8_out8 +dEQP-VK.spirv_assembly.instruction.compute.opudotaccsatkhr.all_packed_ss_v4i8_out32 +dEQP-VK.spirv_assembly.instruction.compute.opudotaccsatkhr.all_packed_ss_v4i8_out16 +dEQP-VK.spirv_assembly.instruction.compute.opudotaccsatkhr.all_packed_ss_v4i8_out8 +dEQP-VK.spirv_assembly.instruction.compute.opudotaccsatkhr.all_packed_su_v4i8_out32 +dEQP-VK.spirv_assembly.instruction.compute.opudotaccsatkhr.all_packed_su_v4i8_out16 +dEQP-VK.spirv_assembly.instruction.compute.opudotaccsatkhr.all_packed_su_v4i8_out8 +dEQP-VK.spirv_assembly.instruction.compute.opudotaccsatkhr.all_packed_us_v4i8_out32 +dEQP-VK.spirv_assembly.instruction.compute.opudotaccsatkhr.all_packed_us_v4i8_out16 +dEQP-VK.spirv_assembly.instruction.compute.opudotaccsatkhr.all_packed_us_v4i8_out8 +dEQP-VK.spirv_assembly.instruction.compute.opudotaccsatkhr.all_packed_uu_v4i8_out32 +dEQP-VK.spirv_assembly.instruction.compute.opudotaccsatkhr.all_packed_uu_v4i8_out16 +dEQP-VK.spirv_assembly.instruction.compute.opudotaccsatkhr.all_packed_uu_v4i8_out8 +dEQP-VK.spirv_assembly.instruction.compute.opudotaccsatkhr.limits_uu_v2i8_out32 +dEQP-VK.spirv_assembly.instruction.compute.opudotaccsatkhr.limits_uu_v2i8_out16 +dEQP-VK.spirv_assembly.instruction.compute.opudotaccsatkhr.limits_uu_v2i8_out8 +dEQP-VK.spirv_assembly.instruction.compute.opudotaccsatkhr.limits_us_v2i8_out32 +dEQP-VK.spirv_assembly.instruction.compute.opudotaccsatkhr.limits_us_v2i8_out16 +dEQP-VK.spirv_assembly.instruction.compute.opudotaccsatkhr.limits_us_v2i8_out8 +dEQP-VK.spirv_assembly.instruction.compute.opudotaccsatkhr.limits_su_v2i8_out32 +dEQP-VK.spirv_assembly.instruction.compute.opudotaccsatkhr.limits_su_v2i8_out16 +dEQP-VK.spirv_assembly.instruction.compute.opudotaccsatkhr.limits_su_v2i8_out8 +dEQP-VK.spirv_assembly.instruction.compute.opudotaccsatkhr.limits_ss_v2i8_out32 +dEQP-VK.spirv_assembly.instruction.compute.opudotaccsatkhr.limits_ss_v2i8_out16 +dEQP-VK.spirv_assembly.instruction.compute.opudotaccsatkhr.limits_ss_v2i8_out8 +dEQP-VK.spirv_assembly.instruction.compute.opudotaccsatkhr.limits_uu_v3i8_out32 +dEQP-VK.spirv_assembly.instruction.compute.opudotaccsatkhr.limits_uu_v3i8_out16 +dEQP-VK.spirv_assembly.instruction.compute.opudotaccsatkhr.limits_uu_v3i8_out8 +dEQP-VK.spirv_assembly.instruction.compute.opudotaccsatkhr.limits_us_v3i8_out32 +dEQP-VK.spirv_assembly.instruction.compute.opudotaccsatkhr.limits_us_v3i8_out16 +dEQP-VK.spirv_assembly.instruction.compute.opudotaccsatkhr.limits_us_v3i8_out8 +dEQP-VK.spirv_assembly.instruction.compute.opudotaccsatkhr.limits_su_v3i8_out32 +dEQP-VK.spirv_assembly.instruction.compute.opudotaccsatkhr.limits_su_v3i8_out16 +dEQP-VK.spirv_assembly.instruction.compute.opudotaccsatkhr.limits_su_v3i8_out8 +dEQP-VK.spirv_assembly.instruction.compute.opudotaccsatkhr.limits_ss_v3i8_out32 +dEQP-VK.spirv_assembly.instruction.compute.opudotaccsatkhr.limits_ss_v3i8_out16 +dEQP-VK.spirv_assembly.instruction.compute.opudotaccsatkhr.limits_ss_v3i8_out8 +dEQP-VK.spirv_assembly.instruction.compute.opudotaccsatkhr.limits_uu_v4i8_out32 +dEQP-VK.spirv_assembly.instruction.compute.opudotaccsatkhr.limits_uu_v4i8_out16 +dEQP-VK.spirv_assembly.instruction.compute.opudotaccsatkhr.limits_uu_v4i8_out8 +dEQP-VK.spirv_assembly.instruction.compute.opudotaccsatkhr.limits_us_v4i8_out32 +dEQP-VK.spirv_assembly.instruction.compute.opudotaccsatkhr.limits_us_v4i8_out16 +dEQP-VK.spirv_assembly.instruction.compute.opudotaccsatkhr.limits_us_v4i8_out8 +dEQP-VK.spirv_assembly.instruction.compute.opudotaccsatkhr.limits_su_v4i8_out32 +dEQP-VK.spirv_assembly.instruction.compute.opudotaccsatkhr.limits_su_v4i8_out16 +dEQP-VK.spirv_assembly.instruction.compute.opudotaccsatkhr.limits_su_v4i8_out8 +dEQP-VK.spirv_assembly.instruction.compute.opudotaccsatkhr.limits_ss_v4i8_out32 +dEQP-VK.spirv_assembly.instruction.compute.opudotaccsatkhr.limits_ss_v4i8_out16 +dEQP-VK.spirv_assembly.instruction.compute.opudotaccsatkhr.limits_ss_v4i8_out8 +dEQP-VK.spirv_assembly.instruction.compute.opudotaccsatkhr.limits_packed_ss_v4i8_out32 +dEQP-VK.spirv_assembly.instruction.compute.opudotaccsatkhr.limits_packed_ss_v4i8_out16 +dEQP-VK.spirv_assembly.instruction.compute.opudotaccsatkhr.limits_packed_ss_v4i8_out8 +dEQP-VK.spirv_assembly.instruction.compute.opudotaccsatkhr.limits_packed_su_v4i8_out32 +dEQP-VK.spirv_assembly.instruction.compute.opudotaccsatkhr.limits_packed_su_v4i8_out16 +dEQP-VK.spirv_assembly.instruction.compute.opudotaccsatkhr.limits_packed_su_v4i8_out8 +dEQP-VK.spirv_assembly.instruction.compute.opudotaccsatkhr.limits_packed_us_v4i8_out32 +dEQP-VK.spirv_assembly.instruction.compute.opudotaccsatkhr.limits_packed_us_v4i8_out16 +dEQP-VK.spirv_assembly.instruction.compute.opudotaccsatkhr.limits_packed_us_v4i8_out8 +dEQP-VK.spirv_assembly.instruction.compute.opudotaccsatkhr.limits_packed_uu_v4i8_out32 +dEQP-VK.spirv_assembly.instruction.compute.opudotaccsatkhr.limits_packed_uu_v4i8_out16 +dEQP-VK.spirv_assembly.instruction.compute.opudotaccsatkhr.limits_packed_uu_v4i8_out8 +dEQP-VK.spirv_assembly.instruction.compute.opudotaccsatkhr.small_uu_v2i8_out32 +dEQP-VK.spirv_assembly.instruction.compute.opudotaccsatkhr.small_uu_v2i8_out16 +dEQP-VK.spirv_assembly.instruction.compute.opudotaccsatkhr.small_uu_v2i8_out8 +dEQP-VK.spirv_assembly.instruction.compute.opudotaccsatkhr.small_us_v2i8_out32 +dEQP-VK.spirv_assembly.instruction.compute.opudotaccsatkhr.small_us_v2i8_out16 +dEQP-VK.spirv_assembly.instruction.compute.opudotaccsatkhr.small_us_v2i8_out8 +dEQP-VK.spirv_assembly.instruction.compute.opudotaccsatkhr.small_su_v2i8_out32 +dEQP-VK.spirv_assembly.instruction.compute.opudotaccsatkhr.small_su_v2i8_out16 +dEQP-VK.spirv_assembly.instruction.compute.opudotaccsatkhr.small_su_v2i8_out8 +dEQP-VK.spirv_assembly.instruction.compute.opudotaccsatkhr.small_ss_v2i8_out32 +dEQP-VK.spirv_assembly.instruction.compute.opudotaccsatkhr.small_ss_v2i8_out16 +dEQP-VK.spirv_assembly.instruction.compute.opudotaccsatkhr.small_ss_v2i8_out8 +dEQP-VK.spirv_assembly.instruction.compute.opudotaccsatkhr.small_uu_v3i8_out32 +dEQP-VK.spirv_assembly.instruction.compute.opudotaccsatkhr.small_uu_v3i8_out16 +dEQP-VK.spirv_assembly.instruction.compute.opudotaccsatkhr.small_uu_v3i8_out8 +dEQP-VK.spirv_assembly.instruction.compute.opudotaccsatkhr.small_us_v3i8_out32 +dEQP-VK.spirv_assembly.instruction.compute.opudotaccsatkhr.small_us_v3i8_out16 +dEQP-VK.spirv_assembly.instruction.compute.opudotaccsatkhr.small_us_v3i8_out8 +dEQP-VK.spirv_assembly.instruction.compute.opudotaccsatkhr.small_su_v3i8_out32 +dEQP-VK.spirv_assembly.instruction.compute.opudotaccsatkhr.small_su_v3i8_out16 +dEQP-VK.spirv_assembly.instruction.compute.opudotaccsatkhr.small_su_v3i8_out8 +dEQP-VK.spirv_assembly.instruction.compute.opudotaccsatkhr.small_ss_v3i8_out32 +dEQP-VK.spirv_assembly.instruction.compute.opudotaccsatkhr.small_ss_v3i8_out16 +dEQP-VK.spirv_assembly.instruction.compute.opudotaccsatkhr.small_ss_v3i8_out8 +dEQP-VK.spirv_assembly.instruction.compute.opudotaccsatkhr.small_uu_v4i8_out32 +dEQP-VK.spirv_assembly.instruction.compute.opudotaccsatkhr.small_uu_v4i8_out16 +dEQP-VK.spirv_assembly.instruction.compute.opudotaccsatkhr.small_uu_v4i8_out8 +dEQP-VK.spirv_assembly.instruction.compute.opudotaccsatkhr.small_us_v4i8_out32 +dEQP-VK.spirv_assembly.instruction.compute.opudotaccsatkhr.small_us_v4i8_out16 +dEQP-VK.spirv_assembly.instruction.compute.opudotaccsatkhr.small_us_v4i8_out8 +dEQP-VK.spirv_assembly.instruction.compute.opudotaccsatkhr.small_su_v4i8_out32 +dEQP-VK.spirv_assembly.instruction.compute.opudotaccsatkhr.small_su_v4i8_out16 +dEQP-VK.spirv_assembly.instruction.compute.opudotaccsatkhr.small_su_v4i8_out8 +dEQP-VK.spirv_assembly.instruction.compute.opudotaccsatkhr.small_ss_v4i8_out32 +dEQP-VK.spirv_assembly.instruction.compute.opudotaccsatkhr.small_ss_v4i8_out16 +dEQP-VK.spirv_assembly.instruction.compute.opudotaccsatkhr.small_ss_v4i8_out8 +dEQP-VK.spirv_assembly.instruction.compute.opudotaccsatkhr.small_packed_ss_v4i8_out32 +dEQP-VK.spirv_assembly.instruction.compute.opudotaccsatkhr.small_packed_ss_v4i8_out16 +dEQP-VK.spirv_assembly.instruction.compute.opudotaccsatkhr.small_packed_ss_v4i8_out8 +dEQP-VK.spirv_assembly.instruction.compute.opudotaccsatkhr.small_packed_su_v4i8_out32 +dEQP-VK.spirv_assembly.instruction.compute.opudotaccsatkhr.small_packed_su_v4i8_out16 +dEQP-VK.spirv_assembly.instruction.compute.opudotaccsatkhr.small_packed_su_v4i8_out8 +dEQP-VK.spirv_assembly.instruction.compute.opudotaccsatkhr.small_packed_us_v4i8_out32 +dEQP-VK.spirv_assembly.instruction.compute.opudotaccsatkhr.small_packed_us_v4i8_out16 +dEQP-VK.spirv_assembly.instruction.compute.opudotaccsatkhr.small_packed_us_v4i8_out8 +dEQP-VK.spirv_assembly.instruction.compute.opudotaccsatkhr.small_packed_uu_v4i8_out32 +dEQP-VK.spirv_assembly.instruction.compute.opudotaccsatkhr.small_packed_uu_v4i8_out16 +dEQP-VK.spirv_assembly.instruction.compute.opudotaccsatkhr.small_packed_uu_v4i8_out8 +dEQP-VK.spirv_assembly.instruction.compute.opudotaccsatkhr.all_uu_v2i16_out32 +dEQP-VK.spirv_assembly.instruction.compute.opudotaccsatkhr.all_uu_v2i16_out16 +dEQP-VK.spirv_assembly.instruction.compute.opudotaccsatkhr.all_us_v2i16_out32 +dEQP-VK.spirv_assembly.instruction.compute.opudotaccsatkhr.all_us_v2i16_out16 +dEQP-VK.spirv_assembly.instruction.compute.opudotaccsatkhr.all_su_v2i16_out32 +dEQP-VK.spirv_assembly.instruction.compute.opudotaccsatkhr.all_su_v2i16_out16 +dEQP-VK.spirv_assembly.instruction.compute.opudotaccsatkhr.all_ss_v2i16_out32 +dEQP-VK.spirv_assembly.instruction.compute.opudotaccsatkhr.all_ss_v2i16_out16 +dEQP-VK.spirv_assembly.instruction.compute.opudotaccsatkhr.all_uu_v3i16_out32 +dEQP-VK.spirv_assembly.instruction.compute.opudotaccsatkhr.all_uu_v3i16_out16 +dEQP-VK.spirv_assembly.instruction.compute.opudotaccsatkhr.all_us_v3i16_out32 +dEQP-VK.spirv_assembly.instruction.compute.opudotaccsatkhr.all_us_v3i16_out16 +dEQP-VK.spirv_assembly.instruction.compute.opudotaccsatkhr.all_su_v3i16_out32 +dEQP-VK.spirv_assembly.instruction.compute.opudotaccsatkhr.all_su_v3i16_out16 +dEQP-VK.spirv_assembly.instruction.compute.opudotaccsatkhr.all_ss_v3i16_out32 +dEQP-VK.spirv_assembly.instruction.compute.opudotaccsatkhr.all_ss_v3i16_out16 +dEQP-VK.spirv_assembly.instruction.compute.opudotaccsatkhr.all_uu_v4i16_out32 +dEQP-VK.spirv_assembly.instruction.compute.opudotaccsatkhr.all_uu_v4i16_out16 +dEQP-VK.spirv_assembly.instruction.compute.opudotaccsatkhr.all_us_v4i16_out32 +dEQP-VK.spirv_assembly.instruction.compute.opudotaccsatkhr.all_us_v4i16_out16 +dEQP-VK.spirv_assembly.instruction.compute.opudotaccsatkhr.all_su_v4i16_out32 +dEQP-VK.spirv_assembly.instruction.compute.opudotaccsatkhr.all_su_v4i16_out16 +dEQP-VK.spirv_assembly.instruction.compute.opudotaccsatkhr.all_ss_v4i16_out32 +dEQP-VK.spirv_assembly.instruction.compute.opudotaccsatkhr.all_ss_v4i16_out16 +dEQP-VK.spirv_assembly.instruction.compute.opudotaccsatkhr.limits_uu_v2i16_out32 +dEQP-VK.spirv_assembly.instruction.compute.opudotaccsatkhr.limits_uu_v2i16_out16 +dEQP-VK.spirv_assembly.instruction.compute.opudotaccsatkhr.limits_us_v2i16_out32 +dEQP-VK.spirv_assembly.instruction.compute.opudotaccsatkhr.limits_us_v2i16_out16 +dEQP-VK.spirv_assembly.instruction.compute.opudotaccsatkhr.limits_su_v2i16_out32 +dEQP-VK.spirv_assembly.instruction.compute.opudotaccsatkhr.limits_su_v2i16_out16 +dEQP-VK.spirv_assembly.instruction.compute.opudotaccsatkhr.limits_ss_v2i16_out32 +dEQP-VK.spirv_assembly.instruction.compute.opudotaccsatkhr.limits_ss_v2i16_out16 +dEQP-VK.spirv_assembly.instruction.compute.opudotaccsatkhr.limits_uu_v3i16_out32 +dEQP-VK.spirv_assembly.instruction.compute.opudotaccsatkhr.limits_uu_v3i16_out16 +dEQP-VK.spirv_assembly.instruction.compute.opudotaccsatkhr.limits_us_v3i16_out32 +dEQP-VK.spirv_assembly.instruction.compute.opudotaccsatkhr.limits_us_v3i16_out16 +dEQP-VK.spirv_assembly.instruction.compute.opudotaccsatkhr.limits_su_v3i16_out32 +dEQP-VK.spirv_assembly.instruction.compute.opudotaccsatkhr.limits_su_v3i16_out16 +dEQP-VK.spirv_assembly.instruction.compute.opudotaccsatkhr.limits_ss_v3i16_out32 +dEQP-VK.spirv_assembly.instruction.compute.opudotaccsatkhr.limits_ss_v3i16_out16 +dEQP-VK.spirv_assembly.instruction.compute.opudotaccsatkhr.limits_uu_v4i16_out32 +dEQP-VK.spirv_assembly.instruction.compute.opudotaccsatkhr.limits_uu_v4i16_out16 +dEQP-VK.spirv_assembly.instruction.compute.opudotaccsatkhr.limits_us_v4i16_out32 +dEQP-VK.spirv_assembly.instruction.compute.opudotaccsatkhr.limits_us_v4i16_out16 +dEQP-VK.spirv_assembly.instruction.compute.opudotaccsatkhr.limits_su_v4i16_out32 +dEQP-VK.spirv_assembly.instruction.compute.opudotaccsatkhr.limits_su_v4i16_out16 +dEQP-VK.spirv_assembly.instruction.compute.opudotaccsatkhr.limits_ss_v4i16_out32 +dEQP-VK.spirv_assembly.instruction.compute.opudotaccsatkhr.limits_ss_v4i16_out16 +dEQP-VK.spirv_assembly.instruction.compute.opudotaccsatkhr.all_uu_v2i32_out32 +dEQP-VK.spirv_assembly.instruction.compute.opudotaccsatkhr.all_us_v2i32_out32 +dEQP-VK.spirv_assembly.instruction.compute.opudotaccsatkhr.all_su_v2i32_out32 +dEQP-VK.spirv_assembly.instruction.compute.opudotaccsatkhr.all_ss_v2i32_out32 +dEQP-VK.spirv_assembly.instruction.compute.opudotaccsatkhr.all_uu_v3i32_out32 +dEQP-VK.spirv_assembly.instruction.compute.opudotaccsatkhr.all_us_v3i32_out32 +dEQP-VK.spirv_assembly.instruction.compute.opudotaccsatkhr.all_su_v3i32_out32 +dEQP-VK.spirv_assembly.instruction.compute.opudotaccsatkhr.all_ss_v3i32_out32 +dEQP-VK.spirv_assembly.instruction.compute.opudotaccsatkhr.all_uu_v4i32_out32 +dEQP-VK.spirv_assembly.instruction.compute.opudotaccsatkhr.all_us_v4i32_out32 +dEQP-VK.spirv_assembly.instruction.compute.opudotaccsatkhr.all_su_v4i32_out32 +dEQP-VK.spirv_assembly.instruction.compute.opudotaccsatkhr.all_ss_v4i32_out32 +dEQP-VK.spirv_assembly.instruction.compute.opudotaccsatkhr.limits_uu_v2i32_out32 +dEQP-VK.spirv_assembly.instruction.compute.opudotaccsatkhr.limits_us_v2i32_out32 +dEQP-VK.spirv_assembly.instruction.compute.opudotaccsatkhr.limits_su_v2i32_out32 +dEQP-VK.spirv_assembly.instruction.compute.opudotaccsatkhr.limits_ss_v2i32_out32 +dEQP-VK.spirv_assembly.instruction.compute.opudotaccsatkhr.limits_uu_v3i32_out32 +dEQP-VK.spirv_assembly.instruction.compute.opudotaccsatkhr.limits_us_v3i32_out32 +dEQP-VK.spirv_assembly.instruction.compute.opudotaccsatkhr.limits_su_v3i32_out32 +dEQP-VK.spirv_assembly.instruction.compute.opudotaccsatkhr.limits_ss_v3i32_out32 +dEQP-VK.spirv_assembly.instruction.compute.opudotaccsatkhr.limits_uu_v4i32_out32 +dEQP-VK.spirv_assembly.instruction.compute.opudotaccsatkhr.limits_us_v4i32_out32 +dEQP-VK.spirv_assembly.instruction.compute.opudotaccsatkhr.limits_su_v4i32_out32 +dEQP-VK.spirv_assembly.instruction.compute.opudotaccsatkhr.limits_ss_v4i32_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsudotaccsatkhr.all_uu_v2i8_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsudotaccsatkhr.all_uu_v2i8_out16 +dEQP-VK.spirv_assembly.instruction.compute.opsudotaccsatkhr.all_uu_v2i8_out8 +dEQP-VK.spirv_assembly.instruction.compute.opsudotaccsatkhr.all_us_v2i8_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsudotaccsatkhr.all_us_v2i8_out16 +dEQP-VK.spirv_assembly.instruction.compute.opsudotaccsatkhr.all_us_v2i8_out8 +dEQP-VK.spirv_assembly.instruction.compute.opsudotaccsatkhr.all_su_v2i8_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsudotaccsatkhr.all_su_v2i8_out16 +dEQP-VK.spirv_assembly.instruction.compute.opsudotaccsatkhr.all_su_v2i8_out8 +dEQP-VK.spirv_assembly.instruction.compute.opsudotaccsatkhr.all_ss_v2i8_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsudotaccsatkhr.all_ss_v2i8_out16 +dEQP-VK.spirv_assembly.instruction.compute.opsudotaccsatkhr.all_ss_v2i8_out8 +dEQP-VK.spirv_assembly.instruction.compute.opsudotaccsatkhr.all_uu_v3i8_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsudotaccsatkhr.all_uu_v3i8_out16 +dEQP-VK.spirv_assembly.instruction.compute.opsudotaccsatkhr.all_uu_v3i8_out8 +dEQP-VK.spirv_assembly.instruction.compute.opsudotaccsatkhr.all_us_v3i8_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsudotaccsatkhr.all_us_v3i8_out16 +dEQP-VK.spirv_assembly.instruction.compute.opsudotaccsatkhr.all_us_v3i8_out8 +dEQP-VK.spirv_assembly.instruction.compute.opsudotaccsatkhr.all_su_v3i8_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsudotaccsatkhr.all_su_v3i8_out16 +dEQP-VK.spirv_assembly.instruction.compute.opsudotaccsatkhr.all_su_v3i8_out8 +dEQP-VK.spirv_assembly.instruction.compute.opsudotaccsatkhr.all_ss_v3i8_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsudotaccsatkhr.all_ss_v3i8_out16 +dEQP-VK.spirv_assembly.instruction.compute.opsudotaccsatkhr.all_ss_v3i8_out8 +dEQP-VK.spirv_assembly.instruction.compute.opsudotaccsatkhr.all_uu_v4i8_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsudotaccsatkhr.all_uu_v4i8_out16 +dEQP-VK.spirv_assembly.instruction.compute.opsudotaccsatkhr.all_uu_v4i8_out8 +dEQP-VK.spirv_assembly.instruction.compute.opsudotaccsatkhr.all_us_v4i8_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsudotaccsatkhr.all_us_v4i8_out16 +dEQP-VK.spirv_assembly.instruction.compute.opsudotaccsatkhr.all_us_v4i8_out8 +dEQP-VK.spirv_assembly.instruction.compute.opsudotaccsatkhr.all_su_v4i8_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsudotaccsatkhr.all_su_v4i8_out16 +dEQP-VK.spirv_assembly.instruction.compute.opsudotaccsatkhr.all_su_v4i8_out8 +dEQP-VK.spirv_assembly.instruction.compute.opsudotaccsatkhr.all_ss_v4i8_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsudotaccsatkhr.all_ss_v4i8_out16 +dEQP-VK.spirv_assembly.instruction.compute.opsudotaccsatkhr.all_ss_v4i8_out8 +dEQP-VK.spirv_assembly.instruction.compute.opsudotaccsatkhr.all_packed_ss_v4i8_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsudotaccsatkhr.all_packed_ss_v4i8_out16 +dEQP-VK.spirv_assembly.instruction.compute.opsudotaccsatkhr.all_packed_ss_v4i8_out8 +dEQP-VK.spirv_assembly.instruction.compute.opsudotaccsatkhr.all_packed_su_v4i8_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsudotaccsatkhr.all_packed_su_v4i8_out16 +dEQP-VK.spirv_assembly.instruction.compute.opsudotaccsatkhr.all_packed_su_v4i8_out8 +dEQP-VK.spirv_assembly.instruction.compute.opsudotaccsatkhr.all_packed_us_v4i8_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsudotaccsatkhr.all_packed_us_v4i8_out16 +dEQP-VK.spirv_assembly.instruction.compute.opsudotaccsatkhr.all_packed_us_v4i8_out8 +dEQP-VK.spirv_assembly.instruction.compute.opsudotaccsatkhr.all_packed_uu_v4i8_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsudotaccsatkhr.all_packed_uu_v4i8_out16 +dEQP-VK.spirv_assembly.instruction.compute.opsudotaccsatkhr.all_packed_uu_v4i8_out8 +dEQP-VK.spirv_assembly.instruction.compute.opsudotaccsatkhr.limits_uu_v2i8_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsudotaccsatkhr.limits_uu_v2i8_out16 +dEQP-VK.spirv_assembly.instruction.compute.opsudotaccsatkhr.limits_uu_v2i8_out8 +dEQP-VK.spirv_assembly.instruction.compute.opsudotaccsatkhr.limits_us_v2i8_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsudotaccsatkhr.limits_us_v2i8_out16 +dEQP-VK.spirv_assembly.instruction.compute.opsudotaccsatkhr.limits_us_v2i8_out8 +dEQP-VK.spirv_assembly.instruction.compute.opsudotaccsatkhr.limits_su_v2i8_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsudotaccsatkhr.limits_su_v2i8_out16 +dEQP-VK.spirv_assembly.instruction.compute.opsudotaccsatkhr.limits_su_v2i8_out8 +dEQP-VK.spirv_assembly.instruction.compute.opsudotaccsatkhr.limits_ss_v2i8_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsudotaccsatkhr.limits_ss_v2i8_out16 +dEQP-VK.spirv_assembly.instruction.compute.opsudotaccsatkhr.limits_ss_v2i8_out8 +dEQP-VK.spirv_assembly.instruction.compute.opsudotaccsatkhr.limits_uu_v3i8_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsudotaccsatkhr.limits_uu_v3i8_out16 +dEQP-VK.spirv_assembly.instruction.compute.opsudotaccsatkhr.limits_uu_v3i8_out8 +dEQP-VK.spirv_assembly.instruction.compute.opsudotaccsatkhr.limits_us_v3i8_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsudotaccsatkhr.limits_us_v3i8_out16 +dEQP-VK.spirv_assembly.instruction.compute.opsudotaccsatkhr.limits_us_v3i8_out8 +dEQP-VK.spirv_assembly.instruction.compute.opsudotaccsatkhr.limits_su_v3i8_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsudotaccsatkhr.limits_su_v3i8_out16 +dEQP-VK.spirv_assembly.instruction.compute.opsudotaccsatkhr.limits_su_v3i8_out8 +dEQP-VK.spirv_assembly.instruction.compute.opsudotaccsatkhr.limits_ss_v3i8_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsudotaccsatkhr.limits_ss_v3i8_out16 +dEQP-VK.spirv_assembly.instruction.compute.opsudotaccsatkhr.limits_ss_v3i8_out8 +dEQP-VK.spirv_assembly.instruction.compute.opsudotaccsatkhr.limits_uu_v4i8_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsudotaccsatkhr.limits_uu_v4i8_out16 +dEQP-VK.spirv_assembly.instruction.compute.opsudotaccsatkhr.limits_uu_v4i8_out8 +dEQP-VK.spirv_assembly.instruction.compute.opsudotaccsatkhr.limits_us_v4i8_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsudotaccsatkhr.limits_us_v4i8_out16 +dEQP-VK.spirv_assembly.instruction.compute.opsudotaccsatkhr.limits_us_v4i8_out8 +dEQP-VK.spirv_assembly.instruction.compute.opsudotaccsatkhr.limits_su_v4i8_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsudotaccsatkhr.limits_su_v4i8_out16 +dEQP-VK.spirv_assembly.instruction.compute.opsudotaccsatkhr.limits_su_v4i8_out8 +dEQP-VK.spirv_assembly.instruction.compute.opsudotaccsatkhr.limits_ss_v4i8_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsudotaccsatkhr.limits_ss_v4i8_out16 +dEQP-VK.spirv_assembly.instruction.compute.opsudotaccsatkhr.limits_ss_v4i8_out8 +dEQP-VK.spirv_assembly.instruction.compute.opsudotaccsatkhr.limits_packed_ss_v4i8_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsudotaccsatkhr.limits_packed_ss_v4i8_out16 +dEQP-VK.spirv_assembly.instruction.compute.opsudotaccsatkhr.limits_packed_ss_v4i8_out8 +dEQP-VK.spirv_assembly.instruction.compute.opsudotaccsatkhr.limits_packed_su_v4i8_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsudotaccsatkhr.limits_packed_su_v4i8_out16 +dEQP-VK.spirv_assembly.instruction.compute.opsudotaccsatkhr.limits_packed_su_v4i8_out8 +dEQP-VK.spirv_assembly.instruction.compute.opsudotaccsatkhr.limits_packed_us_v4i8_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsudotaccsatkhr.limits_packed_us_v4i8_out16 +dEQP-VK.spirv_assembly.instruction.compute.opsudotaccsatkhr.limits_packed_us_v4i8_out8 +dEQP-VK.spirv_assembly.instruction.compute.opsudotaccsatkhr.limits_packed_uu_v4i8_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsudotaccsatkhr.limits_packed_uu_v4i8_out16 +dEQP-VK.spirv_assembly.instruction.compute.opsudotaccsatkhr.limits_packed_uu_v4i8_out8 +dEQP-VK.spirv_assembly.instruction.compute.opsudotaccsatkhr.limits-neg_uu_v2i8_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsudotaccsatkhr.limits-neg_uu_v2i8_out16 +dEQP-VK.spirv_assembly.instruction.compute.opsudotaccsatkhr.limits-neg_uu_v2i8_out8 +dEQP-VK.spirv_assembly.instruction.compute.opsudotaccsatkhr.limits-neg_us_v2i8_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsudotaccsatkhr.limits-neg_us_v2i8_out16 +dEQP-VK.spirv_assembly.instruction.compute.opsudotaccsatkhr.limits-neg_us_v2i8_out8 +dEQP-VK.spirv_assembly.instruction.compute.opsudotaccsatkhr.limits-neg_su_v2i8_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsudotaccsatkhr.limits-neg_su_v2i8_out16 +dEQP-VK.spirv_assembly.instruction.compute.opsudotaccsatkhr.limits-neg_su_v2i8_out8 +dEQP-VK.spirv_assembly.instruction.compute.opsudotaccsatkhr.limits-neg_ss_v2i8_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsudotaccsatkhr.limits-neg_ss_v2i8_out16 +dEQP-VK.spirv_assembly.instruction.compute.opsudotaccsatkhr.limits-neg_ss_v2i8_out8 +dEQP-VK.spirv_assembly.instruction.compute.opsudotaccsatkhr.limits-neg_uu_v3i8_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsudotaccsatkhr.limits-neg_uu_v3i8_out16 +dEQP-VK.spirv_assembly.instruction.compute.opsudotaccsatkhr.limits-neg_uu_v3i8_out8 +dEQP-VK.spirv_assembly.instruction.compute.opsudotaccsatkhr.limits-neg_us_v3i8_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsudotaccsatkhr.limits-neg_us_v3i8_out16 +dEQP-VK.spirv_assembly.instruction.compute.opsudotaccsatkhr.limits-neg_us_v3i8_out8 +dEQP-VK.spirv_assembly.instruction.compute.opsudotaccsatkhr.limits-neg_su_v3i8_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsudotaccsatkhr.limits-neg_su_v3i8_out16 +dEQP-VK.spirv_assembly.instruction.compute.opsudotaccsatkhr.limits-neg_su_v3i8_out8 +dEQP-VK.spirv_assembly.instruction.compute.opsudotaccsatkhr.limits-neg_ss_v3i8_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsudotaccsatkhr.limits-neg_ss_v3i8_out16 +dEQP-VK.spirv_assembly.instruction.compute.opsudotaccsatkhr.limits-neg_ss_v3i8_out8 +dEQP-VK.spirv_assembly.instruction.compute.opsudotaccsatkhr.limits-neg_uu_v4i8_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsudotaccsatkhr.limits-neg_uu_v4i8_out16 +dEQP-VK.spirv_assembly.instruction.compute.opsudotaccsatkhr.limits-neg_uu_v4i8_out8 +dEQP-VK.spirv_assembly.instruction.compute.opsudotaccsatkhr.limits-neg_us_v4i8_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsudotaccsatkhr.limits-neg_us_v4i8_out16 +dEQP-VK.spirv_assembly.instruction.compute.opsudotaccsatkhr.limits-neg_us_v4i8_out8 +dEQP-VK.spirv_assembly.instruction.compute.opsudotaccsatkhr.limits-neg_su_v4i8_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsudotaccsatkhr.limits-neg_su_v4i8_out16 +dEQP-VK.spirv_assembly.instruction.compute.opsudotaccsatkhr.limits-neg_su_v4i8_out8 +dEQP-VK.spirv_assembly.instruction.compute.opsudotaccsatkhr.limits-neg_ss_v4i8_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsudotaccsatkhr.limits-neg_ss_v4i8_out16 +dEQP-VK.spirv_assembly.instruction.compute.opsudotaccsatkhr.limits-neg_ss_v4i8_out8 +dEQP-VK.spirv_assembly.instruction.compute.opsudotaccsatkhr.limits-neg_packed_ss_v4i8_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsudotaccsatkhr.limits-neg_packed_ss_v4i8_out16 +dEQP-VK.spirv_assembly.instruction.compute.opsudotaccsatkhr.limits-neg_packed_ss_v4i8_out8 +dEQP-VK.spirv_assembly.instruction.compute.opsudotaccsatkhr.limits-neg_packed_su_v4i8_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsudotaccsatkhr.limits-neg_packed_su_v4i8_out16 +dEQP-VK.spirv_assembly.instruction.compute.opsudotaccsatkhr.limits-neg_packed_su_v4i8_out8 +dEQP-VK.spirv_assembly.instruction.compute.opsudotaccsatkhr.limits-neg_packed_us_v4i8_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsudotaccsatkhr.limits-neg_packed_us_v4i8_out16 +dEQP-VK.spirv_assembly.instruction.compute.opsudotaccsatkhr.limits-neg_packed_us_v4i8_out8 +dEQP-VK.spirv_assembly.instruction.compute.opsudotaccsatkhr.limits-neg_packed_uu_v4i8_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsudotaccsatkhr.limits-neg_packed_uu_v4i8_out16 +dEQP-VK.spirv_assembly.instruction.compute.opsudotaccsatkhr.limits-neg_packed_uu_v4i8_out8 +dEQP-VK.spirv_assembly.instruction.compute.opsudotaccsatkhr.small_uu_v2i8_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsudotaccsatkhr.small_uu_v2i8_out16 +dEQP-VK.spirv_assembly.instruction.compute.opsudotaccsatkhr.small_uu_v2i8_out8 +dEQP-VK.spirv_assembly.instruction.compute.opsudotaccsatkhr.small_us_v2i8_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsudotaccsatkhr.small_us_v2i8_out16 +dEQP-VK.spirv_assembly.instruction.compute.opsudotaccsatkhr.small_us_v2i8_out8 +dEQP-VK.spirv_assembly.instruction.compute.opsudotaccsatkhr.small_su_v2i8_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsudotaccsatkhr.small_su_v2i8_out16 +dEQP-VK.spirv_assembly.instruction.compute.opsudotaccsatkhr.small_su_v2i8_out8 +dEQP-VK.spirv_assembly.instruction.compute.opsudotaccsatkhr.small_ss_v2i8_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsudotaccsatkhr.small_ss_v2i8_out16 +dEQP-VK.spirv_assembly.instruction.compute.opsudotaccsatkhr.small_ss_v2i8_out8 +dEQP-VK.spirv_assembly.instruction.compute.opsudotaccsatkhr.small_uu_v3i8_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsudotaccsatkhr.small_uu_v3i8_out16 +dEQP-VK.spirv_assembly.instruction.compute.opsudotaccsatkhr.small_uu_v3i8_out8 +dEQP-VK.spirv_assembly.instruction.compute.opsudotaccsatkhr.small_us_v3i8_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsudotaccsatkhr.small_us_v3i8_out16 +dEQP-VK.spirv_assembly.instruction.compute.opsudotaccsatkhr.small_us_v3i8_out8 +dEQP-VK.spirv_assembly.instruction.compute.opsudotaccsatkhr.small_su_v3i8_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsudotaccsatkhr.small_su_v3i8_out16 +dEQP-VK.spirv_assembly.instruction.compute.opsudotaccsatkhr.small_su_v3i8_out8 +dEQP-VK.spirv_assembly.instruction.compute.opsudotaccsatkhr.small_ss_v3i8_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsudotaccsatkhr.small_ss_v3i8_out16 +dEQP-VK.spirv_assembly.instruction.compute.opsudotaccsatkhr.small_ss_v3i8_out8 +dEQP-VK.spirv_assembly.instruction.compute.opsudotaccsatkhr.small_uu_v4i8_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsudotaccsatkhr.small_uu_v4i8_out16 +dEQP-VK.spirv_assembly.instruction.compute.opsudotaccsatkhr.small_uu_v4i8_out8 +dEQP-VK.spirv_assembly.instruction.compute.opsudotaccsatkhr.small_us_v4i8_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsudotaccsatkhr.small_us_v4i8_out16 +dEQP-VK.spirv_assembly.instruction.compute.opsudotaccsatkhr.small_us_v4i8_out8 +dEQP-VK.spirv_assembly.instruction.compute.opsudotaccsatkhr.small_su_v4i8_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsudotaccsatkhr.small_su_v4i8_out16 +dEQP-VK.spirv_assembly.instruction.compute.opsudotaccsatkhr.small_su_v4i8_out8 +dEQP-VK.spirv_assembly.instruction.compute.opsudotaccsatkhr.small_ss_v4i8_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsudotaccsatkhr.small_ss_v4i8_out16 +dEQP-VK.spirv_assembly.instruction.compute.opsudotaccsatkhr.small_ss_v4i8_out8 +dEQP-VK.spirv_assembly.instruction.compute.opsudotaccsatkhr.small_packed_ss_v4i8_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsudotaccsatkhr.small_packed_ss_v4i8_out16 +dEQP-VK.spirv_assembly.instruction.compute.opsudotaccsatkhr.small_packed_ss_v4i8_out8 +dEQP-VK.spirv_assembly.instruction.compute.opsudotaccsatkhr.small_packed_su_v4i8_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsudotaccsatkhr.small_packed_su_v4i8_out16 +dEQP-VK.spirv_assembly.instruction.compute.opsudotaccsatkhr.small_packed_su_v4i8_out8 +dEQP-VK.spirv_assembly.instruction.compute.opsudotaccsatkhr.small_packed_us_v4i8_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsudotaccsatkhr.small_packed_us_v4i8_out16 +dEQP-VK.spirv_assembly.instruction.compute.opsudotaccsatkhr.small_packed_us_v4i8_out8 +dEQP-VK.spirv_assembly.instruction.compute.opsudotaccsatkhr.small_packed_uu_v4i8_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsudotaccsatkhr.small_packed_uu_v4i8_out16 +dEQP-VK.spirv_assembly.instruction.compute.opsudotaccsatkhr.small_packed_uu_v4i8_out8 +dEQP-VK.spirv_assembly.instruction.compute.opsudotaccsatkhr.all_uu_v2i16_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsudotaccsatkhr.all_uu_v2i16_out16 +dEQP-VK.spirv_assembly.instruction.compute.opsudotaccsatkhr.all_us_v2i16_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsudotaccsatkhr.all_us_v2i16_out16 +dEQP-VK.spirv_assembly.instruction.compute.opsudotaccsatkhr.all_su_v2i16_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsudotaccsatkhr.all_su_v2i16_out16 +dEQP-VK.spirv_assembly.instruction.compute.opsudotaccsatkhr.all_ss_v2i16_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsudotaccsatkhr.all_ss_v2i16_out16 +dEQP-VK.spirv_assembly.instruction.compute.opsudotaccsatkhr.all_uu_v3i16_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsudotaccsatkhr.all_uu_v3i16_out16 +dEQP-VK.spirv_assembly.instruction.compute.opsudotaccsatkhr.all_us_v3i16_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsudotaccsatkhr.all_us_v3i16_out16 +dEQP-VK.spirv_assembly.instruction.compute.opsudotaccsatkhr.all_su_v3i16_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsudotaccsatkhr.all_su_v3i16_out16 +dEQP-VK.spirv_assembly.instruction.compute.opsudotaccsatkhr.all_ss_v3i16_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsudotaccsatkhr.all_ss_v3i16_out16 +dEQP-VK.spirv_assembly.instruction.compute.opsudotaccsatkhr.all_uu_v4i16_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsudotaccsatkhr.all_uu_v4i16_out16 +dEQP-VK.spirv_assembly.instruction.compute.opsudotaccsatkhr.all_us_v4i16_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsudotaccsatkhr.all_us_v4i16_out16 +dEQP-VK.spirv_assembly.instruction.compute.opsudotaccsatkhr.all_su_v4i16_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsudotaccsatkhr.all_su_v4i16_out16 +dEQP-VK.spirv_assembly.instruction.compute.opsudotaccsatkhr.all_ss_v4i16_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsudotaccsatkhr.all_ss_v4i16_out16 +dEQP-VK.spirv_assembly.instruction.compute.opsudotaccsatkhr.limits_uu_v2i16_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsudotaccsatkhr.limits_uu_v2i16_out16 +dEQP-VK.spirv_assembly.instruction.compute.opsudotaccsatkhr.limits_us_v2i16_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsudotaccsatkhr.limits_us_v2i16_out16 +dEQP-VK.spirv_assembly.instruction.compute.opsudotaccsatkhr.limits_su_v2i16_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsudotaccsatkhr.limits_su_v2i16_out16 +dEQP-VK.spirv_assembly.instruction.compute.opsudotaccsatkhr.limits_ss_v2i16_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsudotaccsatkhr.limits_ss_v2i16_out16 +dEQP-VK.spirv_assembly.instruction.compute.opsudotaccsatkhr.limits_uu_v3i16_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsudotaccsatkhr.limits_uu_v3i16_out16 +dEQP-VK.spirv_assembly.instruction.compute.opsudotaccsatkhr.limits_us_v3i16_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsudotaccsatkhr.limits_us_v3i16_out16 +dEQP-VK.spirv_assembly.instruction.compute.opsudotaccsatkhr.limits_su_v3i16_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsudotaccsatkhr.limits_su_v3i16_out16 +dEQP-VK.spirv_assembly.instruction.compute.opsudotaccsatkhr.limits_ss_v3i16_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsudotaccsatkhr.limits_ss_v3i16_out16 +dEQP-VK.spirv_assembly.instruction.compute.opsudotaccsatkhr.limits_uu_v4i16_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsudotaccsatkhr.limits_uu_v4i16_out16 +dEQP-VK.spirv_assembly.instruction.compute.opsudotaccsatkhr.limits_us_v4i16_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsudotaccsatkhr.limits_us_v4i16_out16 +dEQP-VK.spirv_assembly.instruction.compute.opsudotaccsatkhr.limits_su_v4i16_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsudotaccsatkhr.limits_su_v4i16_out16 +dEQP-VK.spirv_assembly.instruction.compute.opsudotaccsatkhr.limits_ss_v4i16_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsudotaccsatkhr.limits_ss_v4i16_out16 +dEQP-VK.spirv_assembly.instruction.compute.opsudotaccsatkhr.limits-neg_uu_v2i16_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsudotaccsatkhr.limits-neg_uu_v2i16_out16 +dEQP-VK.spirv_assembly.instruction.compute.opsudotaccsatkhr.limits-neg_us_v2i16_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsudotaccsatkhr.limits-neg_us_v2i16_out16 +dEQP-VK.spirv_assembly.instruction.compute.opsudotaccsatkhr.limits-neg_su_v2i16_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsudotaccsatkhr.limits-neg_su_v2i16_out16 +dEQP-VK.spirv_assembly.instruction.compute.opsudotaccsatkhr.limits-neg_ss_v2i16_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsudotaccsatkhr.limits-neg_ss_v2i16_out16 +dEQP-VK.spirv_assembly.instruction.compute.opsudotaccsatkhr.limits-neg_uu_v3i16_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsudotaccsatkhr.limits-neg_uu_v3i16_out16 +dEQP-VK.spirv_assembly.instruction.compute.opsudotaccsatkhr.limits-neg_us_v3i16_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsudotaccsatkhr.limits-neg_us_v3i16_out16 +dEQP-VK.spirv_assembly.instruction.compute.opsudotaccsatkhr.limits-neg_su_v3i16_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsudotaccsatkhr.limits-neg_su_v3i16_out16 +dEQP-VK.spirv_assembly.instruction.compute.opsudotaccsatkhr.limits-neg_ss_v3i16_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsudotaccsatkhr.limits-neg_ss_v3i16_out16 +dEQP-VK.spirv_assembly.instruction.compute.opsudotaccsatkhr.limits-neg_uu_v4i16_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsudotaccsatkhr.limits-neg_uu_v4i16_out16 +dEQP-VK.spirv_assembly.instruction.compute.opsudotaccsatkhr.limits-neg_us_v4i16_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsudotaccsatkhr.limits-neg_us_v4i16_out16 +dEQP-VK.spirv_assembly.instruction.compute.opsudotaccsatkhr.limits-neg_su_v4i16_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsudotaccsatkhr.limits-neg_su_v4i16_out16 +dEQP-VK.spirv_assembly.instruction.compute.opsudotaccsatkhr.limits-neg_ss_v4i16_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsudotaccsatkhr.limits-neg_ss_v4i16_out16 +dEQP-VK.spirv_assembly.instruction.compute.opsudotaccsatkhr.all_uu_v2i32_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsudotaccsatkhr.all_us_v2i32_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsudotaccsatkhr.all_su_v2i32_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsudotaccsatkhr.all_ss_v2i32_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsudotaccsatkhr.all_uu_v3i32_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsudotaccsatkhr.all_us_v3i32_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsudotaccsatkhr.all_su_v3i32_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsudotaccsatkhr.all_ss_v3i32_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsudotaccsatkhr.all_uu_v4i32_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsudotaccsatkhr.all_us_v4i32_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsudotaccsatkhr.all_su_v4i32_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsudotaccsatkhr.all_ss_v4i32_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsudotaccsatkhr.limits_uu_v2i32_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsudotaccsatkhr.limits_us_v2i32_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsudotaccsatkhr.limits_su_v2i32_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsudotaccsatkhr.limits_ss_v2i32_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsudotaccsatkhr.limits_uu_v3i32_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsudotaccsatkhr.limits_us_v3i32_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsudotaccsatkhr.limits_su_v3i32_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsudotaccsatkhr.limits_ss_v3i32_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsudotaccsatkhr.limits_uu_v4i32_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsudotaccsatkhr.limits_us_v4i32_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsudotaccsatkhr.limits_su_v4i32_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsudotaccsatkhr.limits_ss_v4i32_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsudotaccsatkhr.limits-neg_uu_v2i32_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsudotaccsatkhr.limits-neg_us_v2i32_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsudotaccsatkhr.limits-neg_su_v2i32_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsudotaccsatkhr.limits-neg_ss_v2i32_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsudotaccsatkhr.limits-neg_uu_v3i32_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsudotaccsatkhr.limits-neg_us_v3i32_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsudotaccsatkhr.limits-neg_su_v3i32_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsudotaccsatkhr.limits-neg_ss_v3i32_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsudotaccsatkhr.limits-neg_uu_v4i32_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsudotaccsatkhr.limits-neg_us_v4i32_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsudotaccsatkhr.limits-neg_su_v4i32_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsudotaccsatkhr.limits-neg_ss_v4i32_out32 dEQP-VK.spirv_assembly.instruction.compute.sconvert.int8_to_int16 dEQP-VK.spirv_assembly.instruction.compute.sconvert.int8_to_int32 dEQP-VK.spirv_assembly.instruction.compute.sconvert.int8_to_int64 diff --git a/external/vulkancts/framework/vulkan/vkBasicTypes.inl b/external/vulkancts/framework/vulkan/vkBasicTypes.inl index 6f03d79..29a1653 100644 --- a/external/vulkancts/framework/vulkan/vkBasicTypes.inl +++ b/external/vulkancts/framework/vulkan/vkBasicTypes.inl @@ -606,6 +606,8 @@ enum VkStructureType VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEVICE_GENERATED_COMMANDS_FEATURES_NV = 1000277007, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_INHERITED_VIEWPORT_SCISSOR_FEATURES_NV = 1000278000, VK_STRUCTURE_TYPE_COMMAND_BUFFER_INHERITANCE_VIEWPORT_SCISSOR_INFO_NV = 1000278001, + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_INTEGER_DOT_PRODUCT_FEATURES_KHR = 1000280000, + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_INTEGER_DOT_PRODUCT_PROPERTIES_KHR = 1000280001, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TEXEL_BUFFER_ALIGNMENT_FEATURES_EXT = 1000281000, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TEXEL_BUFFER_ALIGNMENT_PROPERTIES_EXT = 1000281001, VK_STRUCTURE_TYPE_COMMAND_BUFFER_INHERITANCE_RENDER_PASS_TRANSFORM_INFO_QCOM = 1000282000, @@ -4056,6 +4058,7 @@ VK_DEFINE_PLATFORM_TYPE(CAMetalLayer, void*) #define VK_KHR_BUFFER_DEVICE_ADDRESS_SPEC_VERSION 1 #define VK_KHR_DEFERRED_HOST_OPERATIONS_SPEC_VERSION 4 #define VK_KHR_PIPELINE_EXECUTABLE_PROPERTIES_SPEC_VERSION 1 +#define VK_KHR_SHADER_INTEGER_DOT_PRODUCT_SPEC_VERSION 1 #define VK_KHR_PIPELINE_LIBRARY_SPEC_VERSION 1 #define VK_KHR_SHADER_NON_SEMANTIC_INFO_SPEC_VERSION 1 #define VK_KHR_PRESENT_ID_SPEC_VERSION 1 diff --git a/external/vulkancts/framework/vulkan/vkDeviceExtensions.inl b/external/vulkancts/framework/vulkan/vkDeviceExtensions.inl index cfd915e..3d4ae5b 100644 --- a/external/vulkancts/framework/vulkan/vkDeviceExtensions.inl +++ b/external/vulkancts/framework/vulkan/vkDeviceExtensions.inl @@ -79,5 +79,6 @@ static const char* s_allowedDeviceKhrExtensions[] = "VK_KHR_shader_subgroup_uniform_control_flow", "VK_KHR_present_id", "VK_KHR_present_wait", + "VK_KHR_shader_integer_dot_product", }; diff --git a/external/vulkancts/framework/vulkan/vkDeviceFeatures.inl b/external/vulkancts/framework/vulkan/vkDeviceFeatures.inl index 4df3a93..1f75e06 100644 --- a/external/vulkancts/framework/vulkan/vkDeviceFeatures.inl +++ b/external/vulkancts/framework/vulkan/vkDeviceFeatures.inl @@ -77,6 +77,7 @@ namespace vk #define VK_KHR_SHADER_FLOAT16_INT8_EXTENSION_NAME "VK_KHR_shader_float16_int8" #define VK_EXT_SHADER_IMAGE_ATOMIC_INT64_EXTENSION_NAME "VK_EXT_shader_image_atomic_int64" #define VK_NV_SHADER_IMAGE_FOOTPRINT_EXTENSION_NAME "VK_NV_shader_image_footprint" +#define VK_KHR_SHADER_INTEGER_DOT_PRODUCT_EXTENSION_NAME "VK_KHR_shader_integer_dot_product" #define VK_INTEL_SHADER_INTEGER_FUNCTIONS_2_EXTENSION_NAME "VK_INTEL_shader_integer_functions2" #define VK_NV_SHADER_SM_BUILTINS_EXTENSION_NAME "VK_NV_shader_sm_builtins" #define VK_KHR_SHADER_SUBGROUP_EXTENDED_TYPES_EXTENSION_NAME "VK_KHR_shader_subgroup_extended_types" @@ -218,6 +219,7 @@ template<> void initFeatureFromBlob void initFeatureFromBlob(VkPhysicalDeviceFragmentShadingRateFeaturesKHR&, const AllFeaturesBlobs&) {} template<> void initFeatureFromBlob(VkPhysicalDevicePresentWaitFeaturesKHR&, const AllFeaturesBlobs&) {} template<> void initFeatureFromBlob(VkPhysicalDevicePipelineExecutablePropertiesFeaturesKHR&, const AllFeaturesBlobs&) {} +template<> void initFeatureFromBlob(VkPhysicalDeviceShaderIntegerDotProductFeaturesKHR&, const AllFeaturesBlobs&) {} template<> void initFeatureFromBlob(VkPhysicalDevicePresentIdFeaturesKHR&, const AllFeaturesBlobs&) {} template<> void initFeatureFromBlob(VkPhysicalDeviceSynchronization2FeaturesKHR&, const AllFeaturesBlobs&) {} template<> void initFeatureFromBlob(VkPhysicalDeviceShaderSubgroupUniformControlFlowFeaturesKHR&, const AllFeaturesBlobs&) {} @@ -289,78 +291,79 @@ template<> void initFeatureFromBlob(VkPhysi template<> void initFeatureFromBlob(VkPhysicalDevicePortabilitySubsetFeaturesKHR&, const AllFeaturesBlobs&) {} -template<> FeatureDesc makeFeatureDesc(void) { return FeatureDesc{VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_16BIT_STORAGE_FEATURES, VK_KHR_16BIT_STORAGE_EXTENSION_NAME, VK_KHR_16BIT_STORAGE_SPEC_VERSION, 94}; } -template<> FeatureDesc makeFeatureDesc(void) { return FeatureDesc{VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_4444_FORMATS_FEATURES_EXT, VK_EXT_4444_FORMATS_EXTENSION_NAME, VK_EXT_4444_FORMATS_SPEC_VERSION, 93}; } -template<> FeatureDesc makeFeatureDesc(void) { return FeatureDesc{VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_8BIT_STORAGE_FEATURES, VK_KHR_8BIT_STORAGE_EXTENSION_NAME, VK_KHR_8BIT_STORAGE_SPEC_VERSION, 92}; } -template<> FeatureDesc makeFeatureDesc(void) { return FeatureDesc{VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ACCELERATION_STRUCTURE_FEATURES_KHR, VK_KHR_ACCELERATION_STRUCTURE_EXTENSION_NAME, VK_KHR_ACCELERATION_STRUCTURE_SPEC_VERSION, 91}; } -template<> FeatureDesc makeFeatureDesc(void) { return FeatureDesc{VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ASTC_DECODE_FEATURES_EXT, VK_EXT_ASTC_DECODE_MODE_EXTENSION_NAME, VK_EXT_ASTC_DECODE_MODE_SPEC_VERSION, 90}; } -template<> FeatureDesc makeFeatureDesc(void) { return FeatureDesc{VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_BLEND_OPERATION_ADVANCED_FEATURES_EXT, VK_EXT_BLEND_OPERATION_ADVANCED_EXTENSION_NAME, VK_EXT_BLEND_OPERATION_ADVANCED_SPEC_VERSION, 89}; } -template<> FeatureDesc makeFeatureDesc(void) { return FeatureDesc{VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_BUFFER_DEVICE_ADDRESS_FEATURES, VK_KHR_BUFFER_DEVICE_ADDRESS_EXTENSION_NAME, VK_KHR_BUFFER_DEVICE_ADDRESS_SPEC_VERSION, 88}; } -template<> FeatureDesc makeFeatureDesc(void) { return FeatureDesc{VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_BUFFER_DEVICE_ADDRESS_FEATURES_EXT, VK_EXT_BUFFER_DEVICE_ADDRESS_EXTENSION_NAME, VK_EXT_BUFFER_DEVICE_ADDRESS_SPEC_VERSION, 87}; } -template<> FeatureDesc makeFeatureDesc(void) { return FeatureDesc{VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COHERENT_MEMORY_FEATURES_AMD, DECL_AMD_COHERENT_MEMORY_EXTENSION_NAME, 0, 86}; } -template<> FeatureDesc makeFeatureDesc(void) { return FeatureDesc{VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COLOR_WRITE_ENABLE_FEATURES_EXT, VK_EXT_COLOR_WRITE_ENABLE_EXTENSION_NAME, VK_EXT_COLOR_WRITE_ENABLE_SPEC_VERSION, 85}; } -template<> FeatureDesc makeFeatureDesc(void) { return FeatureDesc{VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COMPUTE_SHADER_DERIVATIVES_FEATURES_NV, VK_NV_COMPUTE_SHADER_DERIVATIVES_EXTENSION_NAME, VK_NV_COMPUTE_SHADER_DERIVATIVES_SPEC_VERSION, 84}; } -template<> FeatureDesc makeFeatureDesc(void) { return FeatureDesc{VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CONDITIONAL_RENDERING_FEATURES_EXT, VK_EXT_CONDITIONAL_RENDERING_EXTENSION_NAME, VK_EXT_CONDITIONAL_RENDERING_SPEC_VERSION, 83}; } -template<> FeatureDesc makeFeatureDesc(void) { return FeatureDesc{VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COOPERATIVE_MATRIX_FEATURES_NV, VK_NV_COOPERATIVE_MATRIX_EXTENSION_NAME, VK_NV_COOPERATIVE_MATRIX_SPEC_VERSION, 82}; } -template<> FeatureDesc makeFeatureDesc(void) { return FeatureDesc{VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CORNER_SAMPLED_IMAGE_FEATURES_NV, VK_NV_CORNER_SAMPLED_IMAGE_EXTENSION_NAME, VK_NV_CORNER_SAMPLED_IMAGE_SPEC_VERSION, 81}; } -template<> FeatureDesc makeFeatureDesc(void) { return FeatureDesc{VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COVERAGE_REDUCTION_MODE_FEATURES_NV, VK_NV_COVERAGE_REDUCTION_MODE_EXTENSION_NAME, VK_NV_COVERAGE_REDUCTION_MODE_SPEC_VERSION, 80}; } -template<> FeatureDesc makeFeatureDesc(void) { return FeatureDesc{VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CUSTOM_BORDER_COLOR_FEATURES_EXT, VK_EXT_CUSTOM_BORDER_COLOR_EXTENSION_NAME, VK_EXT_CUSTOM_BORDER_COLOR_SPEC_VERSION, 79}; } -template<> FeatureDesc makeFeatureDesc(void) { return FeatureDesc{VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEDICATED_ALLOCATION_IMAGE_ALIASING_FEATURES_NV, VK_NV_DEDICATED_ALLOCATION_IMAGE_ALIASING_EXTENSION_NAME, VK_NV_DEDICATED_ALLOCATION_IMAGE_ALIASING_SPEC_VERSION, 78}; } -template<> FeatureDesc makeFeatureDesc(void) { return FeatureDesc{VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEPTH_CLIP_ENABLE_FEATURES_EXT, VK_EXT_DEPTH_CLIP_ENABLE_EXTENSION_NAME, VK_EXT_DEPTH_CLIP_ENABLE_SPEC_VERSION, 77}; } -template<> FeatureDesc makeFeatureDesc(void) { return FeatureDesc{VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_INDEXING_FEATURES, VK_EXT_DESCRIPTOR_INDEXING_EXTENSION_NAME, VK_EXT_DESCRIPTOR_INDEXING_SPEC_VERSION, 76}; } -template<> FeatureDesc makeFeatureDesc(void) { return FeatureDesc{VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEVICE_GENERATED_COMMANDS_FEATURES_NV, VK_NV_DEVICE_GENERATED_COMMANDS_EXTENSION_NAME, VK_NV_DEVICE_GENERATED_COMMANDS_SPEC_VERSION, 75}; } -template<> FeatureDesc makeFeatureDesc(void) { return FeatureDesc{VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEVICE_MEMORY_REPORT_FEATURES_EXT, VK_EXT_DEVICE_MEMORY_REPORT_EXTENSION_NAME, VK_EXT_DEVICE_MEMORY_REPORT_SPEC_VERSION, 74}; } -template<> FeatureDesc makeFeatureDesc(void) { return FeatureDesc{VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DIAGNOSTICS_CONFIG_FEATURES_NV, DECL_NV_DIAGNOSTICS_CONFIG_EXTENSION_NAME, 0, 73}; } -template<> FeatureDesc makeFeatureDesc(void) { return FeatureDesc{VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXCLUSIVE_SCISSOR_FEATURES_NV, VK_NV_SCISSOR_EXCLUSIVE_EXTENSION_NAME, VK_NV_SCISSOR_EXCLUSIVE_SPEC_VERSION, 72}; } -template<> FeatureDesc makeFeatureDesc(void) { return FeatureDesc{VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTENDED_DYNAMIC_STATE_FEATURES_EXT, VK_EXT_EXTENDED_DYNAMIC_STATE_EXTENSION_NAME, VK_EXT_EXTENDED_DYNAMIC_STATE_SPEC_VERSION, 71}; } -template<> FeatureDesc makeFeatureDesc(void) { return FeatureDesc{VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTENDED_DYNAMIC_STATE_2_FEATURES_EXT, VK_EXT_EXTENDED_DYNAMIC_STATE_2_EXTENSION_NAME, VK_EXT_EXTENDED_DYNAMIC_STATE_2_SPEC_VERSION, 70}; } -template<> FeatureDesc makeFeatureDesc(void) { return FeatureDesc{VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_MEMORY_RDMA_FEATURES_NV, VK_NV_EXTERNAL_MEMORY_RDMA_EXTENSION_NAME, VK_NV_EXTERNAL_MEMORY_RDMA_SPEC_VERSION, 69}; } -template<> FeatureDesc makeFeatureDesc(void) { return FeatureDesc{VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_FEATURES_EXT, VK_EXT_FRAGMENT_DENSITY_MAP_EXTENSION_NAME, VK_EXT_FRAGMENT_DENSITY_MAP_SPEC_VERSION, 68}; } -template<> FeatureDesc makeFeatureDesc(void) { return FeatureDesc{VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_2_FEATURES_EXT, VK_EXT_FRAGMENT_DENSITY_MAP_2_EXTENSION_NAME, VK_EXT_FRAGMENT_DENSITY_MAP_2_SPEC_VERSION, 67}; } -template<> FeatureDesc makeFeatureDesc(void) { return FeatureDesc{VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADER_BARYCENTRIC_FEATURES_NV, VK_NV_FRAGMENT_SHADER_BARYCENTRIC_EXTENSION_NAME, VK_NV_FRAGMENT_SHADER_BARYCENTRIC_SPEC_VERSION, 66}; } -template<> FeatureDesc makeFeatureDesc(void) { return FeatureDesc{VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADER_INTERLOCK_FEATURES_EXT, VK_EXT_FRAGMENT_SHADER_INTERLOCK_EXTENSION_NAME, VK_EXT_FRAGMENT_SHADER_INTERLOCK_SPEC_VERSION, 65}; } -template<> FeatureDesc makeFeatureDesc(void) { return FeatureDesc{VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADING_RATE_FEATURES_KHR, VK_KHR_FRAGMENT_SHADING_RATE_EXTENSION_NAME, VK_KHR_FRAGMENT_SHADING_RATE_SPEC_VERSION, 64}; } -template<> FeatureDesc makeFeatureDesc(void) { return FeatureDesc{VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADING_RATE_ENUMS_FEATURES_NV, VK_NV_FRAGMENT_SHADING_RATE_ENUMS_EXTENSION_NAME, VK_NV_FRAGMENT_SHADING_RATE_ENUMS_SPEC_VERSION, 63}; } -template<> FeatureDesc makeFeatureDesc(void) { return FeatureDesc{VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_GLOBAL_PRIORITY_QUERY_FEATURES_EXT, VK_EXT_GLOBAL_PRIORITY_QUERY_EXTENSION_NAME, VK_EXT_GLOBAL_PRIORITY_QUERY_SPEC_VERSION, 62}; } -template<> FeatureDesc makeFeatureDesc(void) { return FeatureDesc{VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_HOST_QUERY_RESET_FEATURES, VK_EXT_HOST_QUERY_RESET_EXTENSION_NAME, VK_EXT_HOST_QUERY_RESET_SPEC_VERSION, 61}; } -template<> FeatureDesc makeFeatureDesc(void) { return FeatureDesc{VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGELESS_FRAMEBUFFER_FEATURES, VK_KHR_IMAGELESS_FRAMEBUFFER_EXTENSION_NAME, VK_KHR_IMAGELESS_FRAMEBUFFER_SPEC_VERSION, 60}; } -template<> FeatureDesc makeFeatureDesc(void) { return FeatureDesc{VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_ROBUSTNESS_FEATURES_EXT, VK_EXT_IMAGE_ROBUSTNESS_EXTENSION_NAME, VK_EXT_IMAGE_ROBUSTNESS_SPEC_VERSION, 59}; } -template<> FeatureDesc makeFeatureDesc(void) { return FeatureDesc{VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_INDEX_TYPE_UINT8_FEATURES_EXT, VK_EXT_INDEX_TYPE_UINT8_EXTENSION_NAME, VK_EXT_INDEX_TYPE_UINT8_SPEC_VERSION, 58}; } -template<> FeatureDesc makeFeatureDesc(void) { return FeatureDesc{VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_INHERITED_VIEWPORT_SCISSOR_FEATURES_NV, VK_NV_INHERITED_VIEWPORT_SCISSOR_EXTENSION_NAME, VK_NV_INHERITED_VIEWPORT_SCISSOR_SPEC_VERSION, 57}; } -template<> FeatureDesc makeFeatureDesc(void) { return FeatureDesc{VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_INLINE_UNIFORM_BLOCK_FEATURES_EXT, VK_EXT_INLINE_UNIFORM_BLOCK_EXTENSION_NAME, VK_EXT_INLINE_UNIFORM_BLOCK_SPEC_VERSION, 56}; } -template<> FeatureDesc makeFeatureDesc(void) { return FeatureDesc{VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_INVOCATION_MASK_FEATURES_HUAWEI, VK_HUAWEI_INVOCATION_MASK_EXTENSION_NAME, VK_HUAWEI_INVOCATION_MASK_SPEC_VERSION, 55}; } -template<> FeatureDesc makeFeatureDesc(void) { return FeatureDesc{VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_LINE_RASTERIZATION_FEATURES_EXT, VK_EXT_LINE_RASTERIZATION_EXTENSION_NAME, VK_EXT_LINE_RASTERIZATION_SPEC_VERSION, 54}; } -template<> FeatureDesc makeFeatureDesc(void) { return FeatureDesc{VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MEMORY_PRIORITY_FEATURES_EXT, VK_EXT_MEMORY_PRIORITY_EXTENSION_NAME, VK_EXT_MEMORY_PRIORITY_SPEC_VERSION, 53}; } -template<> FeatureDesc makeFeatureDesc(void) { return FeatureDesc{VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MESH_SHADER_FEATURES_NV, VK_NV_MESH_SHADER_EXTENSION_NAME, VK_NV_MESH_SHADER_SPEC_VERSION, 52}; } -template<> FeatureDesc makeFeatureDesc(void) { return FeatureDesc{VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_FEATURES, VK_KHR_MULTIVIEW_EXTENSION_NAME, VK_KHR_MULTIVIEW_SPEC_VERSION, 51}; } -template<> FeatureDesc makeFeatureDesc(void) { return FeatureDesc{VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTI_DRAW_FEATURES_EXT, VK_EXT_MULTI_DRAW_EXTENSION_NAME, VK_EXT_MULTI_DRAW_SPEC_VERSION, 50}; } -template<> FeatureDesc makeFeatureDesc(void) { return FeatureDesc{VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MUTABLE_DESCRIPTOR_TYPE_FEATURES_VALVE, VK_VALVE_MUTABLE_DESCRIPTOR_TYPE_EXTENSION_NAME, VK_VALVE_MUTABLE_DESCRIPTOR_TYPE_SPEC_VERSION, 49}; } -template<> FeatureDesc makeFeatureDesc(void) { return FeatureDesc{VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PERFORMANCE_QUERY_FEATURES_KHR, VK_KHR_PERFORMANCE_QUERY_EXTENSION_NAME, VK_KHR_PERFORMANCE_QUERY_SPEC_VERSION, 48}; } -template<> FeatureDesc makeFeatureDesc(void) { return FeatureDesc{VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_CREATION_CACHE_CONTROL_FEATURES_EXT, VK_EXT_PIPELINE_CREATION_CACHE_CONTROL_EXTENSION_NAME, VK_EXT_PIPELINE_CREATION_CACHE_CONTROL_SPEC_VERSION, 47}; } -template<> FeatureDesc makeFeatureDesc(void) { return FeatureDesc{VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_EXECUTABLE_PROPERTIES_FEATURES_KHR, VK_KHR_PIPELINE_EXECUTABLE_PROPERTIES_EXTENSION_NAME, VK_KHR_PIPELINE_EXECUTABLE_PROPERTIES_SPEC_VERSION, 46}; } -template<> FeatureDesc makeFeatureDesc(void) { return FeatureDesc{VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PORTABILITY_SUBSET_FEATURES_KHR, VK_KHR_PORTABILITY_SUBSET_EXTENSION_NAME, VK_KHR_PORTABILITY_SUBSET_SPEC_VERSION, 45}; } -template<> FeatureDesc makeFeatureDesc(void) { return FeatureDesc{VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PRESENT_ID_FEATURES_KHR, VK_KHR_PRESENT_ID_EXTENSION_NAME, VK_KHR_PRESENT_ID_SPEC_VERSION, 44}; } -template<> FeatureDesc makeFeatureDesc(void) { return FeatureDesc{VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PRESENT_WAIT_FEATURES_KHR, VK_KHR_PRESENT_WAIT_EXTENSION_NAME, VK_KHR_PRESENT_WAIT_SPEC_VERSION, 43}; } -template<> FeatureDesc makeFeatureDesc(void) { return FeatureDesc{VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PRIVATE_DATA_FEATURES_EXT, VK_EXT_PRIVATE_DATA_EXTENSION_NAME, VK_EXT_PRIVATE_DATA_SPEC_VERSION, 42}; } -template<> FeatureDesc makeFeatureDesc(void) { return FeatureDesc{VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROTECTED_MEMORY_FEATURES, DECL_PROTECTED_MEMORY_EXTENSION_NAME, 0, 41}; } -template<> FeatureDesc makeFeatureDesc(void) { return FeatureDesc{VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROVOKING_VERTEX_FEATURES_EXT, VK_EXT_PROVOKING_VERTEX_EXTENSION_NAME, VK_EXT_PROVOKING_VERTEX_SPEC_VERSION, 40}; } -template<> FeatureDesc makeFeatureDesc(void) { return FeatureDesc{VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_QUERY_FEATURES_KHR, VK_KHR_RAY_QUERY_EXTENSION_NAME, VK_KHR_RAY_QUERY_SPEC_VERSION, 39}; } -template<> FeatureDesc makeFeatureDesc(void) { return FeatureDesc{VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_MOTION_BLUR_FEATURES_NV, VK_NV_RAY_TRACING_MOTION_BLUR_EXTENSION_NAME, VK_NV_RAY_TRACING_MOTION_BLUR_SPEC_VERSION, 38}; } -template<> FeatureDesc makeFeatureDesc(void) { return FeatureDesc{VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_PIPELINE_FEATURES_KHR, VK_KHR_RAY_TRACING_PIPELINE_EXTENSION_NAME, VK_KHR_RAY_TRACING_PIPELINE_SPEC_VERSION, 37}; } -template<> FeatureDesc makeFeatureDesc(void) { return FeatureDesc{VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_REPRESENTATIVE_FRAGMENT_TEST_FEATURES_NV, VK_NV_REPRESENTATIVE_FRAGMENT_TEST_EXTENSION_NAME, VK_NV_REPRESENTATIVE_FRAGMENT_TEST_SPEC_VERSION, 36}; } -template<> FeatureDesc makeFeatureDesc(void) { return FeatureDesc{VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ROBUSTNESS_2_FEATURES_EXT, VK_EXT_ROBUSTNESS_2_EXTENSION_NAME, VK_EXT_ROBUSTNESS_2_SPEC_VERSION, 35}; } -template<> FeatureDesc makeFeatureDesc(void) { return FeatureDesc{VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SAMPLER_YCBCR_CONVERSION_FEATURES, VK_KHR_SAMPLER_YCBCR_CONVERSION_EXTENSION_NAME, VK_KHR_SAMPLER_YCBCR_CONVERSION_SPEC_VERSION, 34}; } -template<> FeatureDesc makeFeatureDesc(void) { return FeatureDesc{VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SCALAR_BLOCK_LAYOUT_FEATURES, VK_EXT_SCALAR_BLOCK_LAYOUT_EXTENSION_NAME, VK_EXT_SCALAR_BLOCK_LAYOUT_SPEC_VERSION, 33}; } -template<> FeatureDesc makeFeatureDesc(void) { return FeatureDesc{VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SEPARATE_DEPTH_STENCIL_LAYOUTS_FEATURES, VK_KHR_SEPARATE_DEPTH_STENCIL_LAYOUTS_EXTENSION_NAME, VK_KHR_SEPARATE_DEPTH_STENCIL_LAYOUTS_SPEC_VERSION, 32}; } -template<> FeatureDesc makeFeatureDesc(void) { return FeatureDesc{VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_ATOMIC_FLOAT_FEATURES_EXT, VK_EXT_SHADER_ATOMIC_FLOAT_EXTENSION_NAME, VK_EXT_SHADER_ATOMIC_FLOAT_SPEC_VERSION, 31}; } -template<> FeatureDesc makeFeatureDesc(void) { return FeatureDesc{VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_ATOMIC_FLOAT_2_FEATURES_EXT, VK_EXT_SHADER_ATOMIC_FLOAT_2_EXTENSION_NAME, VK_EXT_SHADER_ATOMIC_FLOAT_2_SPEC_VERSION, 30}; } -template<> FeatureDesc makeFeatureDesc(void) { return FeatureDesc{VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_ATOMIC_INT64_FEATURES, VK_KHR_SHADER_ATOMIC_INT64_EXTENSION_NAME, VK_KHR_SHADER_ATOMIC_INT64_SPEC_VERSION, 29}; } -template<> FeatureDesc makeFeatureDesc(void) { return FeatureDesc{VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_CLOCK_FEATURES_KHR, VK_KHR_SHADER_CLOCK_EXTENSION_NAME, VK_KHR_SHADER_CLOCK_SPEC_VERSION, 28}; } -template<> FeatureDesc makeFeatureDesc(void) { return FeatureDesc{VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_DEMOTE_TO_HELPER_INVOCATION_FEATURES_EXT, VK_EXT_SHADER_DEMOTE_TO_HELPER_INVOCATION_EXTENSION_NAME, VK_EXT_SHADER_DEMOTE_TO_HELPER_INVOCATION_SPEC_VERSION, 27}; } -template<> FeatureDesc makeFeatureDesc(void) { return FeatureDesc{VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_DRAW_PARAMETERS_FEATURES, VK_KHR_SHADER_DRAW_PARAMETERS_EXTENSION_NAME, VK_KHR_SHADER_DRAW_PARAMETERS_SPEC_VERSION, 26}; } -template<> FeatureDesc makeFeatureDesc(void) { return FeatureDesc{VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_FLOAT16_INT8_FEATURES, VK_KHR_SHADER_FLOAT16_INT8_EXTENSION_NAME, VK_KHR_SHADER_FLOAT16_INT8_SPEC_VERSION, 25}; } -template<> FeatureDesc makeFeatureDesc(void) { return FeatureDesc{VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_IMAGE_ATOMIC_INT64_FEATURES_EXT, VK_EXT_SHADER_IMAGE_ATOMIC_INT64_EXTENSION_NAME, VK_EXT_SHADER_IMAGE_ATOMIC_INT64_SPEC_VERSION, 24}; } -template<> FeatureDesc makeFeatureDesc(void) { return FeatureDesc{VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_IMAGE_FOOTPRINT_FEATURES_NV, VK_NV_SHADER_IMAGE_FOOTPRINT_EXTENSION_NAME, VK_NV_SHADER_IMAGE_FOOTPRINT_SPEC_VERSION, 23}; } +template<> FeatureDesc makeFeatureDesc(void) { return FeatureDesc{VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_16BIT_STORAGE_FEATURES, VK_KHR_16BIT_STORAGE_EXTENSION_NAME, VK_KHR_16BIT_STORAGE_SPEC_VERSION, 95}; } +template<> FeatureDesc makeFeatureDesc(void) { return FeatureDesc{VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_4444_FORMATS_FEATURES_EXT, VK_EXT_4444_FORMATS_EXTENSION_NAME, VK_EXT_4444_FORMATS_SPEC_VERSION, 94}; } +template<> FeatureDesc makeFeatureDesc(void) { return FeatureDesc{VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_8BIT_STORAGE_FEATURES, VK_KHR_8BIT_STORAGE_EXTENSION_NAME, VK_KHR_8BIT_STORAGE_SPEC_VERSION, 93}; } +template<> FeatureDesc makeFeatureDesc(void) { return FeatureDesc{VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ACCELERATION_STRUCTURE_FEATURES_KHR, VK_KHR_ACCELERATION_STRUCTURE_EXTENSION_NAME, VK_KHR_ACCELERATION_STRUCTURE_SPEC_VERSION, 92}; } +template<> FeatureDesc makeFeatureDesc(void) { return FeatureDesc{VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ASTC_DECODE_FEATURES_EXT, VK_EXT_ASTC_DECODE_MODE_EXTENSION_NAME, VK_EXT_ASTC_DECODE_MODE_SPEC_VERSION, 91}; } +template<> FeatureDesc makeFeatureDesc(void) { return FeatureDesc{VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_BLEND_OPERATION_ADVANCED_FEATURES_EXT, VK_EXT_BLEND_OPERATION_ADVANCED_EXTENSION_NAME, VK_EXT_BLEND_OPERATION_ADVANCED_SPEC_VERSION, 90}; } +template<> FeatureDesc makeFeatureDesc(void) { return FeatureDesc{VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_BUFFER_DEVICE_ADDRESS_FEATURES, VK_KHR_BUFFER_DEVICE_ADDRESS_EXTENSION_NAME, VK_KHR_BUFFER_DEVICE_ADDRESS_SPEC_VERSION, 89}; } +template<> FeatureDesc makeFeatureDesc(void) { return FeatureDesc{VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_BUFFER_DEVICE_ADDRESS_FEATURES_EXT, VK_EXT_BUFFER_DEVICE_ADDRESS_EXTENSION_NAME, VK_EXT_BUFFER_DEVICE_ADDRESS_SPEC_VERSION, 88}; } +template<> FeatureDesc makeFeatureDesc(void) { return FeatureDesc{VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COHERENT_MEMORY_FEATURES_AMD, DECL_AMD_COHERENT_MEMORY_EXTENSION_NAME, 0, 87}; } +template<> FeatureDesc makeFeatureDesc(void) { return FeatureDesc{VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COLOR_WRITE_ENABLE_FEATURES_EXT, VK_EXT_COLOR_WRITE_ENABLE_EXTENSION_NAME, VK_EXT_COLOR_WRITE_ENABLE_SPEC_VERSION, 86}; } +template<> FeatureDesc makeFeatureDesc(void) { return FeatureDesc{VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COMPUTE_SHADER_DERIVATIVES_FEATURES_NV, VK_NV_COMPUTE_SHADER_DERIVATIVES_EXTENSION_NAME, VK_NV_COMPUTE_SHADER_DERIVATIVES_SPEC_VERSION, 85}; } +template<> FeatureDesc makeFeatureDesc(void) { return FeatureDesc{VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CONDITIONAL_RENDERING_FEATURES_EXT, VK_EXT_CONDITIONAL_RENDERING_EXTENSION_NAME, VK_EXT_CONDITIONAL_RENDERING_SPEC_VERSION, 84}; } +template<> FeatureDesc makeFeatureDesc(void) { return FeatureDesc{VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COOPERATIVE_MATRIX_FEATURES_NV, VK_NV_COOPERATIVE_MATRIX_EXTENSION_NAME, VK_NV_COOPERATIVE_MATRIX_SPEC_VERSION, 83}; } +template<> FeatureDesc makeFeatureDesc(void) { return FeatureDesc{VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CORNER_SAMPLED_IMAGE_FEATURES_NV, VK_NV_CORNER_SAMPLED_IMAGE_EXTENSION_NAME, VK_NV_CORNER_SAMPLED_IMAGE_SPEC_VERSION, 82}; } +template<> FeatureDesc makeFeatureDesc(void) { return FeatureDesc{VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COVERAGE_REDUCTION_MODE_FEATURES_NV, VK_NV_COVERAGE_REDUCTION_MODE_EXTENSION_NAME, VK_NV_COVERAGE_REDUCTION_MODE_SPEC_VERSION, 81}; } +template<> FeatureDesc makeFeatureDesc(void) { return FeatureDesc{VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CUSTOM_BORDER_COLOR_FEATURES_EXT, VK_EXT_CUSTOM_BORDER_COLOR_EXTENSION_NAME, VK_EXT_CUSTOM_BORDER_COLOR_SPEC_VERSION, 80}; } +template<> FeatureDesc makeFeatureDesc(void) { return FeatureDesc{VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEDICATED_ALLOCATION_IMAGE_ALIASING_FEATURES_NV, VK_NV_DEDICATED_ALLOCATION_IMAGE_ALIASING_EXTENSION_NAME, VK_NV_DEDICATED_ALLOCATION_IMAGE_ALIASING_SPEC_VERSION, 79}; } +template<> FeatureDesc makeFeatureDesc(void) { return FeatureDesc{VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEPTH_CLIP_ENABLE_FEATURES_EXT, VK_EXT_DEPTH_CLIP_ENABLE_EXTENSION_NAME, VK_EXT_DEPTH_CLIP_ENABLE_SPEC_VERSION, 78}; } +template<> FeatureDesc makeFeatureDesc(void) { return FeatureDesc{VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_INDEXING_FEATURES, VK_EXT_DESCRIPTOR_INDEXING_EXTENSION_NAME, VK_EXT_DESCRIPTOR_INDEXING_SPEC_VERSION, 77}; } +template<> FeatureDesc makeFeatureDesc(void) { return FeatureDesc{VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEVICE_GENERATED_COMMANDS_FEATURES_NV, VK_NV_DEVICE_GENERATED_COMMANDS_EXTENSION_NAME, VK_NV_DEVICE_GENERATED_COMMANDS_SPEC_VERSION, 76}; } +template<> FeatureDesc makeFeatureDesc(void) { return FeatureDesc{VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEVICE_MEMORY_REPORT_FEATURES_EXT, VK_EXT_DEVICE_MEMORY_REPORT_EXTENSION_NAME, VK_EXT_DEVICE_MEMORY_REPORT_SPEC_VERSION, 75}; } +template<> FeatureDesc makeFeatureDesc(void) { return FeatureDesc{VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DIAGNOSTICS_CONFIG_FEATURES_NV, DECL_NV_DIAGNOSTICS_CONFIG_EXTENSION_NAME, 0, 74}; } +template<> FeatureDesc makeFeatureDesc(void) { return FeatureDesc{VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXCLUSIVE_SCISSOR_FEATURES_NV, VK_NV_SCISSOR_EXCLUSIVE_EXTENSION_NAME, VK_NV_SCISSOR_EXCLUSIVE_SPEC_VERSION, 73}; } +template<> FeatureDesc makeFeatureDesc(void) { return FeatureDesc{VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTENDED_DYNAMIC_STATE_FEATURES_EXT, VK_EXT_EXTENDED_DYNAMIC_STATE_EXTENSION_NAME, VK_EXT_EXTENDED_DYNAMIC_STATE_SPEC_VERSION, 72}; } +template<> FeatureDesc makeFeatureDesc(void) { return FeatureDesc{VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTENDED_DYNAMIC_STATE_2_FEATURES_EXT, VK_EXT_EXTENDED_DYNAMIC_STATE_2_EXTENSION_NAME, VK_EXT_EXTENDED_DYNAMIC_STATE_2_SPEC_VERSION, 71}; } +template<> FeatureDesc makeFeatureDesc(void) { return FeatureDesc{VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_MEMORY_RDMA_FEATURES_NV, VK_NV_EXTERNAL_MEMORY_RDMA_EXTENSION_NAME, VK_NV_EXTERNAL_MEMORY_RDMA_SPEC_VERSION, 70}; } +template<> FeatureDesc makeFeatureDesc(void) { return FeatureDesc{VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_FEATURES_EXT, VK_EXT_FRAGMENT_DENSITY_MAP_EXTENSION_NAME, VK_EXT_FRAGMENT_DENSITY_MAP_SPEC_VERSION, 69}; } +template<> FeatureDesc makeFeatureDesc(void) { return FeatureDesc{VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_2_FEATURES_EXT, VK_EXT_FRAGMENT_DENSITY_MAP_2_EXTENSION_NAME, VK_EXT_FRAGMENT_DENSITY_MAP_2_SPEC_VERSION, 68}; } +template<> FeatureDesc makeFeatureDesc(void) { return FeatureDesc{VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADER_BARYCENTRIC_FEATURES_NV, VK_NV_FRAGMENT_SHADER_BARYCENTRIC_EXTENSION_NAME, VK_NV_FRAGMENT_SHADER_BARYCENTRIC_SPEC_VERSION, 67}; } +template<> FeatureDesc makeFeatureDesc(void) { return FeatureDesc{VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADER_INTERLOCK_FEATURES_EXT, VK_EXT_FRAGMENT_SHADER_INTERLOCK_EXTENSION_NAME, VK_EXT_FRAGMENT_SHADER_INTERLOCK_SPEC_VERSION, 66}; } +template<> FeatureDesc makeFeatureDesc(void) { return FeatureDesc{VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADING_RATE_FEATURES_KHR, VK_KHR_FRAGMENT_SHADING_RATE_EXTENSION_NAME, VK_KHR_FRAGMENT_SHADING_RATE_SPEC_VERSION, 65}; } +template<> FeatureDesc makeFeatureDesc(void) { return FeatureDesc{VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADING_RATE_ENUMS_FEATURES_NV, VK_NV_FRAGMENT_SHADING_RATE_ENUMS_EXTENSION_NAME, VK_NV_FRAGMENT_SHADING_RATE_ENUMS_SPEC_VERSION, 64}; } +template<> FeatureDesc makeFeatureDesc(void) { return FeatureDesc{VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_GLOBAL_PRIORITY_QUERY_FEATURES_EXT, VK_EXT_GLOBAL_PRIORITY_QUERY_EXTENSION_NAME, VK_EXT_GLOBAL_PRIORITY_QUERY_SPEC_VERSION, 63}; } +template<> FeatureDesc makeFeatureDesc(void) { return FeatureDesc{VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_HOST_QUERY_RESET_FEATURES, VK_EXT_HOST_QUERY_RESET_EXTENSION_NAME, VK_EXT_HOST_QUERY_RESET_SPEC_VERSION, 62}; } +template<> FeatureDesc makeFeatureDesc(void) { return FeatureDesc{VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGELESS_FRAMEBUFFER_FEATURES, VK_KHR_IMAGELESS_FRAMEBUFFER_EXTENSION_NAME, VK_KHR_IMAGELESS_FRAMEBUFFER_SPEC_VERSION, 61}; } +template<> FeatureDesc makeFeatureDesc(void) { return FeatureDesc{VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_ROBUSTNESS_FEATURES_EXT, VK_EXT_IMAGE_ROBUSTNESS_EXTENSION_NAME, VK_EXT_IMAGE_ROBUSTNESS_SPEC_VERSION, 60}; } +template<> FeatureDesc makeFeatureDesc(void) { return FeatureDesc{VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_INDEX_TYPE_UINT8_FEATURES_EXT, VK_EXT_INDEX_TYPE_UINT8_EXTENSION_NAME, VK_EXT_INDEX_TYPE_UINT8_SPEC_VERSION, 59}; } +template<> FeatureDesc makeFeatureDesc(void) { return FeatureDesc{VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_INHERITED_VIEWPORT_SCISSOR_FEATURES_NV, VK_NV_INHERITED_VIEWPORT_SCISSOR_EXTENSION_NAME, VK_NV_INHERITED_VIEWPORT_SCISSOR_SPEC_VERSION, 58}; } +template<> FeatureDesc makeFeatureDesc(void) { return FeatureDesc{VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_INLINE_UNIFORM_BLOCK_FEATURES_EXT, VK_EXT_INLINE_UNIFORM_BLOCK_EXTENSION_NAME, VK_EXT_INLINE_UNIFORM_BLOCK_SPEC_VERSION, 57}; } +template<> FeatureDesc makeFeatureDesc(void) { return FeatureDesc{VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_INVOCATION_MASK_FEATURES_HUAWEI, VK_HUAWEI_INVOCATION_MASK_EXTENSION_NAME, VK_HUAWEI_INVOCATION_MASK_SPEC_VERSION, 56}; } +template<> FeatureDesc makeFeatureDesc(void) { return FeatureDesc{VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_LINE_RASTERIZATION_FEATURES_EXT, VK_EXT_LINE_RASTERIZATION_EXTENSION_NAME, VK_EXT_LINE_RASTERIZATION_SPEC_VERSION, 55}; } +template<> FeatureDesc makeFeatureDesc(void) { return FeatureDesc{VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MEMORY_PRIORITY_FEATURES_EXT, VK_EXT_MEMORY_PRIORITY_EXTENSION_NAME, VK_EXT_MEMORY_PRIORITY_SPEC_VERSION, 54}; } +template<> FeatureDesc makeFeatureDesc(void) { return FeatureDesc{VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MESH_SHADER_FEATURES_NV, VK_NV_MESH_SHADER_EXTENSION_NAME, VK_NV_MESH_SHADER_SPEC_VERSION, 53}; } +template<> FeatureDesc makeFeatureDesc(void) { return FeatureDesc{VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_FEATURES, VK_KHR_MULTIVIEW_EXTENSION_NAME, VK_KHR_MULTIVIEW_SPEC_VERSION, 52}; } +template<> FeatureDesc makeFeatureDesc(void) { return FeatureDesc{VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTI_DRAW_FEATURES_EXT, VK_EXT_MULTI_DRAW_EXTENSION_NAME, VK_EXT_MULTI_DRAW_SPEC_VERSION, 51}; } +template<> FeatureDesc makeFeatureDesc(void) { return FeatureDesc{VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MUTABLE_DESCRIPTOR_TYPE_FEATURES_VALVE, VK_VALVE_MUTABLE_DESCRIPTOR_TYPE_EXTENSION_NAME, VK_VALVE_MUTABLE_DESCRIPTOR_TYPE_SPEC_VERSION, 50}; } +template<> FeatureDesc makeFeatureDesc(void) { return FeatureDesc{VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PERFORMANCE_QUERY_FEATURES_KHR, VK_KHR_PERFORMANCE_QUERY_EXTENSION_NAME, VK_KHR_PERFORMANCE_QUERY_SPEC_VERSION, 49}; } +template<> FeatureDesc makeFeatureDesc(void) { return FeatureDesc{VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_CREATION_CACHE_CONTROL_FEATURES_EXT, VK_EXT_PIPELINE_CREATION_CACHE_CONTROL_EXTENSION_NAME, VK_EXT_PIPELINE_CREATION_CACHE_CONTROL_SPEC_VERSION, 48}; } +template<> FeatureDesc makeFeatureDesc(void) { return FeatureDesc{VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_EXECUTABLE_PROPERTIES_FEATURES_KHR, VK_KHR_PIPELINE_EXECUTABLE_PROPERTIES_EXTENSION_NAME, VK_KHR_PIPELINE_EXECUTABLE_PROPERTIES_SPEC_VERSION, 47}; } +template<> FeatureDesc makeFeatureDesc(void) { return FeatureDesc{VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PORTABILITY_SUBSET_FEATURES_KHR, VK_KHR_PORTABILITY_SUBSET_EXTENSION_NAME, VK_KHR_PORTABILITY_SUBSET_SPEC_VERSION, 46}; } +template<> FeatureDesc makeFeatureDesc(void) { return FeatureDesc{VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PRESENT_ID_FEATURES_KHR, VK_KHR_PRESENT_ID_EXTENSION_NAME, VK_KHR_PRESENT_ID_SPEC_VERSION, 45}; } +template<> FeatureDesc makeFeatureDesc(void) { return FeatureDesc{VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PRESENT_WAIT_FEATURES_KHR, VK_KHR_PRESENT_WAIT_EXTENSION_NAME, VK_KHR_PRESENT_WAIT_SPEC_VERSION, 44}; } +template<> FeatureDesc makeFeatureDesc(void) { return FeatureDesc{VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PRIVATE_DATA_FEATURES_EXT, VK_EXT_PRIVATE_DATA_EXTENSION_NAME, VK_EXT_PRIVATE_DATA_SPEC_VERSION, 43}; } +template<> FeatureDesc makeFeatureDesc(void) { return FeatureDesc{VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROTECTED_MEMORY_FEATURES, DECL_PROTECTED_MEMORY_EXTENSION_NAME, 0, 42}; } +template<> FeatureDesc makeFeatureDesc(void) { return FeatureDesc{VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROVOKING_VERTEX_FEATURES_EXT, VK_EXT_PROVOKING_VERTEX_EXTENSION_NAME, VK_EXT_PROVOKING_VERTEX_SPEC_VERSION, 41}; } +template<> FeatureDesc makeFeatureDesc(void) { return FeatureDesc{VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_QUERY_FEATURES_KHR, VK_KHR_RAY_QUERY_EXTENSION_NAME, VK_KHR_RAY_QUERY_SPEC_VERSION, 40}; } +template<> FeatureDesc makeFeatureDesc(void) { return FeatureDesc{VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_MOTION_BLUR_FEATURES_NV, VK_NV_RAY_TRACING_MOTION_BLUR_EXTENSION_NAME, VK_NV_RAY_TRACING_MOTION_BLUR_SPEC_VERSION, 39}; } +template<> FeatureDesc makeFeatureDesc(void) { return FeatureDesc{VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_PIPELINE_FEATURES_KHR, VK_KHR_RAY_TRACING_PIPELINE_EXTENSION_NAME, VK_KHR_RAY_TRACING_PIPELINE_SPEC_VERSION, 38}; } +template<> FeatureDesc makeFeatureDesc(void) { return FeatureDesc{VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_REPRESENTATIVE_FRAGMENT_TEST_FEATURES_NV, VK_NV_REPRESENTATIVE_FRAGMENT_TEST_EXTENSION_NAME, VK_NV_REPRESENTATIVE_FRAGMENT_TEST_SPEC_VERSION, 37}; } +template<> FeatureDesc makeFeatureDesc(void) { return FeatureDesc{VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ROBUSTNESS_2_FEATURES_EXT, VK_EXT_ROBUSTNESS_2_EXTENSION_NAME, VK_EXT_ROBUSTNESS_2_SPEC_VERSION, 36}; } +template<> FeatureDesc makeFeatureDesc(void) { return FeatureDesc{VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SAMPLER_YCBCR_CONVERSION_FEATURES, VK_KHR_SAMPLER_YCBCR_CONVERSION_EXTENSION_NAME, VK_KHR_SAMPLER_YCBCR_CONVERSION_SPEC_VERSION, 35}; } +template<> FeatureDesc makeFeatureDesc(void) { return FeatureDesc{VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SCALAR_BLOCK_LAYOUT_FEATURES, VK_EXT_SCALAR_BLOCK_LAYOUT_EXTENSION_NAME, VK_EXT_SCALAR_BLOCK_LAYOUT_SPEC_VERSION, 34}; } +template<> FeatureDesc makeFeatureDesc(void) { return FeatureDesc{VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SEPARATE_DEPTH_STENCIL_LAYOUTS_FEATURES, VK_KHR_SEPARATE_DEPTH_STENCIL_LAYOUTS_EXTENSION_NAME, VK_KHR_SEPARATE_DEPTH_STENCIL_LAYOUTS_SPEC_VERSION, 33}; } +template<> FeatureDesc makeFeatureDesc(void) { return FeatureDesc{VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_ATOMIC_FLOAT_FEATURES_EXT, VK_EXT_SHADER_ATOMIC_FLOAT_EXTENSION_NAME, VK_EXT_SHADER_ATOMIC_FLOAT_SPEC_VERSION, 32}; } +template<> FeatureDesc makeFeatureDesc(void) { return FeatureDesc{VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_ATOMIC_FLOAT_2_FEATURES_EXT, VK_EXT_SHADER_ATOMIC_FLOAT_2_EXTENSION_NAME, VK_EXT_SHADER_ATOMIC_FLOAT_2_SPEC_VERSION, 31}; } +template<> FeatureDesc makeFeatureDesc(void) { return FeatureDesc{VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_ATOMIC_INT64_FEATURES, VK_KHR_SHADER_ATOMIC_INT64_EXTENSION_NAME, VK_KHR_SHADER_ATOMIC_INT64_SPEC_VERSION, 30}; } +template<> FeatureDesc makeFeatureDesc(void) { return FeatureDesc{VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_CLOCK_FEATURES_KHR, VK_KHR_SHADER_CLOCK_EXTENSION_NAME, VK_KHR_SHADER_CLOCK_SPEC_VERSION, 29}; } +template<> FeatureDesc makeFeatureDesc(void) { return FeatureDesc{VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_DEMOTE_TO_HELPER_INVOCATION_FEATURES_EXT, VK_EXT_SHADER_DEMOTE_TO_HELPER_INVOCATION_EXTENSION_NAME, VK_EXT_SHADER_DEMOTE_TO_HELPER_INVOCATION_SPEC_VERSION, 28}; } +template<> FeatureDesc makeFeatureDesc(void) { return FeatureDesc{VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_DRAW_PARAMETERS_FEATURES, VK_KHR_SHADER_DRAW_PARAMETERS_EXTENSION_NAME, VK_KHR_SHADER_DRAW_PARAMETERS_SPEC_VERSION, 27}; } +template<> FeatureDesc makeFeatureDesc(void) { return FeatureDesc{VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_FLOAT16_INT8_FEATURES, VK_KHR_SHADER_FLOAT16_INT8_EXTENSION_NAME, VK_KHR_SHADER_FLOAT16_INT8_SPEC_VERSION, 26}; } +template<> FeatureDesc makeFeatureDesc(void) { return FeatureDesc{VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_IMAGE_ATOMIC_INT64_FEATURES_EXT, VK_EXT_SHADER_IMAGE_ATOMIC_INT64_EXTENSION_NAME, VK_EXT_SHADER_IMAGE_ATOMIC_INT64_SPEC_VERSION, 25}; } +template<> FeatureDesc makeFeatureDesc(void) { return FeatureDesc{VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_IMAGE_FOOTPRINT_FEATURES_NV, VK_NV_SHADER_IMAGE_FOOTPRINT_EXTENSION_NAME, VK_NV_SHADER_IMAGE_FOOTPRINT_SPEC_VERSION, 24}; } +template<> FeatureDesc makeFeatureDesc(void) { return FeatureDesc{VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_INTEGER_DOT_PRODUCT_FEATURES_KHR, VK_KHR_SHADER_INTEGER_DOT_PRODUCT_EXTENSION_NAME, VK_KHR_SHADER_INTEGER_DOT_PRODUCT_SPEC_VERSION, 23}; } template<> FeatureDesc makeFeatureDesc(void) { return FeatureDesc{VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_INTEGER_FUNCTIONS_2_FEATURES_INTEL, VK_INTEL_SHADER_INTEGER_FUNCTIONS_2_EXTENSION_NAME, VK_INTEL_SHADER_INTEGER_FUNCTIONS_2_SPEC_VERSION, 22}; } template<> FeatureDesc makeFeatureDesc(void) { return FeatureDesc{VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_SM_BUILTINS_FEATURES_NV, VK_NV_SHADER_SM_BUILTINS_EXTENSION_NAME, VK_NV_SHADER_SM_BUILTINS_SPEC_VERSION, 21}; } template<> FeatureDesc makeFeatureDesc(void) { return FeatureDesc{VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_SUBGROUP_EXTENDED_TYPES_FEATURES, VK_KHR_SHADER_SUBGROUP_EXTENDED_TYPES_EXTENSION_NAME, VK_KHR_SHADER_SUBGROUP_EXTENDED_TYPES_SPEC_VERSION, 20}; } @@ -459,6 +462,7 @@ static const FeatureStructCreationData featureStructCreationArray[] = { createFeatureStructWrapper, VK_KHR_SHADER_FLOAT16_INT8_EXTENSION_NAME, VK_KHR_SHADER_FLOAT16_INT8_SPEC_VERSION }, { createFeatureStructWrapper, VK_EXT_SHADER_IMAGE_ATOMIC_INT64_EXTENSION_NAME, VK_EXT_SHADER_IMAGE_ATOMIC_INT64_SPEC_VERSION }, { createFeatureStructWrapper, VK_NV_SHADER_IMAGE_FOOTPRINT_EXTENSION_NAME, VK_NV_SHADER_IMAGE_FOOTPRINT_SPEC_VERSION }, + { createFeatureStructWrapper, VK_KHR_SHADER_INTEGER_DOT_PRODUCT_EXTENSION_NAME, VK_KHR_SHADER_INTEGER_DOT_PRODUCT_SPEC_VERSION }, { createFeatureStructWrapper, VK_INTEL_SHADER_INTEGER_FUNCTIONS_2_EXTENSION_NAME, VK_INTEL_SHADER_INTEGER_FUNCTIONS_2_SPEC_VERSION }, { createFeatureStructWrapper, VK_NV_SHADER_SM_BUILTINS_EXTENSION_NAME, VK_NV_SHADER_SM_BUILTINS_SPEC_VERSION }, { createFeatureStructWrapper, VK_KHR_SHADER_SUBGROUP_EXTENDED_TYPES_EXTENSION_NAME, VK_KHR_SHADER_SUBGROUP_EXTENDED_TYPES_SPEC_VERSION }, diff --git a/external/vulkancts/framework/vulkan/vkDeviceFeatures2.inl b/external/vulkancts/framework/vulkan/vkDeviceFeatures2.inl index 504694e..1fdba9d 100644 --- a/external/vulkancts/framework/vulkan/vkDeviceFeatures2.inl +++ b/external/vulkancts/framework/vulkan/vkDeviceFeatures2.inl @@ -18,6 +18,7 @@ VkPhysicalDeviceDescriptorIndexingFeatures deviceDescriptorIndexingFeatures[co VkPhysicalDeviceTimelineSemaphoreFeatures deviceTimelineSemaphoreFeatures[count]; VkPhysicalDeviceFragmentDensityMapFeaturesEXT deviceFragmentDensityMapFeaturesEXT[count]; VkPhysicalDeviceFragmentDensityMap2FeaturesEXT deviceFragmentDensityMap2FeaturesEXT[count]; +VkPhysicalDeviceShaderIntegerDotProductFeaturesKHR deviceShaderIntegerDotProductFeaturesKHR[count]; const bool isConditionalRenderingFeaturesEXT = checkExtension(properties, "VK_EXT_conditional_rendering"); const bool isScalarBlockLayoutFeatures = checkExtension(properties, "VK_EXT_scalar_block_layout") || context.contextSupports(vk::ApiVersion(1, 2, 0)); @@ -36,6 +37,7 @@ const bool isDescriptorIndexingFeatures = checkExtension(properties, "VK_EXT_d const bool isTimelineSemaphoreFeatures = checkExtension(properties, "VK_KHR_timeline_semaphore") || context.contextSupports(vk::ApiVersion(1, 2, 0)); const bool isFragmentDensityMapFeaturesEXT = checkExtension(properties, "VK_EXT_fragment_density_map"); const bool isFragmentDensityMap2FeaturesEXT = checkExtension(properties, "VK_EXT_fragment_density_map2"); +const bool isShaderIntegerDotProductFeaturesKHR = checkExtension(properties, "VK_KHR_shader_integer_dot_product"); for (int ndx = 0; ndx < count; ++ndx) { @@ -56,6 +58,7 @@ for (int ndx = 0; ndx < count; ++ndx) deMemset(&deviceTimelineSemaphoreFeatures[ndx], 0xFF * ndx, sizeof(VkPhysicalDeviceTimelineSemaphoreFeatures)); deMemset(&deviceFragmentDensityMapFeaturesEXT[ndx], 0xFF * ndx, sizeof(VkPhysicalDeviceFragmentDensityMapFeaturesEXT)); deMemset(&deviceFragmentDensityMap2FeaturesEXT[ndx], 0xFF * ndx, sizeof(VkPhysicalDeviceFragmentDensityMap2FeaturesEXT)); + deMemset(&deviceShaderIntegerDotProductFeaturesKHR[ndx],0xFF * ndx, sizeof(VkPhysicalDeviceShaderIntegerDotProductFeaturesKHR)); deviceConditionalRenderingFeaturesEXT[ndx].sType = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CONDITIONAL_RENDERING_FEATURES_EXT; deviceConditionalRenderingFeaturesEXT[ndx].pNext = &deviceScalarBlockLayoutFeatures[ndx]; @@ -106,7 +109,10 @@ for (int ndx = 0; ndx < count; ++ndx) deviceFragmentDensityMapFeaturesEXT[ndx].pNext = &deviceFragmentDensityMap2FeaturesEXT[ndx]; deviceFragmentDensityMap2FeaturesEXT[ndx].sType = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_2_FEATURES_EXT; - deviceFragmentDensityMap2FeaturesEXT[ndx].pNext = DE_NULL; + deviceFragmentDensityMap2FeaturesEXT[ndx].pNext = &deviceShaderIntegerDotProductFeaturesKHR[ndx]; + + deviceShaderIntegerDotProductFeaturesKHR[ndx].sType = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_INTEGER_DOT_PRODUCT_FEATURES_KHR; + deviceShaderIntegerDotProductFeaturesKHR[ndx].pNext = DE_NULL; deMemset(&extFeatures.features, 0xcd, sizeof(extFeatures.features)); extFeatures.sType = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FEATURES_2; @@ -148,6 +154,8 @@ if (isFragmentDensityMapFeaturesEXT) log << TestLog::Message << deviceFragmentDensityMapFeaturesEXT[0] << TestLog::EndMessage; if (isFragmentDensityMap2FeaturesEXT) log << TestLog::Message << deviceFragmentDensityMap2FeaturesEXT[0] << TestLog::EndMessage; +if (isShaderIntegerDotProductFeaturesKHR) + log << TestLog::Message << deviceShaderIntegerDotProductFeaturesKHR[0] << TestLog::EndMessage; if (isConditionalRenderingFeaturesEXT && (deviceConditionalRenderingFeaturesEXT[0].conditionalRendering != deviceConditionalRenderingFeaturesEXT[1].conditionalRendering || @@ -271,3 +279,8 @@ if (isFragmentDensityMap2FeaturesEXT && { TCU_FAIL("Mismatch between VkPhysicalDeviceFragmentDensityMap2FeaturesEXT"); } +if (isShaderIntegerDotProductFeaturesKHR && + (deviceShaderIntegerDotProductFeaturesKHR[0].shaderIntegerDotProduct != deviceShaderIntegerDotProductFeaturesKHR[1].shaderIntegerDotProduct)) +{ + TCU_FAIL("Mismatch between VkPhysicalDeviceShaderIntegerDotProductFeaturesKHR"); +} diff --git a/external/vulkancts/framework/vulkan/vkDeviceFeaturesForContextDecl.inl b/external/vulkancts/framework/vulkan/vkDeviceFeaturesForContextDecl.inl index c3d7ca2..5718b46 100644 --- a/external/vulkancts/framework/vulkan/vkDeviceFeaturesForContextDecl.inl +++ b/external/vulkancts/framework/vulkan/vkDeviceFeaturesForContextDecl.inl @@ -73,6 +73,7 @@ const vk::VkPhysicalDeviceShaderDrawParametersFeatures& getShaderDrawParamet const vk::VkPhysicalDeviceShaderFloat16Int8Features& getShaderFloat16Int8Features (void) const; const vk::VkPhysicalDeviceShaderImageAtomicInt64FeaturesEXT& getShaderImageAtomicInt64FeaturesEXT (void) const; const vk::VkPhysicalDeviceShaderImageFootprintFeaturesNV& getShaderImageFootprintFeatures (void) const; +const vk::VkPhysicalDeviceShaderIntegerDotProductFeaturesKHR& getShaderIntegerDotProductFeatures (void) const; const vk::VkPhysicalDeviceShaderIntegerFunctions2FeaturesINTEL& getShaderIntegerFunctions2FeaturesINTEL (void) const; const vk::VkPhysicalDeviceShaderSMBuiltinsFeaturesNV& getShaderSMBuiltinsFeatures (void) const; const vk::VkPhysicalDeviceShaderSubgroupExtendedTypesFeatures& getShaderSubgroupExtendedTypesFeatures (void) const; diff --git a/external/vulkancts/framework/vulkan/vkDeviceFeaturesForContextDefs.inl b/external/vulkancts/framework/vulkan/vkDeviceFeaturesForContextDefs.inl index 984aa1b..62fb9bb 100644 --- a/external/vulkancts/framework/vulkan/vkDeviceFeaturesForContextDefs.inl +++ b/external/vulkancts/framework/vulkan/vkDeviceFeaturesForContextDefs.inl @@ -73,6 +73,7 @@ const vk::VkPhysicalDeviceShaderDrawParametersFeatures& Context::getShaderDr const vk::VkPhysicalDeviceShaderFloat16Int8Features& Context::getShaderFloat16Int8Features (void) const { return m_device->getShaderFloat16Int8Features(); } const vk::VkPhysicalDeviceShaderImageAtomicInt64FeaturesEXT& Context::getShaderImageAtomicInt64FeaturesEXT (void) const { return m_device->getShaderImageAtomicInt64FeaturesEXT(); } const vk::VkPhysicalDeviceShaderImageFootprintFeaturesNV& Context::getShaderImageFootprintFeatures (void) const { return m_device->getShaderImageFootprintFeatures(); } +const vk::VkPhysicalDeviceShaderIntegerDotProductFeaturesKHR& Context::getShaderIntegerDotProductFeatures (void) const { return m_device->getShaderIntegerDotProductFeatures(); } const vk::VkPhysicalDeviceShaderIntegerFunctions2FeaturesINTEL& Context::getShaderIntegerFunctions2FeaturesINTEL (void) const { return m_device->getShaderIntegerFunctions2FeaturesINTEL(); } const vk::VkPhysicalDeviceShaderSMBuiltinsFeaturesNV& Context::getShaderSMBuiltinsFeatures (void) const { return m_device->getShaderSMBuiltinsFeatures(); } const vk::VkPhysicalDeviceShaderSubgroupExtendedTypesFeatures& Context::getShaderSubgroupExtendedTypesFeatures (void) const { return m_device->getShaderSubgroupExtendedTypesFeatures(); } diff --git a/external/vulkancts/framework/vulkan/vkDeviceFeaturesForDefaultDeviceDefs.inl b/external/vulkancts/framework/vulkan/vkDeviceFeaturesForDefaultDeviceDefs.inl index 674953d..11ef907 100644 --- a/external/vulkancts/framework/vulkan/vkDeviceFeaturesForDefaultDeviceDefs.inl +++ b/external/vulkancts/framework/vulkan/vkDeviceFeaturesForDefaultDeviceDefs.inl @@ -73,6 +73,7 @@ const VkPhysicalDeviceShaderDrawParametersFeatures& getShaderDrawParametersF const VkPhysicalDeviceShaderFloat16Int8Features& getShaderFloat16Int8Features (void) const { return m_deviceFeatures.getFeatureType(); } const VkPhysicalDeviceShaderImageAtomicInt64FeaturesEXT& getShaderImageAtomicInt64FeaturesEXT (void) const { return m_deviceFeatures.getFeatureType(); } const VkPhysicalDeviceShaderImageFootprintFeaturesNV& getShaderImageFootprintFeatures (void) const { return m_deviceFeatures.getFeatureType(); } +const VkPhysicalDeviceShaderIntegerDotProductFeaturesKHR& getShaderIntegerDotProductFeatures (void) const { return m_deviceFeatures.getFeatureType(); } const VkPhysicalDeviceShaderIntegerFunctions2FeaturesINTEL& getShaderIntegerFunctions2FeaturesINTEL (void) const { return m_deviceFeatures.getFeatureType(); } const VkPhysicalDeviceShaderSMBuiltinsFeaturesNV& getShaderSMBuiltinsFeatures (void) const { return m_deviceFeatures.getFeatureType(); } const VkPhysicalDeviceShaderSubgroupExtendedTypesFeatures& getShaderSubgroupExtendedTypesFeatures (void) const { return m_deviceFeatures.getFeatureType(); } diff --git a/external/vulkancts/framework/vulkan/vkDeviceProperties.inl b/external/vulkancts/framework/vulkan/vkDeviceProperties.inl index bfa0509..8261b19 100644 --- a/external/vulkancts/framework/vulkan/vkDeviceProperties.inl +++ b/external/vulkancts/framework/vulkan/vkDeviceProperties.inl @@ -43,6 +43,7 @@ namespace vk #define VK_EXT_SAMPLE_LOCATIONS_EXTENSION_NAME "VK_EXT_sample_locations" #define VK_AMD_SHADER_CORE_PROPERTIES_EXTENSION_NAME "VK_AMD_shader_core_properties" #define VK_AMD_SHADER_CORE_PROPERTIES_2_EXTENSION_NAME "VK_AMD_shader_core_properties2" +#define VK_KHR_SHADER_INTEGER_DOT_PRODUCT_EXTENSION_NAME "VK_KHR_shader_integer_dot_product" #define VK_NV_SHADING_RATE_IMAGE_EXTENSION_NAME "VK_NV_shading_rate_image" #define DECL_SUBGROUP_EXTENSION_NAME "core_property" #define VK_EXT_SUBGROUP_SIZE_CONTROL_EXTENSION_NAME "VK_EXT_subgroup_size_control" @@ -165,6 +166,7 @@ template<> void initPropertyFromBlob void initPropertyFromBlob(VkPhysicalDevicePerformanceQueryPropertiesKHR&, const AllPropertiesBlobs&) {} template<> void initPropertyFromBlob(VkPhysicalDeviceFragmentShadingRatePropertiesKHR&, const AllPropertiesBlobs&) {} template<> void initPropertyFromBlob(VkPhysicalDevicePipelineExecutablePropertiesFeaturesKHR&, const AllPropertiesBlobs&) {} +template<> void initPropertyFromBlob(VkPhysicalDeviceShaderIntegerDotProductPropertiesKHR&, const AllPropertiesBlobs&) {} template<> void initPropertyFromBlob(VkPhysicalDeviceTransformFeedbackPropertiesEXT&, const AllPropertiesBlobs&) {} template<> void initPropertyFromBlob(VkPhysicalDeviceMultiviewPerViewAttributesPropertiesNVX&, const AllPropertiesBlobs&) {} template<> void initPropertyFromBlob(VkPhysicalDeviceDiscardRectanglePropertiesEXT&, const AllPropertiesBlobs&) {} @@ -202,44 +204,45 @@ template<> void initPropertyFromBlob void initPropertyFromBlob(VkPhysicalDevicePortabilitySubsetPropertiesKHR&, const AllPropertiesBlobs&) {} -template<> PropertyDesc makePropertyDesc(void) { return PropertyDesc{VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ACCELERATION_STRUCTURE_PROPERTIES_KHR, VK_KHR_ACCELERATION_STRUCTURE_EXTENSION_NAME, VK_KHR_ACCELERATION_STRUCTURE_SPEC_VERSION, 46}; } -template<> PropertyDesc makePropertyDesc(void) { return PropertyDesc{VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_BLEND_OPERATION_ADVANCED_PROPERTIES_EXT, VK_EXT_BLEND_OPERATION_ADVANCED_EXTENSION_NAME, VK_EXT_BLEND_OPERATION_ADVANCED_SPEC_VERSION, 45}; } -template<> PropertyDesc makePropertyDesc(void) { return PropertyDesc{VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CONSERVATIVE_RASTERIZATION_PROPERTIES_EXT, VK_EXT_CONSERVATIVE_RASTERIZATION_EXTENSION_NAME, VK_EXT_CONSERVATIVE_RASTERIZATION_SPEC_VERSION, 44}; } -template<> PropertyDesc makePropertyDesc(void) { return PropertyDesc{VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COOPERATIVE_MATRIX_PROPERTIES_NV, VK_NV_COOPERATIVE_MATRIX_EXTENSION_NAME, VK_NV_COOPERATIVE_MATRIX_SPEC_VERSION, 43}; } -template<> PropertyDesc makePropertyDesc(void) { return PropertyDesc{VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CUSTOM_BORDER_COLOR_PROPERTIES_EXT, VK_EXT_CUSTOM_BORDER_COLOR_EXTENSION_NAME, VK_EXT_CUSTOM_BORDER_COLOR_SPEC_VERSION, 42}; } -template<> PropertyDesc makePropertyDesc(void) { return PropertyDesc{VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEPTH_STENCIL_RESOLVE_PROPERTIES, VK_KHR_DEPTH_STENCIL_RESOLVE_EXTENSION_NAME, VK_KHR_DEPTH_STENCIL_RESOLVE_SPEC_VERSION, 41}; } -template<> PropertyDesc makePropertyDesc(void) { return PropertyDesc{VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_INDEXING_PROPERTIES, VK_EXT_DESCRIPTOR_INDEXING_EXTENSION_NAME, VK_EXT_DESCRIPTOR_INDEXING_SPEC_VERSION, 40}; } -template<> PropertyDesc makePropertyDesc(void) { return PropertyDesc{VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEVICE_GENERATED_COMMANDS_PROPERTIES_NV, VK_NV_DEVICE_GENERATED_COMMANDS_EXTENSION_NAME, VK_NV_DEVICE_GENERATED_COMMANDS_SPEC_VERSION, 39}; } -template<> PropertyDesc makePropertyDesc(void) { return PropertyDesc{VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DISCARD_RECTANGLE_PROPERTIES_EXT, VK_EXT_DISCARD_RECTANGLES_EXTENSION_NAME, VK_EXT_DISCARD_RECTANGLES_SPEC_VERSION, 38}; } -template<> PropertyDesc makePropertyDesc(void) { return PropertyDesc{VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DRIVER_PROPERTIES, VK_KHR_DRIVER_PROPERTIES_EXTENSION_NAME, VK_KHR_DRIVER_PROPERTIES_SPEC_VERSION, 37}; } -template<> PropertyDesc makePropertyDesc(void) { return PropertyDesc{VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DRM_PROPERTIES_EXT, VK_EXT_PHYSICAL_DEVICE_DRM_EXTENSION_NAME, VK_EXT_PHYSICAL_DEVICE_DRM_SPEC_VERSION, 36}; } -template<> PropertyDesc makePropertyDesc(void) { return PropertyDesc{VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_MEMORY_HOST_PROPERTIES_EXT, VK_EXT_EXTERNAL_MEMORY_HOST_EXTENSION_NAME, VK_EXT_EXTERNAL_MEMORY_HOST_SPEC_VERSION, 35}; } -template<> PropertyDesc makePropertyDesc(void) { return PropertyDesc{VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FLOAT_CONTROLS_PROPERTIES, VK_KHR_SHADER_FLOAT_CONTROLS_EXTENSION_NAME, VK_KHR_SHADER_FLOAT_CONTROLS_SPEC_VERSION, 34}; } -template<> PropertyDesc makePropertyDesc(void) { return PropertyDesc{VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_PROPERTIES_EXT, VK_EXT_FRAGMENT_DENSITY_MAP_EXTENSION_NAME, VK_EXT_FRAGMENT_DENSITY_MAP_SPEC_VERSION, 33}; } -template<> PropertyDesc makePropertyDesc(void) { return PropertyDesc{VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_2_PROPERTIES_EXT, VK_EXT_FRAGMENT_DENSITY_MAP_2_EXTENSION_NAME, VK_EXT_FRAGMENT_DENSITY_MAP_2_SPEC_VERSION, 32}; } -template<> PropertyDesc makePropertyDesc(void) { return PropertyDesc{VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADING_RATE_PROPERTIES_KHR, VK_KHR_FRAGMENT_SHADING_RATE_EXTENSION_NAME, VK_KHR_FRAGMENT_SHADING_RATE_SPEC_VERSION, 31}; } -template<> PropertyDesc makePropertyDesc(void) { return PropertyDesc{VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADING_RATE_ENUMS_PROPERTIES_NV, VK_NV_FRAGMENT_SHADING_RATE_ENUMS_EXTENSION_NAME, VK_NV_FRAGMENT_SHADING_RATE_ENUMS_SPEC_VERSION, 30}; } -template<> PropertyDesc makePropertyDesc(void) { return PropertyDesc{VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ID_PROPERTIES, VK_KHR_PRESENT_ID_EXTENSION_NAME, VK_KHR_PRESENT_ID_SPEC_VERSION, 29}; } -template<> PropertyDesc makePropertyDesc(void) { return PropertyDesc{VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_INLINE_UNIFORM_BLOCK_PROPERTIES_EXT, VK_EXT_INLINE_UNIFORM_BLOCK_EXTENSION_NAME, VK_EXT_INLINE_UNIFORM_BLOCK_SPEC_VERSION, 28}; } -template<> PropertyDesc makePropertyDesc(void) { return PropertyDesc{VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_LINE_RASTERIZATION_PROPERTIES_EXT, VK_EXT_LINE_RASTERIZATION_EXTENSION_NAME, VK_EXT_LINE_RASTERIZATION_SPEC_VERSION, 27}; } -template<> PropertyDesc makePropertyDesc(void) { return PropertyDesc{VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_3_PROPERTIES, VK_KHR_MAINTENANCE3_EXTENSION_NAME, VK_KHR_MAINTENANCE3_SPEC_VERSION, 26}; } -template<> PropertyDesc makePropertyDesc(void) { return PropertyDesc{VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MESH_SHADER_PROPERTIES_NV, VK_NV_MESH_SHADER_EXTENSION_NAME, VK_NV_MESH_SHADER_SPEC_VERSION, 25}; } -template<> PropertyDesc makePropertyDesc(void) { return PropertyDesc{VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_PROPERTIES, VK_KHR_MULTIVIEW_EXTENSION_NAME, VK_KHR_MULTIVIEW_SPEC_VERSION, 24}; } -template<> PropertyDesc makePropertyDesc(void) { return PropertyDesc{VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_PER_VIEW_ATTRIBUTES_PROPERTIES_NVX, VK_NVX_MULTIVIEW_PER_VIEW_ATTRIBUTES_EXTENSION_NAME, VK_NVX_MULTIVIEW_PER_VIEW_ATTRIBUTES_SPEC_VERSION, 23}; } -template<> PropertyDesc makePropertyDesc(void) { return PropertyDesc{VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTI_DRAW_PROPERTIES_EXT, VK_EXT_MULTI_DRAW_EXTENSION_NAME, VK_EXT_MULTI_DRAW_SPEC_VERSION, 22}; } -template<> PropertyDesc makePropertyDesc(void) { return PropertyDesc{VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PERFORMANCE_QUERY_PROPERTIES_KHR, VK_KHR_PERFORMANCE_QUERY_EXTENSION_NAME, VK_KHR_PERFORMANCE_QUERY_SPEC_VERSION, 21}; } -template<> PropertyDesc makePropertyDesc(void) { return PropertyDesc{VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_POINT_CLIPPING_PROPERTIES, VK_KHR_MAINTENANCE2_EXTENSION_NAME, VK_KHR_MAINTENANCE2_SPEC_VERSION, 20}; } -template<> PropertyDesc makePropertyDesc(void) { return PropertyDesc{VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PORTABILITY_SUBSET_PROPERTIES_KHR, VK_KHR_PORTABILITY_SUBSET_EXTENSION_NAME, VK_KHR_PORTABILITY_SUBSET_SPEC_VERSION, 19}; } -template<> PropertyDesc makePropertyDesc(void) { return PropertyDesc{VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROTECTED_MEMORY_PROPERTIES, DECL_PROTECTED_MEMORY_EXTENSION_NAME, 0, 18}; } -template<> PropertyDesc makePropertyDesc(void) { return PropertyDesc{VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROVOKING_VERTEX_PROPERTIES_EXT, VK_EXT_PROVOKING_VERTEX_EXTENSION_NAME, VK_EXT_PROVOKING_VERTEX_SPEC_VERSION, 17}; } -template<> PropertyDesc makePropertyDesc(void) { return PropertyDesc{VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PUSH_DESCRIPTOR_PROPERTIES_KHR, VK_KHR_PUSH_DESCRIPTOR_EXTENSION_NAME, VK_KHR_PUSH_DESCRIPTOR_SPEC_VERSION, 16}; } -template<> PropertyDesc makePropertyDesc(void) { return PropertyDesc{VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_PROPERTIES_NV, VK_NV_RAY_TRACING_EXTENSION_NAME, VK_NV_RAY_TRACING_SPEC_VERSION, 15}; } -template<> PropertyDesc makePropertyDesc(void) { return PropertyDesc{VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_PIPELINE_PROPERTIES_KHR, VK_KHR_RAY_TRACING_PIPELINE_EXTENSION_NAME, VK_KHR_RAY_TRACING_PIPELINE_SPEC_VERSION, 14}; } -template<> PropertyDesc makePropertyDesc(void) { return PropertyDesc{VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ROBUSTNESS_2_PROPERTIES_EXT, VK_EXT_ROBUSTNESS_2_EXTENSION_NAME, VK_EXT_ROBUSTNESS_2_SPEC_VERSION, 13}; } -template<> PropertyDesc makePropertyDesc(void) { return PropertyDesc{VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SAMPLER_FILTER_MINMAX_PROPERTIES, VK_EXT_SAMPLER_FILTER_MINMAX_EXTENSION_NAME, VK_EXT_SAMPLER_FILTER_MINMAX_SPEC_VERSION, 12}; } -template<> PropertyDesc makePropertyDesc(void) { return PropertyDesc{VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SAMPLE_LOCATIONS_PROPERTIES_EXT, VK_EXT_SAMPLE_LOCATIONS_EXTENSION_NAME, VK_EXT_SAMPLE_LOCATIONS_SPEC_VERSION, 11}; } -template<> PropertyDesc makePropertyDesc(void) { return PropertyDesc{VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_CORE_PROPERTIES_AMD, VK_AMD_SHADER_CORE_PROPERTIES_EXTENSION_NAME, VK_AMD_SHADER_CORE_PROPERTIES_SPEC_VERSION, 10}; } -template<> PropertyDesc makePropertyDesc(void) { return PropertyDesc{VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_CORE_PROPERTIES_2_AMD, VK_AMD_SHADER_CORE_PROPERTIES_2_EXTENSION_NAME, VK_AMD_SHADER_CORE_PROPERTIES_2_SPEC_VERSION, 9}; } +template<> PropertyDesc makePropertyDesc(void) { return PropertyDesc{VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ACCELERATION_STRUCTURE_PROPERTIES_KHR, VK_KHR_ACCELERATION_STRUCTURE_EXTENSION_NAME, VK_KHR_ACCELERATION_STRUCTURE_SPEC_VERSION, 47}; } +template<> PropertyDesc makePropertyDesc(void) { return PropertyDesc{VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_BLEND_OPERATION_ADVANCED_PROPERTIES_EXT, VK_EXT_BLEND_OPERATION_ADVANCED_EXTENSION_NAME, VK_EXT_BLEND_OPERATION_ADVANCED_SPEC_VERSION, 46}; } +template<> PropertyDesc makePropertyDesc(void) { return PropertyDesc{VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CONSERVATIVE_RASTERIZATION_PROPERTIES_EXT, VK_EXT_CONSERVATIVE_RASTERIZATION_EXTENSION_NAME, VK_EXT_CONSERVATIVE_RASTERIZATION_SPEC_VERSION, 45}; } +template<> PropertyDesc makePropertyDesc(void) { return PropertyDesc{VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COOPERATIVE_MATRIX_PROPERTIES_NV, VK_NV_COOPERATIVE_MATRIX_EXTENSION_NAME, VK_NV_COOPERATIVE_MATRIX_SPEC_VERSION, 44}; } +template<> PropertyDesc makePropertyDesc(void) { return PropertyDesc{VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CUSTOM_BORDER_COLOR_PROPERTIES_EXT, VK_EXT_CUSTOM_BORDER_COLOR_EXTENSION_NAME, VK_EXT_CUSTOM_BORDER_COLOR_SPEC_VERSION, 43}; } +template<> PropertyDesc makePropertyDesc(void) { return PropertyDesc{VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEPTH_STENCIL_RESOLVE_PROPERTIES, VK_KHR_DEPTH_STENCIL_RESOLVE_EXTENSION_NAME, VK_KHR_DEPTH_STENCIL_RESOLVE_SPEC_VERSION, 42}; } +template<> PropertyDesc makePropertyDesc(void) { return PropertyDesc{VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_INDEXING_PROPERTIES, VK_EXT_DESCRIPTOR_INDEXING_EXTENSION_NAME, VK_EXT_DESCRIPTOR_INDEXING_SPEC_VERSION, 41}; } +template<> PropertyDesc makePropertyDesc(void) { return PropertyDesc{VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEVICE_GENERATED_COMMANDS_PROPERTIES_NV, VK_NV_DEVICE_GENERATED_COMMANDS_EXTENSION_NAME, VK_NV_DEVICE_GENERATED_COMMANDS_SPEC_VERSION, 40}; } +template<> PropertyDesc makePropertyDesc(void) { return PropertyDesc{VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DISCARD_RECTANGLE_PROPERTIES_EXT, VK_EXT_DISCARD_RECTANGLES_EXTENSION_NAME, VK_EXT_DISCARD_RECTANGLES_SPEC_VERSION, 39}; } +template<> PropertyDesc makePropertyDesc(void) { return PropertyDesc{VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DRIVER_PROPERTIES, VK_KHR_DRIVER_PROPERTIES_EXTENSION_NAME, VK_KHR_DRIVER_PROPERTIES_SPEC_VERSION, 38}; } +template<> PropertyDesc makePropertyDesc(void) { return PropertyDesc{VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DRM_PROPERTIES_EXT, VK_EXT_PHYSICAL_DEVICE_DRM_EXTENSION_NAME, VK_EXT_PHYSICAL_DEVICE_DRM_SPEC_VERSION, 37}; } +template<> PropertyDesc makePropertyDesc(void) { return PropertyDesc{VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_MEMORY_HOST_PROPERTIES_EXT, VK_EXT_EXTERNAL_MEMORY_HOST_EXTENSION_NAME, VK_EXT_EXTERNAL_MEMORY_HOST_SPEC_VERSION, 36}; } +template<> PropertyDesc makePropertyDesc(void) { return PropertyDesc{VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FLOAT_CONTROLS_PROPERTIES, VK_KHR_SHADER_FLOAT_CONTROLS_EXTENSION_NAME, VK_KHR_SHADER_FLOAT_CONTROLS_SPEC_VERSION, 35}; } +template<> PropertyDesc makePropertyDesc(void) { return PropertyDesc{VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_PROPERTIES_EXT, VK_EXT_FRAGMENT_DENSITY_MAP_EXTENSION_NAME, VK_EXT_FRAGMENT_DENSITY_MAP_SPEC_VERSION, 34}; } +template<> PropertyDesc makePropertyDesc(void) { return PropertyDesc{VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_2_PROPERTIES_EXT, VK_EXT_FRAGMENT_DENSITY_MAP_2_EXTENSION_NAME, VK_EXT_FRAGMENT_DENSITY_MAP_2_SPEC_VERSION, 33}; } +template<> PropertyDesc makePropertyDesc(void) { return PropertyDesc{VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADING_RATE_PROPERTIES_KHR, VK_KHR_FRAGMENT_SHADING_RATE_EXTENSION_NAME, VK_KHR_FRAGMENT_SHADING_RATE_SPEC_VERSION, 32}; } +template<> PropertyDesc makePropertyDesc(void) { return PropertyDesc{VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADING_RATE_ENUMS_PROPERTIES_NV, VK_NV_FRAGMENT_SHADING_RATE_ENUMS_EXTENSION_NAME, VK_NV_FRAGMENT_SHADING_RATE_ENUMS_SPEC_VERSION, 31}; } +template<> PropertyDesc makePropertyDesc(void) { return PropertyDesc{VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ID_PROPERTIES, VK_KHR_PRESENT_ID_EXTENSION_NAME, VK_KHR_PRESENT_ID_SPEC_VERSION, 30}; } +template<> PropertyDesc makePropertyDesc(void) { return PropertyDesc{VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_INLINE_UNIFORM_BLOCK_PROPERTIES_EXT, VK_EXT_INLINE_UNIFORM_BLOCK_EXTENSION_NAME, VK_EXT_INLINE_UNIFORM_BLOCK_SPEC_VERSION, 29}; } +template<> PropertyDesc makePropertyDesc(void) { return PropertyDesc{VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_LINE_RASTERIZATION_PROPERTIES_EXT, VK_EXT_LINE_RASTERIZATION_EXTENSION_NAME, VK_EXT_LINE_RASTERIZATION_SPEC_VERSION, 28}; } +template<> PropertyDesc makePropertyDesc(void) { return PropertyDesc{VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_3_PROPERTIES, VK_KHR_MAINTENANCE3_EXTENSION_NAME, VK_KHR_MAINTENANCE3_SPEC_VERSION, 27}; } +template<> PropertyDesc makePropertyDesc(void) { return PropertyDesc{VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MESH_SHADER_PROPERTIES_NV, VK_NV_MESH_SHADER_EXTENSION_NAME, VK_NV_MESH_SHADER_SPEC_VERSION, 26}; } +template<> PropertyDesc makePropertyDesc(void) { return PropertyDesc{VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_PROPERTIES, VK_KHR_MULTIVIEW_EXTENSION_NAME, VK_KHR_MULTIVIEW_SPEC_VERSION, 25}; } +template<> PropertyDesc makePropertyDesc(void) { return PropertyDesc{VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_PER_VIEW_ATTRIBUTES_PROPERTIES_NVX, VK_NVX_MULTIVIEW_PER_VIEW_ATTRIBUTES_EXTENSION_NAME, VK_NVX_MULTIVIEW_PER_VIEW_ATTRIBUTES_SPEC_VERSION, 24}; } +template<> PropertyDesc makePropertyDesc(void) { return PropertyDesc{VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTI_DRAW_PROPERTIES_EXT, VK_EXT_MULTI_DRAW_EXTENSION_NAME, VK_EXT_MULTI_DRAW_SPEC_VERSION, 23}; } +template<> PropertyDesc makePropertyDesc(void) { return PropertyDesc{VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PERFORMANCE_QUERY_PROPERTIES_KHR, VK_KHR_PERFORMANCE_QUERY_EXTENSION_NAME, VK_KHR_PERFORMANCE_QUERY_SPEC_VERSION, 22}; } +template<> PropertyDesc makePropertyDesc(void) { return PropertyDesc{VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_POINT_CLIPPING_PROPERTIES, VK_KHR_MAINTENANCE2_EXTENSION_NAME, VK_KHR_MAINTENANCE2_SPEC_VERSION, 21}; } +template<> PropertyDesc makePropertyDesc(void) { return PropertyDesc{VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PORTABILITY_SUBSET_PROPERTIES_KHR, VK_KHR_PORTABILITY_SUBSET_EXTENSION_NAME, VK_KHR_PORTABILITY_SUBSET_SPEC_VERSION, 20}; } +template<> PropertyDesc makePropertyDesc(void) { return PropertyDesc{VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROTECTED_MEMORY_PROPERTIES, DECL_PROTECTED_MEMORY_EXTENSION_NAME, 0, 19}; } +template<> PropertyDesc makePropertyDesc(void) { return PropertyDesc{VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROVOKING_VERTEX_PROPERTIES_EXT, VK_EXT_PROVOKING_VERTEX_EXTENSION_NAME, VK_EXT_PROVOKING_VERTEX_SPEC_VERSION, 18}; } +template<> PropertyDesc makePropertyDesc(void) { return PropertyDesc{VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PUSH_DESCRIPTOR_PROPERTIES_KHR, VK_KHR_PUSH_DESCRIPTOR_EXTENSION_NAME, VK_KHR_PUSH_DESCRIPTOR_SPEC_VERSION, 17}; } +template<> PropertyDesc makePropertyDesc(void) { return PropertyDesc{VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_PROPERTIES_NV, VK_NV_RAY_TRACING_EXTENSION_NAME, VK_NV_RAY_TRACING_SPEC_VERSION, 16}; } +template<> PropertyDesc makePropertyDesc(void) { return PropertyDesc{VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_PIPELINE_PROPERTIES_KHR, VK_KHR_RAY_TRACING_PIPELINE_EXTENSION_NAME, VK_KHR_RAY_TRACING_PIPELINE_SPEC_VERSION, 15}; } +template<> PropertyDesc makePropertyDesc(void) { return PropertyDesc{VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ROBUSTNESS_2_PROPERTIES_EXT, VK_EXT_ROBUSTNESS_2_EXTENSION_NAME, VK_EXT_ROBUSTNESS_2_SPEC_VERSION, 14}; } +template<> PropertyDesc makePropertyDesc(void) { return PropertyDesc{VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SAMPLER_FILTER_MINMAX_PROPERTIES, VK_EXT_SAMPLER_FILTER_MINMAX_EXTENSION_NAME, VK_EXT_SAMPLER_FILTER_MINMAX_SPEC_VERSION, 13}; } +template<> PropertyDesc makePropertyDesc(void) { return PropertyDesc{VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SAMPLE_LOCATIONS_PROPERTIES_EXT, VK_EXT_SAMPLE_LOCATIONS_EXTENSION_NAME, VK_EXT_SAMPLE_LOCATIONS_SPEC_VERSION, 12}; } +template<> PropertyDesc makePropertyDesc(void) { return PropertyDesc{VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_CORE_PROPERTIES_AMD, VK_AMD_SHADER_CORE_PROPERTIES_EXTENSION_NAME, VK_AMD_SHADER_CORE_PROPERTIES_SPEC_VERSION, 11}; } +template<> PropertyDesc makePropertyDesc(void) { return PropertyDesc{VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_CORE_PROPERTIES_2_AMD, VK_AMD_SHADER_CORE_PROPERTIES_2_EXTENSION_NAME, VK_AMD_SHADER_CORE_PROPERTIES_2_SPEC_VERSION, 10}; } +template<> PropertyDesc makePropertyDesc(void) { return PropertyDesc{VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_INTEGER_DOT_PRODUCT_PROPERTIES_KHR, VK_KHR_SHADER_INTEGER_DOT_PRODUCT_EXTENSION_NAME, VK_KHR_SHADER_INTEGER_DOT_PRODUCT_SPEC_VERSION, 9}; } template<> PropertyDesc makePropertyDesc(void) { return PropertyDesc{VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADING_RATE_IMAGE_PROPERTIES_NV, VK_NV_SHADING_RATE_IMAGE_EXTENSION_NAME, VK_NV_SHADING_RATE_IMAGE_SPEC_VERSION, 8}; } template<> PropertyDesc makePropertyDesc(void) { return PropertyDesc{VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBGROUP_PROPERTIES, DECL_SUBGROUP_EXTENSION_NAME, 0, 7}; } template<> PropertyDesc makePropertyDesc(void) { return PropertyDesc{VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBGROUP_SIZE_CONTROL_PROPERTIES_EXT, VK_EXT_SUBGROUP_SIZE_CONTROL_EXTENSION_NAME, VK_EXT_SUBGROUP_SIZE_CONTROL_SPEC_VERSION, 6}; } @@ -290,6 +293,7 @@ static const PropertyStructCreationData propertyStructCreationArray[] = { createPropertyStructWrapper, VK_EXT_SAMPLE_LOCATIONS_EXTENSION_NAME, VK_EXT_SAMPLE_LOCATIONS_SPEC_VERSION }, { createPropertyStructWrapper, VK_AMD_SHADER_CORE_PROPERTIES_EXTENSION_NAME, VK_AMD_SHADER_CORE_PROPERTIES_SPEC_VERSION }, { createPropertyStructWrapper, VK_AMD_SHADER_CORE_PROPERTIES_2_EXTENSION_NAME, VK_AMD_SHADER_CORE_PROPERTIES_2_SPEC_VERSION }, + { createPropertyStructWrapper, VK_KHR_SHADER_INTEGER_DOT_PRODUCT_EXTENSION_NAME, VK_KHR_SHADER_INTEGER_DOT_PRODUCT_SPEC_VERSION }, { createPropertyStructWrapper, VK_NV_SHADING_RATE_IMAGE_EXTENSION_NAME, VK_NV_SHADING_RATE_IMAGE_SPEC_VERSION }, { createPropertyStructWrapper, DECL_SUBGROUP_EXTENSION_NAME, 0 }, { createPropertyStructWrapper, VK_EXT_SUBGROUP_SIZE_CONTROL_EXTENSION_NAME, VK_EXT_SUBGROUP_SIZE_CONTROL_SPEC_VERSION }, diff --git a/external/vulkancts/framework/vulkan/vkDevicePropertiesForContextDecl.inl b/external/vulkancts/framework/vulkan/vkDevicePropertiesForContextDecl.inl index 1f7bbc3..250edd8 100644 --- a/external/vulkancts/framework/vulkan/vkDevicePropertiesForContextDecl.inl +++ b/external/vulkancts/framework/vulkan/vkDevicePropertiesForContextDecl.inl @@ -39,6 +39,7 @@ const vk::VkPhysicalDeviceSamplerFilterMinmaxProperties& getSamplerFilterMinma const vk::VkPhysicalDeviceSampleLocationsPropertiesEXT& getSampleLocationsPropertiesEXT (void) const; const vk::VkPhysicalDeviceShaderCorePropertiesAMD& getShaderCorePropertiesAMD (void) const; const vk::VkPhysicalDeviceShaderCoreProperties2AMD& getShaderCoreProperties2AMD (void) const; +const vk::VkPhysicalDeviceShaderIntegerDotProductPropertiesKHR& getShaderIntegerDotProductProperties (void) const; const vk::VkPhysicalDeviceShadingRateImagePropertiesNV& getShadingRateImageProperties (void) const; const vk::VkPhysicalDeviceSubgroupProperties& getSubgroupProperties (void) const; const vk::VkPhysicalDeviceSubgroupSizeControlPropertiesEXT& getSubgroupSizeControlPropertiesEXT (void) const; diff --git a/external/vulkancts/framework/vulkan/vkDevicePropertiesForContextDefs.inl b/external/vulkancts/framework/vulkan/vkDevicePropertiesForContextDefs.inl index 2263061..5078df6 100644 --- a/external/vulkancts/framework/vulkan/vkDevicePropertiesForContextDefs.inl +++ b/external/vulkancts/framework/vulkan/vkDevicePropertiesForContextDefs.inl @@ -39,6 +39,7 @@ const vk::VkPhysicalDeviceSamplerFilterMinmaxProperties& Context::getSamplerFi const vk::VkPhysicalDeviceSampleLocationsPropertiesEXT& Context::getSampleLocationsPropertiesEXT (void) const { return m_device->getSampleLocationsPropertiesEXT(); } const vk::VkPhysicalDeviceShaderCorePropertiesAMD& Context::getShaderCorePropertiesAMD (void) const { return m_device->getShaderCorePropertiesAMD(); } const vk::VkPhysicalDeviceShaderCoreProperties2AMD& Context::getShaderCoreProperties2AMD (void) const { return m_device->getShaderCoreProperties2AMD(); } +const vk::VkPhysicalDeviceShaderIntegerDotProductPropertiesKHR& Context::getShaderIntegerDotProductProperties (void) const { return m_device->getShaderIntegerDotProductProperties(); } const vk::VkPhysicalDeviceShadingRateImagePropertiesNV& Context::getShadingRateImageProperties (void) const { return m_device->getShadingRateImageProperties(); } const vk::VkPhysicalDeviceSubgroupProperties& Context::getSubgroupProperties (void) const { return m_device->getSubgroupProperties(); } const vk::VkPhysicalDeviceSubgroupSizeControlPropertiesEXT& Context::getSubgroupSizeControlPropertiesEXT (void) const { return m_device->getSubgroupSizeControlPropertiesEXT(); } diff --git a/external/vulkancts/framework/vulkan/vkDevicePropertiesForDefaultDeviceDefs.inl b/external/vulkancts/framework/vulkan/vkDevicePropertiesForDefaultDeviceDefs.inl index 0457823..33d7f17 100644 --- a/external/vulkancts/framework/vulkan/vkDevicePropertiesForDefaultDeviceDefs.inl +++ b/external/vulkancts/framework/vulkan/vkDevicePropertiesForDefaultDeviceDefs.inl @@ -39,6 +39,7 @@ const VkPhysicalDeviceSamplerFilterMinmaxProperties& getSamplerFilterMinmaxPro const VkPhysicalDeviceSampleLocationsPropertiesEXT& getSampleLocationsPropertiesEXT (void) const { return m_deviceProperties.getPropertyType(); } const VkPhysicalDeviceShaderCorePropertiesAMD& getShaderCorePropertiesAMD (void) const { return m_deviceProperties.getPropertyType(); } const VkPhysicalDeviceShaderCoreProperties2AMD& getShaderCoreProperties2AMD (void) const { return m_deviceProperties.getPropertyType(); } +const VkPhysicalDeviceShaderIntegerDotProductPropertiesKHR& getShaderIntegerDotProductProperties (void) const { return m_deviceProperties.getPropertyType(); } const VkPhysicalDeviceShadingRateImagePropertiesNV& getShadingRateImageProperties (void) const { return m_deviceProperties.getPropertyType(); } const VkPhysicalDeviceSubgroupProperties& getSubgroupProperties (void) const { return m_deviceProperties.getPropertyType(); } const VkPhysicalDeviceSubgroupSizeControlPropertiesEXT& getSubgroupSizeControlPropertiesEXT (void) const { return m_deviceProperties.getPropertyType(); } diff --git a/external/vulkancts/framework/vulkan/vkExtensionFunctions.inl b/external/vulkancts/framework/vulkan/vkExtensionFunctions.inl index 378eac1..2b90be4 100644 --- a/external/vulkancts/framework/vulkan/vkExtensionFunctions.inl +++ b/external/vulkancts/framework/vulkan/vkExtensionFunctions.inl @@ -286,6 +286,10 @@ void getInstanceExtensionFunctions (uint32_t apiVersion, ::std::string extName, { return; } + if (extName == "VK_KHR_shader_integer_dot_product") + { + return; + } if (extName == "VK_KHR_pipeline_library") { return; @@ -1402,6 +1406,10 @@ void getDeviceExtensionFunctions (uint32_t apiVersion, ::std::string extName, :: functions.push_back("vkGetPipelineExecutableInternalRepresentationsKHR"); return; } + if (extName == "VK_KHR_shader_integer_dot_product") + { + return; + } if (extName == "VK_KHR_pipeline_library") { return; diff --git a/external/vulkancts/framework/vulkan/vkGetStructureTypeImpl.inl b/external/vulkancts/framework/vulkan/vkGetStructureTypeImpl.inl index 4b4f290..3df96eb 100644 --- a/external/vulkancts/framework/vulkan/vkGetStructureTypeImpl.inl +++ b/external/vulkancts/framework/vulkan/vkGetStructureTypeImpl.inl @@ -1066,6 +1066,16 @@ template<> VkStructureType getStructureType VkStructureType getStructureType (void) +{ + return VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_INTEGER_DOT_PRODUCT_FEATURES_KHR; +} + +template<> VkStructureType getStructureType (void) +{ + return VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_INTEGER_DOT_PRODUCT_PROPERTIES_KHR; +} + template<> VkStructureType getStructureType (void) { return VK_STRUCTURE_TYPE_PIPELINE_LIBRARY_CREATE_INFO_KHR; diff --git a/external/vulkancts/framework/vulkan/vkMandatoryFeatures.inl b/external/vulkancts/framework/vulkan/vkMandatoryFeatures.inl index e014ffc..08aa888 100644 --- a/external/vulkancts/framework/vulkan/vkMandatoryFeatures.inl +++ b/external/vulkancts/framework/vulkan/vkMandatoryFeatures.inl @@ -406,6 +406,16 @@ bool checkMandatoryFeatures(const vkt::Context& context) nextPtr = &physicalDeviceShaderImageAtomicInt64FeaturesEXT.pNext; } + vk::VkPhysicalDeviceShaderIntegerDotProductFeaturesKHR physicalDeviceShaderIntegerDotProductFeaturesKHR; + deMemset(&physicalDeviceShaderIntegerDotProductFeaturesKHR, 0, sizeof(physicalDeviceShaderIntegerDotProductFeaturesKHR)); + + if ( isExtensionSupported(deviceExtensions, RequiredExtension("VK_KHR_shader_integer_dot_product")) ) + { + physicalDeviceShaderIntegerDotProductFeaturesKHR.sType = getStructureType(); + *nextPtr = &physicalDeviceShaderIntegerDotProductFeaturesKHR; + nextPtr = &physicalDeviceShaderIntegerDotProductFeaturesKHR.pNext; + } + vk::VkPhysicalDeviceShaderSubgroupExtendedTypesFeaturesKHR physicalDeviceShaderSubgroupExtendedTypesFeaturesKHR; deMemset(&physicalDeviceShaderSubgroupExtendedTypesFeaturesKHR, 0, sizeof(physicalDeviceShaderSubgroupExtendedTypesFeaturesKHR)); @@ -1895,6 +1905,15 @@ bool checkMandatoryFeatures(const vkt::Context& context) } } + if ( isExtensionSupported(deviceExtensions, RequiredExtension("VK_KHR_shader_integer_dot_product")) ) + { + if ( physicalDeviceShaderIntegerDotProductFeaturesKHR.shaderIntegerDotProduct == VK_FALSE ) + { + log << tcu::TestLog::Message << "Mandatory feature shaderIntegerDotProduct not supported" << tcu::TestLog::EndMessage; + result = false; + } + } + return result; } diff --git a/external/vulkancts/framework/vulkan/vkStrUtil.inl b/external/vulkancts/framework/vulkan/vkStrUtil.inl index 7d9e18b..ec039c4 100644 --- a/external/vulkancts/framework/vulkan/vkStrUtil.inl +++ b/external/vulkancts/framework/vulkan/vkStrUtil.inl @@ -794,6 +794,8 @@ std::ostream& operator<< (std::ostream& s, const VkPipelineExecutableInfoKHR& va std::ostream& operator<< (std::ostream& s, const VkPipelineExecutableStatisticValueKHR& value); std::ostream& operator<< (std::ostream& s, const VkPipelineExecutableStatisticKHR& value); std::ostream& operator<< (std::ostream& s, const VkPipelineExecutableInternalRepresentationKHR& value); +std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceShaderIntegerDotProductFeaturesKHR& value); +std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceShaderIntegerDotProductPropertiesKHR& value); std::ostream& operator<< (std::ostream& s, const VkPipelineLibraryCreateInfoKHR& value); std::ostream& operator<< (std::ostream& s, const VkPresentIdKHR& value); std::ostream& operator<< (std::ostream& s, const VkPhysicalDevicePresentIdFeaturesKHR& value); diff --git a/external/vulkancts/framework/vulkan/vkStrUtilImpl.inl b/external/vulkancts/framework/vulkan/vkStrUtilImpl.inl index 38b06d4..59da5cd 100644 --- a/external/vulkancts/framework/vulkan/vkStrUtilImpl.inl +++ b/external/vulkancts/framework/vulkan/vkStrUtilImpl.inl @@ -607,6 +607,8 @@ const char* getStructureTypeName (VkStructureType value) case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEVICE_GENERATED_COMMANDS_FEATURES_NV: return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEVICE_GENERATED_COMMANDS_FEATURES_NV"; case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_INHERITED_VIEWPORT_SCISSOR_FEATURES_NV: return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_INHERITED_VIEWPORT_SCISSOR_FEATURES_NV"; case VK_STRUCTURE_TYPE_COMMAND_BUFFER_INHERITANCE_VIEWPORT_SCISSOR_INFO_NV: return "VK_STRUCTURE_TYPE_COMMAND_BUFFER_INHERITANCE_VIEWPORT_SCISSOR_INFO_NV"; + case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_INTEGER_DOT_PRODUCT_FEATURES_KHR: return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_INTEGER_DOT_PRODUCT_FEATURES_KHR"; + case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_INTEGER_DOT_PRODUCT_PROPERTIES_KHR: return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_INTEGER_DOT_PRODUCT_PROPERTIES_KHR"; case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TEXEL_BUFFER_ALIGNMENT_FEATURES_EXT: return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TEXEL_BUFFER_ALIGNMENT_FEATURES_EXT"; case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TEXEL_BUFFER_ALIGNMENT_PROPERTIES_EXT: return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TEXEL_BUFFER_ALIGNMENT_PROPERTIES_EXT"; case VK_STRUCTURE_TYPE_COMMAND_BUFFER_INHERITANCE_RENDER_PASS_TRANSFORM_INFO_QCOM: return "VK_STRUCTURE_TYPE_COMMAND_BUFFER_INHERITANCE_RENDER_PASS_TRANSFORM_INFO_QCOM"; @@ -8220,6 +8222,55 @@ std::ostream& operator<< (std::ostream& s, const VkPipelineExecutableInternalRep return s; } +std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceShaderIntegerDotProductFeaturesKHR& value) +{ + s << "VkPhysicalDeviceShaderIntegerDotProductFeaturesKHR = {\n"; + s << "\tsType = " << value.sType << '\n'; + s << "\tpNext = " << value.pNext << '\n'; + s << "\tshaderIntegerDotProduct = " << value.shaderIntegerDotProduct << '\n'; + s << '}'; + return s; +} + +std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceShaderIntegerDotProductPropertiesKHR& value) +{ + s << "VkPhysicalDeviceShaderIntegerDotProductPropertiesKHR = {\n"; + s << "\tsType = " << value.sType << '\n'; + s << "\tpNext = " << value.pNext << '\n'; + s << "\tintegerDotProduct8BitUnsignedAccelerated = " << value.integerDotProduct8BitUnsignedAccelerated << '\n'; + s << "\tintegerDotProduct8BitSignedAccelerated = " << value.integerDotProduct8BitSignedAccelerated << '\n'; + s << "\tintegerDotProduct8BitMixedSignednessAccelerated = " << value.integerDotProduct8BitMixedSignednessAccelerated << '\n'; + s << "\tintegerDotProduct4x8BitPackedUnsignedAccelerated = " << value.integerDotProduct4x8BitPackedUnsignedAccelerated << '\n'; + s << "\tintegerDotProduct4x8BitPackedSignedAccelerated = " << value.integerDotProduct4x8BitPackedSignedAccelerated << '\n'; + s << "\tintegerDotProduct4x8BitPackedMixedSignednessAccelerated = " << value.integerDotProduct4x8BitPackedMixedSignednessAccelerated << '\n'; + s << "\tintegerDotProduct16BitUnsignedAccelerated = " << value.integerDotProduct16BitUnsignedAccelerated << '\n'; + s << "\tintegerDotProduct16BitSignedAccelerated = " << value.integerDotProduct16BitSignedAccelerated << '\n'; + s << "\tintegerDotProduct16BitMixedSignednessAccelerated = " << value.integerDotProduct16BitMixedSignednessAccelerated << '\n'; + s << "\tintegerDotProduct32BitUnsignedAccelerated = " << value.integerDotProduct32BitUnsignedAccelerated << '\n'; + s << "\tintegerDotProduct32BitSignedAccelerated = " << value.integerDotProduct32BitSignedAccelerated << '\n'; + s << "\tintegerDotProduct32BitMixedSignednessAccelerated = " << value.integerDotProduct32BitMixedSignednessAccelerated << '\n'; + s << "\tintegerDotProduct64BitUnsignedAccelerated = " << value.integerDotProduct64BitUnsignedAccelerated << '\n'; + s << "\tintegerDotProduct64BitSignedAccelerated = " << value.integerDotProduct64BitSignedAccelerated << '\n'; + s << "\tintegerDotProduct64BitMixedSignednessAccelerated = " << value.integerDotProduct64BitMixedSignednessAccelerated << '\n'; + s << "\tintegerDotProductAccumulatingSaturating8BitUnsignedAccelerated = " << value.integerDotProductAccumulatingSaturating8BitUnsignedAccelerated << '\n'; + s << "\tintegerDotProductAccumulatingSaturating8BitSignedAccelerated = " << value.integerDotProductAccumulatingSaturating8BitSignedAccelerated << '\n'; + s << "\tintegerDotProductAccumulatingSaturating8BitMixedSignednessAccelerated = " << value.integerDotProductAccumulatingSaturating8BitMixedSignednessAccelerated << '\n'; + s << "\tintegerDotProductAccumulatingSaturating4x8BitPackedUnsignedAccelerated = " << value.integerDotProductAccumulatingSaturating4x8BitPackedUnsignedAccelerated << '\n'; + s << "\tintegerDotProductAccumulatingSaturating4x8BitPackedSignedAccelerated = " << value.integerDotProductAccumulatingSaturating4x8BitPackedSignedAccelerated << '\n'; + s << "\tintegerDotProductAccumulatingSaturating4x8BitPackedMixedSignednessAccelerated = " << value.integerDotProductAccumulatingSaturating4x8BitPackedMixedSignednessAccelerated << '\n'; + s << "\tintegerDotProductAccumulatingSaturating16BitUnsignedAccelerated = " << value.integerDotProductAccumulatingSaturating16BitUnsignedAccelerated << '\n'; + s << "\tintegerDotProductAccumulatingSaturating16BitSignedAccelerated = " << value.integerDotProductAccumulatingSaturating16BitSignedAccelerated << '\n'; + s << "\tintegerDotProductAccumulatingSaturating16BitMixedSignednessAccelerated = " << value.integerDotProductAccumulatingSaturating16BitMixedSignednessAccelerated << '\n'; + s << "\tintegerDotProductAccumulatingSaturating32BitUnsignedAccelerated = " << value.integerDotProductAccumulatingSaturating32BitUnsignedAccelerated << '\n'; + s << "\tintegerDotProductAccumulatingSaturating32BitSignedAccelerated = " << value.integerDotProductAccumulatingSaturating32BitSignedAccelerated << '\n'; + s << "\tintegerDotProductAccumulatingSaturating32BitMixedSignednessAccelerated = " << value.integerDotProductAccumulatingSaturating32BitMixedSignednessAccelerated << '\n'; + s << "\tintegerDotProductAccumulatingSaturating64BitUnsignedAccelerated = " << value.integerDotProductAccumulatingSaturating64BitUnsignedAccelerated << '\n'; + s << "\tintegerDotProductAccumulatingSaturating64BitSignedAccelerated = " << value.integerDotProductAccumulatingSaturating64BitSignedAccelerated << '\n'; + s << "\tintegerDotProductAccumulatingSaturating64BitMixedSignednessAccelerated = " << value.integerDotProductAccumulatingSaturating64BitMixedSignednessAccelerated << '\n'; + s << '}'; + return s; +} + std::ostream& operator<< (std::ostream& s, const VkPipelineLibraryCreateInfoKHR& value) { s << "VkPipelineLibraryCreateInfoKHR = {\n"; diff --git a/external/vulkancts/framework/vulkan/vkStructTypes.inl b/external/vulkancts/framework/vulkan/vkStructTypes.inl index 82e34a7..5277628 100644 --- a/external/vulkancts/framework/vulkan/vkStructTypes.inl +++ b/external/vulkancts/framework/vulkan/vkStructTypes.inl @@ -2907,6 +2907,49 @@ struct VkPipelineExecutableInternalRepresentationKHR void* pData; }; +struct VkPhysicalDeviceShaderIntegerDotProductFeaturesKHR +{ + VkStructureType sType; + void* pNext; + VkBool32 shaderIntegerDotProduct; +}; + +struct VkPhysicalDeviceShaderIntegerDotProductPropertiesKHR +{ + VkStructureType sType; + void* pNext; + VkBool32 integerDotProduct8BitUnsignedAccelerated; + VkBool32 integerDotProduct8BitSignedAccelerated; + VkBool32 integerDotProduct8BitMixedSignednessAccelerated; + VkBool32 integerDotProduct4x8BitPackedUnsignedAccelerated; + VkBool32 integerDotProduct4x8BitPackedSignedAccelerated; + VkBool32 integerDotProduct4x8BitPackedMixedSignednessAccelerated; + VkBool32 integerDotProduct16BitUnsignedAccelerated; + VkBool32 integerDotProduct16BitSignedAccelerated; + VkBool32 integerDotProduct16BitMixedSignednessAccelerated; + VkBool32 integerDotProduct32BitUnsignedAccelerated; + VkBool32 integerDotProduct32BitSignedAccelerated; + VkBool32 integerDotProduct32BitMixedSignednessAccelerated; + VkBool32 integerDotProduct64BitUnsignedAccelerated; + VkBool32 integerDotProduct64BitSignedAccelerated; + VkBool32 integerDotProduct64BitMixedSignednessAccelerated; + VkBool32 integerDotProductAccumulatingSaturating8BitUnsignedAccelerated; + VkBool32 integerDotProductAccumulatingSaturating8BitSignedAccelerated; + VkBool32 integerDotProductAccumulatingSaturating8BitMixedSignednessAccelerated; + VkBool32 integerDotProductAccumulatingSaturating4x8BitPackedUnsignedAccelerated; + VkBool32 integerDotProductAccumulatingSaturating4x8BitPackedSignedAccelerated; + VkBool32 integerDotProductAccumulatingSaturating4x8BitPackedMixedSignednessAccelerated; + VkBool32 integerDotProductAccumulatingSaturating16BitUnsignedAccelerated; + VkBool32 integerDotProductAccumulatingSaturating16BitSignedAccelerated; + VkBool32 integerDotProductAccumulatingSaturating16BitMixedSignednessAccelerated; + VkBool32 integerDotProductAccumulatingSaturating32BitUnsignedAccelerated; + VkBool32 integerDotProductAccumulatingSaturating32BitSignedAccelerated; + VkBool32 integerDotProductAccumulatingSaturating32BitMixedSignednessAccelerated; + VkBool32 integerDotProductAccumulatingSaturating64BitUnsignedAccelerated; + VkBool32 integerDotProductAccumulatingSaturating64BitSignedAccelerated; + VkBool32 integerDotProductAccumulatingSaturating64BitMixedSignednessAccelerated; +}; + struct VkPipelineLibraryCreateInfoKHR { VkStructureType sType; diff --git a/external/vulkancts/framework/vulkan/vkVulkan_c.inl b/external/vulkancts/framework/vulkan/vkVulkan_c.inl index a513f0c..d79fc97 100644 --- a/external/vulkancts/framework/vulkan/vkVulkan_c.inl +++ b/external/vulkancts/framework/vulkan/vkVulkan_c.inl @@ -1658,6 +1658,8 @@ typedef enum VkStructureType { VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEVICE_GENERATED_COMMANDS_FEATURES_NV = 1000277007, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_INHERITED_VIEWPORT_SCISSOR_FEATURES_NV = 1000278000, VK_STRUCTURE_TYPE_COMMAND_BUFFER_INHERITANCE_VIEWPORT_SCISSOR_INFO_NV = 1000278001, + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_INTEGER_DOT_PRODUCT_FEATURES_KHR = 1000280000, + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_INTEGER_DOT_PRODUCT_PROPERTIES_KHR = 1000280001, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TEXEL_BUFFER_ALIGNMENT_FEATURES_EXT = 1000281000, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TEXEL_BUFFER_ALIGNMENT_PROPERTIES_EXT = 1000281001, VK_STRUCTURE_TYPE_COMMAND_BUFFER_INHERITANCE_RENDER_PASS_TRANSFORM_INFO_QCOM = 1000282000, @@ -8771,6 +8773,52 @@ VKAPI_ATTR VkResult VKAPI_CALL vkGetPipelineExecutableInternalRepresentationsKHR #endif +#define VK_KHR_shader_integer_dot_product 1 +#define VK_KHR_SHADER_INTEGER_DOT_PRODUCT_SPEC_VERSION 1 +#define VK_KHR_SHADER_INTEGER_DOT_PRODUCT_EXTENSION_NAME "VK_KHR_shader_integer_dot_product" +typedef struct VkPhysicalDeviceShaderIntegerDotProductFeaturesKHR { + VkStructureType sType; + void* pNext; + VkBool32 shaderIntegerDotProduct; +} VkPhysicalDeviceShaderIntegerDotProductFeaturesKHR; + +typedef struct VkPhysicalDeviceShaderIntegerDotProductPropertiesKHR { + VkStructureType sType; + void* pNext; + VkBool32 integerDotProduct8BitUnsignedAccelerated; + VkBool32 integerDotProduct8BitSignedAccelerated; + VkBool32 integerDotProduct8BitMixedSignednessAccelerated; + VkBool32 integerDotProduct4x8BitPackedUnsignedAccelerated; + VkBool32 integerDotProduct4x8BitPackedSignedAccelerated; + VkBool32 integerDotProduct4x8BitPackedMixedSignednessAccelerated; + VkBool32 integerDotProduct16BitUnsignedAccelerated; + VkBool32 integerDotProduct16BitSignedAccelerated; + VkBool32 integerDotProduct16BitMixedSignednessAccelerated; + VkBool32 integerDotProduct32BitUnsignedAccelerated; + VkBool32 integerDotProduct32BitSignedAccelerated; + VkBool32 integerDotProduct32BitMixedSignednessAccelerated; + VkBool32 integerDotProduct64BitUnsignedAccelerated; + VkBool32 integerDotProduct64BitSignedAccelerated; + VkBool32 integerDotProduct64BitMixedSignednessAccelerated; + VkBool32 integerDotProductAccumulatingSaturating8BitUnsignedAccelerated; + VkBool32 integerDotProductAccumulatingSaturating8BitSignedAccelerated; + VkBool32 integerDotProductAccumulatingSaturating8BitMixedSignednessAccelerated; + VkBool32 integerDotProductAccumulatingSaturating4x8BitPackedUnsignedAccelerated; + VkBool32 integerDotProductAccumulatingSaturating4x8BitPackedSignedAccelerated; + VkBool32 integerDotProductAccumulatingSaturating4x8BitPackedMixedSignednessAccelerated; + VkBool32 integerDotProductAccumulatingSaturating16BitUnsignedAccelerated; + VkBool32 integerDotProductAccumulatingSaturating16BitSignedAccelerated; + VkBool32 integerDotProductAccumulatingSaturating16BitMixedSignednessAccelerated; + VkBool32 integerDotProductAccumulatingSaturating32BitUnsignedAccelerated; + VkBool32 integerDotProductAccumulatingSaturating32BitSignedAccelerated; + VkBool32 integerDotProductAccumulatingSaturating32BitMixedSignednessAccelerated; + VkBool32 integerDotProductAccumulatingSaturating64BitUnsignedAccelerated; + VkBool32 integerDotProductAccumulatingSaturating64BitSignedAccelerated; + VkBool32 integerDotProductAccumulatingSaturating64BitMixedSignednessAccelerated; +} VkPhysicalDeviceShaderIntegerDotProductPropertiesKHR; + + + #define VK_KHR_pipeline_library 1 #define VK_KHR_PIPELINE_LIBRARY_SPEC_VERSION 1 #define VK_KHR_PIPELINE_LIBRARY_EXTENSION_NAME "VK_KHR_pipeline_library" diff --git a/external/vulkancts/modules/vulkan/api/vktApiFeatureInfo.cpp b/external/vulkancts/modules/vulkan/api/vktApiFeatureInfo.cpp index 3fc5041..af2b0c4 100644 --- a/external/vulkancts/modules/vulkan/api/vktApiFeatureInfo.cpp +++ b/external/vulkancts/modules/vulkan/api/vktApiFeatureInfo.cpp @@ -4097,18 +4097,20 @@ tcu::TestStatus deviceProperties2 (Context& context) const bool khr_shader_float_controls = checkExtension(properties, "VK_KHR_shader_float_controls") || context.contextSupports(vk::ApiVersion(1, 2, 0)); const bool khr_descriptor_indexing = checkExtension(properties, "VK_EXT_descriptor_indexing") || context.contextSupports(vk::ApiVersion(1, 2, 0)); const bool khr_sampler_filter_minmax = checkExtension(properties, "VK_EXT_sampler_filter_minmax") || context.contextSupports(vk::ApiVersion(1, 2, 0)); - - VkPhysicalDeviceIDProperties idProperties[count]; - VkPhysicalDeviceMultiviewProperties multiviewProperties[count]; - VkPhysicalDeviceProtectedMemoryProperties protectedMemoryPropertiesKHR[count]; - VkPhysicalDeviceSubgroupProperties subgroupProperties[count]; - VkPhysicalDevicePointClippingProperties pointClippingProperties[count]; - VkPhysicalDeviceMaintenance3Properties maintenance3Properties[count]; - VkPhysicalDeviceDepthStencilResolveProperties depthStencilResolveProperties[count]; - VkPhysicalDeviceDriverProperties driverProperties[count]; - VkPhysicalDeviceFloatControlsProperties floatControlsProperties[count]; - VkPhysicalDeviceDescriptorIndexingProperties descriptorIndexingProperties[count]; - VkPhysicalDeviceSamplerFilterMinmaxProperties samplerFilterMinmaxProperties[count]; + const bool khr_integer_dot_product = checkExtension(properties, "VK_KHR_shader_integer_dot_product"); + + VkPhysicalDeviceIDProperties idProperties[count]; + VkPhysicalDeviceMultiviewProperties multiviewProperties[count]; + VkPhysicalDeviceProtectedMemoryProperties protectedMemoryPropertiesKHR[count]; + VkPhysicalDeviceSubgroupProperties subgroupProperties[count]; + VkPhysicalDevicePointClippingProperties pointClippingProperties[count]; + VkPhysicalDeviceMaintenance3Properties maintenance3Properties[count]; + VkPhysicalDeviceDepthStencilResolveProperties depthStencilResolveProperties[count]; + VkPhysicalDeviceDriverProperties driverProperties[count]; + VkPhysicalDeviceFloatControlsProperties floatControlsProperties[count]; + VkPhysicalDeviceDescriptorIndexingProperties descriptorIndexingProperties[count]; + VkPhysicalDeviceSamplerFilterMinmaxProperties samplerFilterMinmaxProperties[count]; + VkPhysicalDeviceShaderIntegerDotProductPropertiesKHR integerDotProductProperties[count]; for (int ndx = 0; ndx < count; ++ndx) { @@ -4123,6 +4125,7 @@ tcu::TestStatus deviceProperties2 (Context& context) deMemset(&floatControlsProperties[ndx], 0xFF*ndx, sizeof(VkPhysicalDeviceFloatControlsProperties )); deMemset(&descriptorIndexingProperties[ndx], 0xFF*ndx, sizeof(VkPhysicalDeviceDescriptorIndexingProperties )); deMemset(&samplerFilterMinmaxProperties[ndx], 0xFF*ndx, sizeof(VkPhysicalDeviceSamplerFilterMinmaxProperties )); + deMemset(&integerDotProductProperties[ndx], 0xFF*ndx, sizeof(VkPhysicalDeviceShaderIntegerDotProductPropertiesKHR )); idProperties[ndx].sType = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ID_PROPERTIES; idProperties[ndx].pNext = &multiviewProperties[ndx]; @@ -4155,7 +4158,10 @@ tcu::TestStatus deviceProperties2 (Context& context) descriptorIndexingProperties[ndx].pNext = &samplerFilterMinmaxProperties[ndx]; samplerFilterMinmaxProperties[ndx].sType = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SAMPLER_FILTER_MINMAX_PROPERTIES; - samplerFilterMinmaxProperties[ndx].pNext = DE_NULL; + samplerFilterMinmaxProperties[ndx].pNext = &integerDotProductProperties[ndx]; + + integerDotProductProperties[ndx].sType = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_INTEGER_DOT_PRODUCT_PROPERTIES_KHR; + integerDotProductProperties[ndx].pNext = DE_NULL; extProperties.pNext = &idProperties[ndx]; @@ -4184,6 +4190,8 @@ tcu::TestStatus deviceProperties2 (Context& context) log << TestLog::Message << descriptorIndexingProperties[0] << TestLog::EndMessage; if (khr_sampler_filter_minmax) log << TestLog::Message << samplerFilterMinmaxProperties[0] << TestLog::EndMessage; + if (khr_integer_dot_product) + log << TestLog::Message << integerDotProductProperties[0] << TestLog::EndMessage; if ( khr_external_fence_capabilities || khr_external_memory_capabilities || khr_external_semaphore_capabilities ) { @@ -4319,6 +4327,41 @@ tcu::TestStatus deviceProperties2 (Context& context) TCU_FAIL("Mismatch between VkPhysicalDeviceSamplerFilterMinmaxProperties"); } + if (khr_integer_dot_product && + (integerDotProductProperties[0].integerDotProduct8BitUnsignedAccelerated != integerDotProductProperties[1].integerDotProduct8BitUnsignedAccelerated || + integerDotProductProperties[0].integerDotProduct8BitSignedAccelerated != integerDotProductProperties[1].integerDotProduct8BitSignedAccelerated || + integerDotProductProperties[0].integerDotProduct8BitMixedSignednessAccelerated != integerDotProductProperties[1].integerDotProduct8BitMixedSignednessAccelerated || + integerDotProductProperties[0].integerDotProduct4x8BitPackedUnsignedAccelerated != integerDotProductProperties[1].integerDotProduct4x8BitPackedUnsignedAccelerated || + integerDotProductProperties[0].integerDotProduct4x8BitPackedSignedAccelerated != integerDotProductProperties[1].integerDotProduct4x8BitPackedSignedAccelerated || + integerDotProductProperties[0].integerDotProduct4x8BitPackedMixedSignednessAccelerated != integerDotProductProperties[1].integerDotProduct4x8BitPackedMixedSignednessAccelerated || + integerDotProductProperties[0].integerDotProduct16BitUnsignedAccelerated != integerDotProductProperties[1].integerDotProduct16BitUnsignedAccelerated || + integerDotProductProperties[0].integerDotProduct16BitSignedAccelerated != integerDotProductProperties[1].integerDotProduct16BitSignedAccelerated || + integerDotProductProperties[0].integerDotProduct16BitMixedSignednessAccelerated != integerDotProductProperties[1].integerDotProduct16BitMixedSignednessAccelerated || + integerDotProductProperties[0].integerDotProduct32BitUnsignedAccelerated != integerDotProductProperties[1].integerDotProduct32BitUnsignedAccelerated || + integerDotProductProperties[0].integerDotProduct32BitSignedAccelerated != integerDotProductProperties[1].integerDotProduct32BitSignedAccelerated || + integerDotProductProperties[0].integerDotProduct32BitMixedSignednessAccelerated != integerDotProductProperties[1].integerDotProduct32BitMixedSignednessAccelerated || + integerDotProductProperties[0].integerDotProduct64BitUnsignedAccelerated != integerDotProductProperties[1].integerDotProduct64BitUnsignedAccelerated || + integerDotProductProperties[0].integerDotProduct64BitSignedAccelerated != integerDotProductProperties[1].integerDotProduct64BitSignedAccelerated || + integerDotProductProperties[0].integerDotProduct64BitMixedSignednessAccelerated != integerDotProductProperties[1].integerDotProduct64BitMixedSignednessAccelerated || + integerDotProductProperties[0].integerDotProductAccumulatingSaturating8BitUnsignedAccelerated != integerDotProductProperties[1].integerDotProductAccumulatingSaturating8BitUnsignedAccelerated || + integerDotProductProperties[0].integerDotProductAccumulatingSaturating8BitSignedAccelerated != integerDotProductProperties[1].integerDotProductAccumulatingSaturating8BitSignedAccelerated || + integerDotProductProperties[0].integerDotProductAccumulatingSaturating8BitMixedSignednessAccelerated != integerDotProductProperties[1].integerDotProductAccumulatingSaturating8BitMixedSignednessAccelerated || + integerDotProductProperties[0].integerDotProductAccumulatingSaturating4x8BitPackedUnsignedAccelerated != integerDotProductProperties[1].integerDotProductAccumulatingSaturating4x8BitPackedUnsignedAccelerated || + integerDotProductProperties[0].integerDotProductAccumulatingSaturating4x8BitPackedSignedAccelerated != integerDotProductProperties[1].integerDotProductAccumulatingSaturating4x8BitPackedSignedAccelerated || + integerDotProductProperties[0].integerDotProductAccumulatingSaturating4x8BitPackedMixedSignednessAccelerated != integerDotProductProperties[1].integerDotProductAccumulatingSaturating4x8BitPackedMixedSignednessAccelerated || + integerDotProductProperties[0].integerDotProductAccumulatingSaturating16BitUnsignedAccelerated != integerDotProductProperties[1].integerDotProductAccumulatingSaturating16BitUnsignedAccelerated || + integerDotProductProperties[0].integerDotProductAccumulatingSaturating16BitSignedAccelerated != integerDotProductProperties[1].integerDotProductAccumulatingSaturating16BitSignedAccelerated || + integerDotProductProperties[0].integerDotProductAccumulatingSaturating16BitMixedSignednessAccelerated != integerDotProductProperties[1].integerDotProductAccumulatingSaturating16BitMixedSignednessAccelerated || + integerDotProductProperties[0].integerDotProductAccumulatingSaturating32BitUnsignedAccelerated != integerDotProductProperties[1].integerDotProductAccumulatingSaturating32BitUnsignedAccelerated || + integerDotProductProperties[0].integerDotProductAccumulatingSaturating32BitSignedAccelerated != integerDotProductProperties[1].integerDotProductAccumulatingSaturating32BitSignedAccelerated || + integerDotProductProperties[0].integerDotProductAccumulatingSaturating32BitMixedSignednessAccelerated != integerDotProductProperties[1].integerDotProductAccumulatingSaturating32BitMixedSignednessAccelerated || + integerDotProductProperties[0].integerDotProductAccumulatingSaturating64BitUnsignedAccelerated != integerDotProductProperties[1].integerDotProductAccumulatingSaturating64BitUnsignedAccelerated || + integerDotProductProperties[0].integerDotProductAccumulatingSaturating64BitSignedAccelerated != integerDotProductProperties[1].integerDotProductAccumulatingSaturating64BitSignedAccelerated || + integerDotProductProperties[0].integerDotProductAccumulatingSaturating64BitMixedSignednessAccelerated != integerDotProductProperties[1].integerDotProductAccumulatingSaturating64BitMixedSignednessAccelerated)) + { + TCU_FAIL("Mismatch between VkPhysicalDeviceShaderIntegerDotProductPropertiesKHR"); + } + if (isExtensionSupported(properties, RequiredExtension("VK_KHR_push_descriptor"))) { VkPhysicalDevicePushDescriptorPropertiesKHR pushDescriptorProperties[count]; diff --git a/external/vulkancts/modules/vulkan/spirv_assembly/CMakeLists.txt b/external/vulkancts/modules/vulkan/spirv_assembly/CMakeLists.txt index c542c6e..aa6c0d8 100644 --- a/external/vulkancts/modules/vulkan/spirv_assembly/CMakeLists.txt +++ b/external/vulkancts/modules/vulkan/spirv_assembly/CMakeLists.txt @@ -75,6 +75,8 @@ set(DEQP_VK_SPIRV_ASSEMBLY_SRCS vktSpvAsmFloatControlsExtensionlessTests.hpp vktSpvAsmTrinaryMinMaxTests.cpp vktSpvAsmTrinaryMinMaxTests.hpp + vktSpvAsmIntegerDotProductTests.cpp + vktSpvAsmIntegerDotProductTests.hpp ) set(DEQP_VK_SPIRV_ASSEMBLY_LIBS diff --git a/external/vulkancts/modules/vulkan/spirv_assembly/vktSpvAsmInstructionTests.cpp b/external/vulkancts/modules/vulkan/spirv_assembly/vktSpvAsmInstructionTests.cpp index a3e7377..319b40b 100644 --- a/external/vulkancts/modules/vulkan/spirv_assembly/vktSpvAsmInstructionTests.cpp +++ b/external/vulkancts/modules/vulkan/spirv_assembly/vktSpvAsmInstructionTests.cpp @@ -85,6 +85,7 @@ #include "vktSpvAsm64bitCompareTests.hpp" #include "vktSpvAsmTrinaryMinMaxTests.hpp" #include "vktSpvAsmTerminateInvocationTests.hpp" +#include "vktSpvAsmIntegerDotProductTests.hpp" #include #include @@ -20589,6 +20590,12 @@ tcu::TestCaseGroup* createInstructionTests (tcu::TestContext& testCtx) computeTests->addChild(createOpSRemComputeGroup64(testCtx, QP_TEST_RESULT_PASS)); computeTests->addChild(createOpSModComputeGroup(testCtx, QP_TEST_RESULT_PASS)); computeTests->addChild(createOpSModComputeGroup64(testCtx, QP_TEST_RESULT_PASS)); + computeTests->addChild(createOpSDotKHRComputeGroup(testCtx)); + computeTests->addChild(createOpUDotKHRComputeGroup(testCtx)); + computeTests->addChild(createOpSUDotKHRComputeGroup(testCtx)); + computeTests->addChild(createOpSDotAccSatKHRComputeGroup(testCtx)); + computeTests->addChild(createOpUDotAccSatKHRComputeGroup(testCtx)); + computeTests->addChild(createOpSUDotAccSatKHRComputeGroup(testCtx)); computeTests->addChild(createConvertComputeTests(testCtx, "OpSConvert", "sconvert")); computeTests->addChild(createConvertComputeTests(testCtx, "OpUConvert", "uconvert")); computeTests->addChild(createConvertComputeTests(testCtx, "OpFConvert", "fconvert")); @@ -20677,6 +20684,7 @@ tcu::TestCaseGroup* createInstructionTests (tcu::TestContext& testCtx) graphicsTests->addChild(graphicsAndroidTests.release()); } + graphicsTests->addChild(createOpNameTests(testCtx)); graphicsTests->addChild(createOpNameAbuseTests(testCtx)); graphicsTests->addChild(createOpMemberNameAbuseTests(testCtx)); diff --git a/external/vulkancts/modules/vulkan/spirv_assembly/vktSpvAsmIntegerDotProductTests.cpp b/external/vulkancts/modules/vulkan/spirv_assembly/vktSpvAsmIntegerDotProductTests.cpp new file mode 100644 index 0000000..e2376ea --- /dev/null +++ b/external/vulkancts/modules/vulkan/spirv_assembly/vktSpvAsmIntegerDotProductTests.cpp @@ -0,0 +1,1158 @@ +/*------------------------------------------------------------------------- + * Vulkan Conformance Tests + * ------------------------ + * + * Copyright (c) 2021 Arm Limited. + * + * 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 Functional integer dot product tests + *//*--------------------------------------------------------------------*/ + + +#include "tcuTestLog.hpp" +#include "tcuVectorUtil.hpp" + +#include "deRandom.hpp" + +#include "vktSpvAsmComputeShaderCase.hpp" +#include "vktSpvAsmComputeShaderTestUtil.hpp" +#include "vktSpvAsmIntegerDotProductTests.hpp" + +#include +#include + +// VK_KHR_shader_integer_dot_product tests + +// Note: these tests make use of the following extensions that are not +// required by the VK_KHR_shader_integer_dot_product extension itself: +// * VK_KHR_8bit_storage (VkPhysicalDevice8BitStorageFeatures) for shaderInt8 +// * VK_KHR_16bit_storage (VkPhysicalDevice16BitStorageFeatures) for shaderInt16 + +namespace vkt +{ +namespace SpirVAssembly +{ + +using namespace vk; +using std::string; + +namespace +{ +using std::vector; +using tcu::IVec3; +using tcu::TestLog; + +template +static void fillRandomScalars(de::Random& rnd, T minValue, T maxValue, void* dst, int numValues, int offset = 0) +{ + T* const typedPtr = (T*)dst; + for (int ndx = 0; ndx < numValues; ndx++) + typedPtr[offset + ndx] = de::randomScalar(rnd, minValue, maxValue); +} + +template T getEqualValue(T v1, T v2) +{ + DE_ASSERT(v1 == v2); + (void)v2; + return v1; +} + +template +bool withinLimits(deInt64 val) +{ + return static_cast(std::numeric_limits::min()) < val + && val < static_cast(std::numeric_limits::max()); +} + +template +static T dotProduct(vector lhs, vector rhs) +{ + deInt64 res = 0; + + size_t size = getEqualValue(lhs.size(), rhs.size()); + + for (size_t i = 0; i < size; ++i) + { + res += static_cast(lhs[i]) * static_cast(rhs[i]); + } + + return static_cast(res); +} + +template +bool compareDotProductAccSat(const std::vector &inputs, const vector& outputAllocs, + const std::vector&, TestLog&) +{ + if (inputs.size() != 3 || outputAllocs.size() != 1) + return false; + + vector lhsBytes; + vector rhsBytes; + vector addendBytes; + + inputs[0].getBytes(lhsBytes); + inputs[1].getBytes(rhsBytes); + inputs[2].getBytes(addendBytes); + + const AddendT* const output = static_cast(outputAllocs[0]->getHostPtr()); + const AddendT* const addends = reinterpret_cast(&addendBytes.front()); + const LHSOperandT* const lhsInts = reinterpret_cast(&lhsBytes.front()); + const RHSOperandT* const rhsInts = reinterpret_cast(&rhsBytes.front()); + + for (size_t idx = 0; idx < inputs[2].getByteSize() / sizeof(AddendT); ++idx) + { + size_t vecLen = (inputs[0].getByteSize() / sizeof(LHSOperandT)) / (inputs[2].getByteSize() / sizeof(AddendT)); + + std::vector inputVec1Pos; + std::vector inputVec2Pos; + inputVec1Pos.reserve(vecLen); + inputVec2Pos.reserve(vecLen); + + std::vector inputVec1Neg; + std::vector inputVec2Neg; + inputVec1Neg.reserve(vecLen); + inputVec2Neg.reserve(vecLen); + + for (unsigned int vecElem = 0; vecElem < vecLen; ++vecElem) + { + LHSOperandT elem1 = lhsInts[idx * vecLen + vecElem]; + RHSOperandT elem2 = rhsInts[idx * vecLen + vecElem]; + + // Note: ordering of components does not matter, provided + // that it is consistent between lhs and rhs. + if ((elem1 < 0) == (elem2 < 0)) + { + inputVec1Pos.push_back(elem1); + inputVec2Pos.push_back(elem2); + inputVec1Neg.push_back(0); + inputVec2Neg.push_back(0); + } + else + { + inputVec1Pos.push_back(0); + inputVec2Pos.push_back(0); + inputVec1Neg.push_back(elem1); + inputVec2Neg.push_back(elem2); + } + } + + deInt64 PosProduct = dotProduct(inputVec1Pos, inputVec2Pos); + deInt64 NegProduct = dotProduct(inputVec1Neg, inputVec2Neg); + bool outputOverflow = (!withinLimits(PosProduct) || !withinLimits(NegProduct)); + + if (!outputOverflow) + { + AddendT expectedOutput = static_cast(PosProduct + NegProduct); + + if (addends[idx] < 0) + { + if (expectedOutput < std::numeric_limits::min() - addends[idx]) + expectedOutput = std::numeric_limits::min(); + else + expectedOutput = static_cast(expectedOutput + addends[idx]); + } + else + { + if (expectedOutput > std::numeric_limits::max() - addends[idx]) + expectedOutput = std::numeric_limits::max(); + else + expectedOutput = static_cast(expectedOutput + addends[idx]); + } + + if (output[idx] != expectedOutput) + { + return false; + } + } + } + + return true; +} + +struct DotProductPackingInfo +{ + bool packed; + bool signedLHS; + bool signedRHS; +}; + +struct DotProductVectorInfo +{ + size_t vecElementSize; + unsigned int vecLen; +}; + +void addDotProductExtensionAndFeatures(ComputeShaderSpec &spec, + const struct DotProductPackingInfo &packingInfo, + size_t elementSize, size_t outSize) +{ + spec.extensions.push_back("VK_KHR_shader_integer_dot_product"); + spec.requestedVulkanFeatures.extIntegerDotProduct.shaderIntegerDotProduct = VK_TRUE; + + DE_ASSERT(!packingInfo.packed || elementSize == 8); + if ((!packingInfo.packed && elementSize == 8) || outSize == 8) + { + spec.requestedVulkanFeatures.extFloat16Int8 |= EXTFLOAT16INT8FEATURES_INT8; + spec.requestedVulkanFeatures.ext8BitStorage = EXT8BITSTORAGEFEATURES_STORAGE_BUFFER; + spec.extensions.push_back("VK_KHR_8bit_storage"); + } + + if (elementSize == 16 || outSize == 16) + { + spec.requestedVulkanFeatures.coreFeatures.shaderInt16 = VK_TRUE; + spec.requestedVulkanFeatures.ext16BitStorage = EXT16BITSTORAGEFEATURES_UNIFORM_BUFFER_BLOCK; + spec.extensions.push_back("VK_KHR_16bit_storage"); + } +} + +const struct DotProductPackingInfo dotProductPacking[] = { + { false, false, false }, + { false, false, true }, + { false, true, false }, + { false, true, true }, + { true, true, true }, + { true, true, false }, + { true, false, true }, + { true, false, false }, +}; + +const struct DotProductVectorInfo dotProductVector8[] = { + { 8, 2 }, + { 8, 3 }, + { 8, 4 }, +}; + +const struct DotProductVectorInfo dotProductVector16[] = { + { 16, 2 }, + { 16, 3 }, + { 16, 4 }, +}; + +const struct DotProductVectorInfo dotProductVector32[] = { + { 32, 2 }, + { 32, 3 }, + { 32, 4 }, +}; + +unsigned int getAlignedVecLen(const DotProductVectorInfo& vectorInfo) +{ + return (vectorInfo.vecLen == 3 ? 4 : vectorInfo.vecLen); +} + +void generateIntegerDotProductTypeDeclsAndStrideDecors(std::ostringstream &typeDeclsStream, std::ostringstream &strideDecorsStream, + const struct DotProductPackingInfo &packingInfo, + const struct DotProductVectorInfo &vectorInfo, size_t outSize, + bool signedLHSAndResult, bool signedRHS) +{ + size_t signedScalarArraysMask = 0; + size_t unsignedScalarArraysMask = 0; + bool signedIntVectorNeeded = false; + bool unsignedIntVectorNeeded = false; + + if (signedLHSAndResult) + signedScalarArraysMask |= static_cast(outSize); + else + unsignedScalarArraysMask |= static_cast(outSize); + + if (packingInfo.packed) + { + if (packingInfo.signedLHS || packingInfo.signedRHS) + signedScalarArraysMask |= vectorInfo.vecElementSize * vectorInfo.vecLen; + if (!packingInfo.signedLHS || !packingInfo.signedRHS) + unsignedScalarArraysMask |= vectorInfo.vecElementSize * vectorInfo.vecLen; + } + else + { + if (signedLHSAndResult) + { + signedIntVectorNeeded = true; + signedScalarArraysMask |= vectorInfo.vecElementSize; + } + if (!signedRHS) + { + unsignedIntVectorNeeded = true; + unsignedScalarArraysMask |= vectorInfo.vecElementSize; + } + } + + size_t signedScalarTypesMask = signedScalarArraysMask; + size_t unsignedScalarTypesMask = unsignedScalarArraysMask; + + for (unsigned int size = 8; size <= 64; size *= 2) + { + if (size != 32) + { + string sizeStr(de::toString(size)); + if ((signedScalarTypesMask & size)) + typeDeclsStream << "%i" << sizeStr << " = OpTypeInt " << sizeStr << " 1\n"; + if ((unsignedScalarTypesMask & size)) + typeDeclsStream << "%u" << sizeStr << " = OpTypeInt " << sizeStr << " 0\n"; + } + } + + for (unsigned int size = 8; size <= 64; size *= 2) + { + string sizeStr = de::toString(size); + if ((signedScalarArraysMask & size)) + { + if (size != 32) + typeDeclsStream << "%i" << sizeStr << "ptr = OpTypePointer Uniform %i" << sizeStr << "\n" + "%i" << sizeStr << "arr = OpTypeRuntimeArray %i" << sizeStr << "\n"; + strideDecorsStream << "OpDecorate %i" << sizeStr << "arr ArrayStride " << de::toString(size / 8) << "\n"; + } + if ((unsignedScalarArraysMask & size)) + { + typeDeclsStream << "%u" << sizeStr << "ptr = OpTypePointer Uniform %u" << sizeStr << "\n" + "%u" << sizeStr << "arr = OpTypeRuntimeArray %u" << sizeStr << "\n"; + strideDecorsStream << "OpDecorate %u" << sizeStr << "arr ArrayStride " << de::toString(size / 8) << "\n"; + } + } + + if (signedIntVectorNeeded) + { + string vecType = "%i" + de::toString(vectorInfo.vecElementSize) + "vec" + de::toString(vectorInfo.vecLen); + typeDeclsStream << vecType << " = OpTypeVector %i" << vectorInfo.vecElementSize << " " << vectorInfo.vecLen << "\n" + << vecType << "ptr = OpTypePointer Uniform " << vecType << "\n" + << vecType << "arr = OpTypeRuntimeArray " << vecType << "\n"; + strideDecorsStream << "OpDecorate " << vecType << "arr ArrayStride " + << (vectorInfo.vecLen == 3 ? 4 : vectorInfo.vecLen) * (vectorInfo.vecElementSize / 8) << "\n"; + } + + + if (unsignedIntVectorNeeded) + { + string vecType = "%u" + de::toString(vectorInfo.vecElementSize) + "vec" + de::toString(vectorInfo.vecLen); + bool changeTypeName = false; + if (vectorInfo.vecElementSize == 32 && vectorInfo.vecLen == 3) + changeTypeName = true; + else + typeDeclsStream << vecType << " = OpTypeVector %u" << vectorInfo.vecElementSize << " " << vectorInfo.vecLen << "\n"; + + typeDeclsStream << vecType << "ptr = OpTypePointer Uniform " << (changeTypeName ? "%uvec3" : vecType) << "\n" + << vecType << "arr = OpTypeRuntimeArray " << (changeTypeName ? "%uvec3" : vecType) << "\n"; + strideDecorsStream << "OpDecorate " << vecType << "arr ArrayStride " + << (vectorInfo.vecLen == 3 ? 4 : vectorInfo.vecLen) * (vectorInfo.vecElementSize / 8) << "\n"; + } +} + +string generateIntegerDotProductCode(const struct DotProductPackingInfo &packingInfo, const struct DotProductVectorInfo &vectorInfo, + size_t outSize, bool signedLHSAndResult, bool signedRHS, bool acc) +{ + DE_ASSERT(signedLHSAndResult || !signedRHS); + + const string insnSignedness(signedLHSAndResult ? (signedRHS ? "S" : "SU") : "U"); + const string insnName(string("Op") + insnSignedness + "Dot" + (acc ? "AccSat" : "") + "KHR"); + + const string outputCapability(outSize != 32 ? + "OpCapability Int" + de::toString(outSize) + "\n" : ""); + const string elementCapability(!packingInfo.packed && outSize != vectorInfo.vecElementSize && vectorInfo.vecElementSize != 32 ? + "OpCapability Int" + de::toString(vectorInfo.vecElementSize) + "\n" : ""); + + const string dotProductInputCapabilityName( + packingInfo.packed ? "DotProductInput4x8BitPackedKHR" : (vectorInfo.vecElementSize > 8) ? "DotProductInputAllKHR" : "DotProductInput4x8BitKHR"); + + const string capabilities(outputCapability + + elementCapability + + "OpCapability " + dotProductInputCapabilityName + "\n" + "OpCapability DotProductKHR\n"); + const string extensions("OpExtension \"SPV_KHR_integer_dot_product\"\n"); + + const string outType((signedLHSAndResult ? "i" : "u") + de::toString(outSize)); + + std::ostringstream typeDeclsStream; + std::ostringstream strideDecorsStream; + generateIntegerDotProductTypeDeclsAndStrideDecors(typeDeclsStream, strideDecorsStream, + packingInfo, vectorInfo, outSize, signedLHSAndResult, signedRHS); + string typeDecls(typeDeclsStream.str()); + string strideDecors(strideDecorsStream.str()); + + const string lhsVecType(packingInfo.packed + ? string(packingInfo.signedLHS ? "i" : "u") + de::toString(vectorInfo.vecElementSize * vectorInfo.vecLen) + : (signedLHSAndResult ? "i" : "u") + ((!signedLHSAndResult && vectorInfo.vecElementSize == 32 && vectorInfo.vecLen == 3) ? "" : de::toString(vectorInfo.vecElementSize)) + "vec" + de::toString(vectorInfo.vecLen)); + const string rhsVecType(packingInfo.packed + ? string(packingInfo.signedRHS ? "i" : "u") + de::toString(vectorInfo.vecElementSize * vectorInfo.vecLen) + : (signedRHS ? "i" : "u") + ((!signedRHS && vectorInfo.vecElementSize == 32 && vectorInfo.vecLen == 3) ? "" : de::toString(vectorInfo.vecElementSize)) + "vec" + de::toString(vectorInfo.vecLen)); + const string lhsVecTypeBase(packingInfo.packed + ? string(packingInfo.signedLHS ? "i" : "u") + de::toString(vectorInfo.vecElementSize * vectorInfo.vecLen) + : (signedLHSAndResult ? "i" : "u") + de::toString(vectorInfo.vecElementSize) + "vec" + de::toString(vectorInfo.vecLen)); + const string rhsVecTypeBase(packingInfo.packed + ? string(packingInfo.signedRHS ? "i" : "u") + de::toString(vectorInfo.vecElementSize * vectorInfo.vecLen) + : (signedRHS ? "i" : "u") + de::toString(vectorInfo.vecElementSize) + "vec" + de::toString(vectorInfo.vecLen)); + + const string optFormatParam(packingInfo.packed ? " PackedVectorFormat4x8BitKHR" : ""); + + bool bufferSignednessMatches = (packingInfo.packed + ? (packingInfo.signedLHS == packingInfo.signedRHS) + : (signedLHSAndResult == signedRHS)); + + return string(getComputeAsmShaderPreamble(capabilities, extensions)) + + + "OpName %main \"main\"\n" + "OpName %id \"gl_GlobalInvocationID\"\n" + + "OpDecorate %id BuiltIn GlobalInvocationId\n" + + (bufferSignednessMatches + ? "OpDecorate %bufin BufferBlock\n" + : "OpDecorate %buflhs BufferBlock\n" + "OpDecorate %bufrhs BufferBlock\n") + + "OpDecorate %bufout BufferBlock\n" + "OpDecorate %indatalhs DescriptorSet 0\n" + "OpDecorate %indatalhs Binding 0\n" + "OpDecorate %indatarhs DescriptorSet 0\n" + "OpDecorate %indatarhs Binding 1\n" + + (acc + ? "OpDecorate %indataacc DescriptorSet 0\n" + "OpDecorate %indataacc Binding 2\n" + : "") + + "OpDecorate %outdata DescriptorSet 0\n" + "OpDecorate %outdata Binding " + (acc ? "3" : "2") + "\n" + + strideDecors + + + (bufferSignednessMatches + ? "OpMemberDecorate %bufin 0 Offset 0\n" + : "OpMemberDecorate %buflhs 0 Offset 0\n" + "OpMemberDecorate %bufrhs 0 Offset 0\n") + + "OpMemberDecorate %bufout 0 Offset 0\n" + + + getComputeAsmCommonTypes() + + typeDecls + + + (bufferSignednessMatches + ? "%bufin = OpTypeStruct %" + lhsVecTypeBase + "arr\n" + "%bufinptr = OpTypePointer Uniform %bufin\n" + : "%buflhs = OpTypeStruct %" + lhsVecTypeBase + "arr\n" + "%buflhsptr = OpTypePointer Uniform %buflhs\n" + "%bufrhs = OpTypeStruct %" + rhsVecTypeBase + "arr\n" + "%bufrhsptr = OpTypePointer Uniform %bufrhs\n") + + "%bufout = OpTypeStruct %" + outType + "arr\n" + "%bufoutptr = OpTypePointer Uniform %bufout\n" + "%indatalhs = OpVariable " + (bufferSignednessMatches ? "%bufinptr" : "%buflhsptr") + " Uniform\n" + "%indatarhs = OpVariable " + (bufferSignednessMatches ? "%bufinptr" : "%bufrhsptr") + " Uniform\n" + + (acc ? "%indataacc = OpVariable %bufoutptr Uniform\n" : "") + + "%outdata = OpVariable %bufoutptr Uniform\n" + + "%id = OpVariable %uvec3ptr Input\n" + "%zero = OpConstant %i32 0\n" + + "%main = OpFunction %void None %voidf\n" + "%label = OpLabel\n" + "%idval = OpLoad %uvec3 %id\n" + "%x = OpCompositeExtract %u32 %idval 0\n" + "%inloclhs = OpAccessChain %" + lhsVecTypeBase + "ptr %indatalhs %zero %x\n" + "%invallhs = OpLoad %" + lhsVecType + " %inloclhs\n" + "%inlocrhs = OpAccessChain %" + rhsVecTypeBase + "ptr %indatarhs %zero %x\n" + "%invalrhs = OpLoad %" + rhsVecType + " %inlocrhs\n" + + (acc + ? "%inlocacc = OpAccessChain %" + outType + "ptr %indataacc %zero %x\n" + "%invalacc = OpLoad %" + outType + " %inlocacc\n" + : "" + ) + + "%res = " + insnName + " %" + outType + " %invallhs %invalrhs" + (acc ? " %invalacc" : "") + optFormatParam + "\n" + "%outloc = OpAccessChain %" + outType + "ptr %outdata %zero %x\n" + " OpStore %outloc %res\n" + " OpReturn\n" + " OpFunctionEnd\n"; +} + +struct DotProductInputInfo +{ + string name; + unsigned int vecLen; + size_t vecElemSize; +}; + +template +void fillDotProductOutputs(int numElements, vector &inputInts1, vector &inputInts2, + vector &outputInts, const struct DotProductInputInfo &inputInfo) +{ + unsigned int alignedVecLen = inputInfo.vecLen == 3 ? 4 : inputInfo.vecLen; + for (int ndx = 0; ndx < numElements; ++ndx) + { + std::vector inputVec1; + std::vector inputVec2; + inputVec1.reserve(alignedVecLen); + inputVec2.reserve(alignedVecLen); + + for (unsigned int vecElem = 0; vecElem < alignedVecLen; ++vecElem) + { + // Note: ordering of components does not matter, provided + // that it is consistent between lhs and rhs. + inputVec1.push_back(inputInts1[ndx * alignedVecLen + vecElem]); + inputVec2.push_back(inputInts2[ndx * alignedVecLen + vecElem]); + } + + outputInts[ndx] = dotProduct(inputVec1, inputVec2); + } +} + +string getDotProductTestName(const struct DotProductInputInfo &inputInfo, + const struct DotProductPackingInfo &packingInfo, size_t outSize) +{ + return inputInfo.name + + (packingInfo.packed ? string("_packed_") : "_") + + (packingInfo.signedLHS ? "s" : "u") + (packingInfo.signedRHS ? "s" : "u") + + "_v" + de::toString(inputInfo.vecLen) + "i" + de::toString(inputInfo.vecElemSize) + + "_out" + de::toString(outSize); +} + +template +void addOpSDotKHRComputeTests(tcu::TestContext& testCtx, tcu::TestCaseGroup *group, + int numElements, vector &inputInts1, vector &inputInts2, + const struct DotProductInputInfo &inputInfo, const struct DotProductPackingInfo &packingInfo, + const struct DotProductVectorInfo &vectorInfo) +{ + ComputeShaderSpec spec; + size_t outSize = sizeof(OutputT) * 8; + vector outputInts (numElements, 0); + + fillDotProductOutputs(numElements, inputInts1, inputInts2, outputInts, inputInfo); + + spec.assembly = generateIntegerDotProductCode(packingInfo, vectorInfo, outSize, true, true, false); + addDotProductExtensionAndFeatures(spec, packingInfo, vectorInfo.vecElementSize, outSize); + + spec.inputs.push_back (BufferSp(new InBufferT(inputInts1))); + spec.inputs.push_back (BufferSp(new InBufferT(inputInts2))); + spec.outputs.push_back (BufferSp(new OutBufferT(outputInts))); + spec.numWorkGroups = IVec3(numElements, 1, 1); + spec.failResult = QP_TEST_RESULT_FAIL; + spec.failMessage = "Output doesn't match with expected"; + + string qualTestName(getDotProductTestName(inputInfo, packingInfo, outSize)); + + group->addChild(new SpvAsmComputeShaderCase(testCtx, qualTestName.data(), "", spec)); +} + +template +void addOpSDotKHRComputeTests(tcu::TestContext& testCtx, tcu::TestCaseGroup *group, de::Random &rnd, string name, + const struct DotProductPackingInfo dotProductPackingInfo[], unsigned dotProductPackingInfoSize, + const struct DotProductVectorInfo dotProductVectorInfo[], unsigned dotProductVectorInfoSize, + T vecMin, T vecMax) +{ + const int numElements = 200; + // Note: this test does not currently cover 64-bit integer results + for (unsigned int j = 0; j < dotProductVectorInfoSize; j++) + { + const struct DotProductVectorInfo &vectorInfo = dotProductVectorInfo[j]; + unsigned int alignedVecLen = getAlignedVecLen(vectorInfo); + struct DotProductInputInfo inputInfo = { name, vectorInfo.vecLen, vectorInfo.vecElementSize }; + vector inputInts1 (numElements * alignedVecLen, 0); + vector inputInts2 (numElements * alignedVecLen, 0); + + fillRandomScalars(rnd, vecMin, vecMax, &inputInts1[0], numElements * alignedVecLen); + fillRandomScalars(rnd, vecMin, vecMax, &inputInts2[0], numElements * alignedVecLen); + + if (vectorInfo.vecLen == 3) + for (unsigned int ndx = 0; ndx < numElements; ++ndx) + inputInts1[ndx*4+3] = inputInts2[ndx*4+3] = 0; + + for (unsigned int i = 0; i < dotProductPackingInfoSize; i++) + { + const struct DotProductPackingInfo &packingInfo = dotProductPackingInfo[i]; + if (packingInfo.packed && (vectorInfo.vecElementSize != 8 || vectorInfo.vecLen != 4)) + continue; + + if (vectorInfo.vecElementSize <= 32) + addOpSDotKHRComputeTests(testCtx, group, numElements, inputInts1, inputInts2, inputInfo, packingInfo, vectorInfo); + if (vectorInfo.vecElementSize <= 16) + addOpSDotKHRComputeTests(testCtx, group, numElements, inputInts1, inputInts2, inputInfo, packingInfo, vectorInfo); + if (vectorInfo.vecElementSize <= 8) + addOpSDotKHRComputeTests (testCtx, group, numElements, inputInts1, inputInts2, inputInfo, packingInfo, vectorInfo); + } + } +} + +template +void add32bitOpSDotKHRComputeTests(tcu::TestContext& testCtx, tcu::TestCaseGroup *group, de::Random &rnd, string name, T vecMin, T vecMax) +{ + addOpSDotKHRComputeTests(testCtx, group, rnd, name, dotProductPacking, DE_LENGTH_OF_ARRAY(dotProductPacking), + dotProductVector32, DE_LENGTH_OF_ARRAY(dotProductVector32), vecMin, vecMax); +} + +template +void add16bitOpSDotKHRComputeTests(tcu::TestContext& testCtx, tcu::TestCaseGroup *group, de::Random &rnd, string name, T vecMin, T vecMax) +{ + addOpSDotKHRComputeTests(testCtx, group, rnd, name, dotProductPacking, DE_LENGTH_OF_ARRAY(dotProductPacking), + dotProductVector16, DE_LENGTH_OF_ARRAY(dotProductVector16), vecMin, vecMax); +} + +template +void add8bitOpSDotKHRComputeTests(tcu::TestContext& testCtx, tcu::TestCaseGroup *group, de::Random &rnd, string name, T vecMin, T vecMax) +{ + addOpSDotKHRComputeTests(testCtx, group, rnd, name, dotProductPacking, DE_LENGTH_OF_ARRAY(dotProductPacking), + dotProductVector8, DE_LENGTH_OF_ARRAY(dotProductVector8), vecMin, vecMax); +} + +template +void addOpUDotKHRComputeTests(tcu::TestContext& testCtx, tcu::TestCaseGroup *group, + int numElements, vector &inputInts1, vector &inputInts2, + const struct DotProductInputInfo &inputInfo, const struct DotProductPackingInfo &packingInfo, + const struct DotProductVectorInfo &vectorInfo) +{ + ComputeShaderSpec spec; + size_t outSize = sizeof(OutputT) * 8; + vector outputInts (numElements, 0); + + fillDotProductOutputs(numElements, inputInts1, inputInts2, outputInts, inputInfo); + + spec.assembly = generateIntegerDotProductCode(packingInfo, vectorInfo, outSize, false, false, false); + + addDotProductExtensionAndFeatures(spec, packingInfo, vectorInfo.vecElementSize, outSize); + + spec.inputs.push_back (BufferSp(new InBufferT(inputInts1))); + spec.inputs.push_back (BufferSp(new InBufferT(inputInts2))); + spec.outputs.push_back (BufferSp(new OutBufferT(outputInts))); + spec.numWorkGroups = IVec3(numElements, 1, 1); + spec.failResult = QP_TEST_RESULT_FAIL; + spec.failMessage = "Output doesn't match with expected"; + + string qualTestName(getDotProductTestName(inputInfo, packingInfo, outSize)); + + group->addChild(new SpvAsmComputeShaderCase(testCtx, qualTestName.data(), "", spec)); +} + +template +void addOpUDotKHRComputeTests(tcu::TestContext& testCtx, tcu::TestCaseGroup *group, de::Random &rnd, string name, + const struct DotProductPackingInfo dotProductPackingInfo[], unsigned dotProductPackingInfoSize, + const struct DotProductVectorInfo dotProductVectorInfo[], unsigned dotProductVectorInfoSize, + T vecMin, T vecMax) +{ + const int numElements = 200; + + for (unsigned int j = 0; j < dotProductVectorInfoSize; j++) + { + const struct DotProductVectorInfo &vectorInfo = dotProductVectorInfo[j]; + unsigned int alignedVecLen = getAlignedVecLen(vectorInfo); + struct DotProductInputInfo inputInfo = { name, vectorInfo.vecLen, vectorInfo.vecElementSize }; + vector inputInts1 (numElements * alignedVecLen, 0); + vector inputInts2 (numElements * alignedVecLen, 0); + + fillRandomScalars(rnd, vecMin, vecMax, &inputInts1[0], numElements * alignedVecLen); + fillRandomScalars(rnd, vecMin, vecMax, &inputInts2[0], numElements * alignedVecLen); + + if (vectorInfo.vecLen == 3) + for (unsigned int ndx = 0; ndx < numElements; ++ndx) + inputInts1[ndx*4+3] = inputInts2[ndx*4+3] = 0; + + for (unsigned int i = 0; i < dotProductPackingInfoSize; i++) + { + const struct DotProductPackingInfo &packingInfo = dotProductPackingInfo[i]; + if (packingInfo.packed && (vectorInfo.vecElementSize != 8 || vectorInfo.vecLen != 4)) + continue; + + if (vectorInfo.vecElementSize <= 32) + addOpUDotKHRComputeTests(testCtx, group, numElements, inputInts1, inputInts2, inputInfo, packingInfo, vectorInfo); + if (vectorInfo.vecElementSize <= 16) + addOpUDotKHRComputeTests(testCtx, group, numElements, inputInts1, inputInts2, inputInfo, packingInfo, vectorInfo); + if (vectorInfo.vecElementSize <= 8) + addOpUDotKHRComputeTests (testCtx, group, numElements, inputInts1, inputInts2, inputInfo, packingInfo, vectorInfo); + } + } +} + +template +void add32bitOpUDotKHRComputeTests(tcu::TestContext& testCtx, tcu::TestCaseGroup *group, de::Random &rnd, string name, T vecMin, T vecMax) +{ + addOpUDotKHRComputeTests(testCtx, group, rnd, name, dotProductPacking, DE_LENGTH_OF_ARRAY(dotProductPacking), + dotProductVector32, DE_LENGTH_OF_ARRAY(dotProductVector32), vecMin, vecMax); +} + +template +void add16bitOpUDotKHRComputeTests(tcu::TestContext& testCtx, tcu::TestCaseGroup *group, de::Random &rnd, string name, T vecMin, T vecMax) +{ + addOpUDotKHRComputeTests(testCtx, group, rnd, name, dotProductPacking, DE_LENGTH_OF_ARRAY(dotProductPacking), + dotProductVector16, DE_LENGTH_OF_ARRAY(dotProductVector16), vecMin, vecMax); +} + +template +void add8bitOpUDotKHRComputeTests(tcu::TestContext& testCtx, tcu::TestCaseGroup *group, de::Random &rnd, string name, T vecMin, T vecMax) +{ + addOpUDotKHRComputeTests(testCtx, group, rnd, name, dotProductPacking, DE_LENGTH_OF_ARRAY(dotProductPacking), + dotProductVector8, DE_LENGTH_OF_ARRAY(dotProductVector8), vecMin, vecMax); +} + +template +void addOpSUDotKHRComputeTests(tcu::TestContext& testCtx, tcu::TestCaseGroup *group, + int numElements, vector &inputInts1, vector &inputInts2, + const struct DotProductInputInfo &inputInfo, const struct DotProductPackingInfo &packingInfo, + const struct DotProductVectorInfo &vectorInfo) +{ + ComputeShaderSpec spec; + size_t outSize = sizeof(OutputT) * 8; + vector outputInts (numElements, 0); + + fillDotProductOutputs(numElements, inputInts1, inputInts2, outputInts, inputInfo); + + spec.assembly = generateIntegerDotProductCode(packingInfo, vectorInfo, outSize, true, false, false); + addDotProductExtensionAndFeatures(spec, packingInfo, vectorInfo.vecElementSize, outSize); + + spec.inputs.push_back (BufferSp(new LHSBufferT(inputInts1))); + spec.inputs.push_back (BufferSp(new RHSBufferT(inputInts2))); + spec.outputs.push_back (BufferSp(new OutBufferT(outputInts))); + spec.numWorkGroups = IVec3(numElements, 1, 1); + spec.failResult = QP_TEST_RESULT_FAIL; + spec.failMessage = "Output doesn't match with expected"; + + string qualTestName(getDotProductTestName(inputInfo, packingInfo, outSize)); + + group->addChild(new SpvAsmComputeShaderCase(testCtx, qualTestName.data(), "", spec)); +} + +template +void addOpSUDotKHRComputeTests(tcu::TestContext& testCtx, tcu::TestCaseGroup *group, de::Random &rnd, string name, + const struct DotProductPackingInfo dotProductPackingInfo[], unsigned dotProductPackingInfoSize, + const struct DotProductVectorInfo dotProductVectorInfo[], unsigned dotProductVectorInfoSize, + LHSOperandT lhsVecMin, LHSOperandT lhsVecMax, RHSOperandT rhsVecMin, RHSOperandT rhsVecMax) +{ + const int numElements = 200; + // Note: this test does not currently cover 64-bit integer results + for (unsigned int j = 0; j < dotProductVectorInfoSize; j++) + { + const struct DotProductVectorInfo &vectorInfo = dotProductVectorInfo[j]; + unsigned int alignedVecLen = getAlignedVecLen(vectorInfo); + struct DotProductInputInfo inputInfo = { name, vectorInfo.vecLen, vectorInfo.vecElementSize }; + vector inputInts1 (numElements * alignedVecLen, 0); + vector inputInts2 (numElements * alignedVecLen, 0); + + fillRandomScalars(rnd, lhsVecMin, lhsVecMax, &inputInts1[0], numElements * alignedVecLen); + fillRandomScalars(rnd, rhsVecMin, rhsVecMax, &inputInts2[0], numElements * alignedVecLen); + + if (vectorInfo.vecLen == 3) + for (unsigned int ndx = 0; ndx < numElements; ++ndx) + inputInts1[ndx*4+3] = inputInts2[ndx*4+3] = 0; + + + for (unsigned int i = 0; i < dotProductPackingInfoSize; i++) + { + const struct DotProductPackingInfo &packingInfo = dotProductPackingInfo[i]; + if (packingInfo.packed && (vectorInfo.vecElementSize != 8 || vectorInfo.vecLen != 4)) + continue; + + if (vectorInfo.vecElementSize <= 32) + addOpSUDotKHRComputeTests(testCtx, group, numElements, inputInts1, inputInts2, inputInfo, packingInfo, vectorInfo); + if (vectorInfo.vecElementSize <= 16) + addOpSUDotKHRComputeTests(testCtx, group, numElements, inputInts1, inputInts2, inputInfo, packingInfo, vectorInfo); + if (vectorInfo.vecElementSize <= 8) + addOpSUDotKHRComputeTests (testCtx, group, numElements, inputInts1, inputInts2, inputInfo, packingInfo, vectorInfo); + } + } +} + +template +void add32bitOpSUDotKHRComputeTests(tcu::TestContext& testCtx, tcu::TestCaseGroup *group, de::Random &rnd, string name, LHSOperandT lhsVecMin, LHSOperandT lhsVecMax, RHSOperandT rhsVecMin, RHSOperandT rhsVecMax) +{ + addOpSUDotKHRComputeTests(testCtx, group, rnd, name, dotProductPacking, DE_LENGTH_OF_ARRAY(dotProductPacking), + dotProductVector32, DE_LENGTH_OF_ARRAY(dotProductVector32), lhsVecMin, lhsVecMax, rhsVecMin, rhsVecMax); +} + +template +void add16bitOpSUDotKHRComputeTests(tcu::TestContext& testCtx, tcu::TestCaseGroup *group, de::Random &rnd, string name, LHSOperandT lhsVecMin, LHSOperandT lhsVecMax, RHSOperandT rhsVecMin, RHSOperandT rhsVecMax) +{ + addOpSUDotKHRComputeTests(testCtx, group, rnd, name, dotProductPacking, DE_LENGTH_OF_ARRAY(dotProductPacking), + dotProductVector16, DE_LENGTH_OF_ARRAY(dotProductVector16), lhsVecMin, lhsVecMax, rhsVecMin, rhsVecMax); +} + +template +void add8bitOpSUDotKHRComputeTests(tcu::TestContext& testCtx, tcu::TestCaseGroup *group, de::Random &rnd, string name, LHSOperandT lhsVecMin, LHSOperandT lhsVecMax, RHSOperandT rhsVecMin, RHSOperandT rhsVecMax) +{ + addOpSUDotKHRComputeTests(testCtx, group, rnd, name, dotProductPacking, DE_LENGTH_OF_ARRAY(dotProductPacking), + dotProductVector8, DE_LENGTH_OF_ARRAY(dotProductVector8), lhsVecMin, lhsVecMax, rhsVecMin, rhsVecMax); +} + +template +void addOpSDotAccSatKHRComputeTests(tcu::TestContext& testCtx, tcu::TestCaseGroup *group, de::Random &rnd, + int numElements, vector &inputInts1, vector &inputInts2, + const struct DotProductInputInfo &inputInfo, const struct DotProductPackingInfo &packingInfo, + const struct DotProductVectorInfo &vectorInfo, bool useMaxAddend) +{ + ComputeShaderSpec spec; + size_t addendSize = sizeof(AddendT) * 8; + vector inputInts3 (numElements, 0); + vector outputInts (numElements, 0); + + if (useMaxAddend) + fillRandomScalars(rnd, (AddendT)(std::numeric_limits::max()-20), (AddendT)(std::numeric_limits::max()), + &inputInts3[0], numElements); + else + fillRandomScalars(rnd, (AddendT)(std::numeric_limits::min()), (AddendT)(std::numeric_limits::min()+20), + &inputInts3[0], numElements); + + spec.assembly = generateIntegerDotProductCode(packingInfo, vectorInfo, addendSize, true, true, true); + + addDotProductExtensionAndFeatures(spec, packingInfo, vectorInfo.vecElementSize, addendSize); + spec.inputs.push_back (BufferSp(new InBufferT(inputInts1))); + spec.inputs.push_back (BufferSp(new InBufferT(inputInts2))); + spec.inputs.push_back (BufferSp(new AddendBufferT(inputInts3))); + spec.outputs.push_back (BufferSp(new AddendBufferT(outputInts))); + spec.numWorkGroups = IVec3(numElements, 1, 1); + spec.verifyIO = &compareDotProductAccSat; + spec.failResult = QP_TEST_RESULT_FAIL; + spec.failMessage = "Output doesn't match with expected"; + + string qualTestName(getDotProductTestName(inputInfo, packingInfo, addendSize)); + + group->addChild(new SpvAsmComputeShaderCase(testCtx, qualTestName.data(), "", spec)); +} + +template +void addOpSDotAccSatKHRComputeTests(tcu::TestContext& testCtx, tcu::TestCaseGroup *group, de::Random &rnd, string name, + const struct DotProductPackingInfo dotProductPackingInfo[], unsigned dotProductPackingInfoSize, + const struct DotProductVectorInfo dotProductVectorInfo[], unsigned dotProductVectorInfoSize, + T vecMin, T vecMax, bool useMaxAddend) +{ + const int numElements = 200; + // Note: this test does not currently cover 64-bit integer results + for (unsigned int j = 0 ; j < dotProductVectorInfoSize; j++) + { + const struct DotProductVectorInfo &vectorInfo = dotProductVectorInfo[j]; + unsigned int alignedVecLen = getAlignedVecLen(vectorInfo); + struct DotProductInputInfo inputInfo = { name, vectorInfo.vecLen, vectorInfo.vecElementSize }; + vector inputInts1 (numElements * alignedVecLen, 0); + vector inputInts2 (numElements * alignedVecLen, 0); + + fillRandomScalars(rnd, vecMin, vecMax, &inputInts1[0], numElements * alignedVecLen); + fillRandomScalars(rnd, vecMin, vecMax, &inputInts2[0], numElements * alignedVecLen); + + if (vectorInfo.vecLen == 3) + for (unsigned int ndx = 0; ndx < numElements; ++ndx) + inputInts1[ndx*4+3] = inputInts2[ndx*4+3] = 0; + + + for (unsigned int i = 0; i < dotProductPackingInfoSize; i++) + { + const struct DotProductPackingInfo &packingInfo = dotProductPackingInfo[i]; + if (packingInfo.packed && (vectorInfo.vecElementSize != 8 || vectorInfo.vecLen != 4)) + continue; + + if (vectorInfo.vecElementSize <= 32) + addOpSDotAccSatKHRComputeTests(testCtx, group, rnd, numElements, inputInts1, inputInts2, inputInfo, packingInfo, vectorInfo, useMaxAddend); + if (vectorInfo.vecElementSize <= 16) + addOpSDotAccSatKHRComputeTests(testCtx, group, rnd, numElements, inputInts1, inputInts2, inputInfo, packingInfo, vectorInfo, useMaxAddend); + if (vectorInfo.vecElementSize <= 8) + addOpSDotAccSatKHRComputeTests (testCtx, group, rnd, numElements, inputInts1, inputInts2, inputInfo, packingInfo, vectorInfo, useMaxAddend); + } + } +} + +template +void add32bitOpSDotAccSatKHRComputeTests(tcu::TestContext& testCtx, tcu::TestCaseGroup *group, de::Random &rnd, string name, T vecMin, T vecMax, bool useMaxAddend = true) +{ + addOpSDotAccSatKHRComputeTests(testCtx, group, rnd, name, dotProductPacking, DE_LENGTH_OF_ARRAY(dotProductPacking), + dotProductVector32, DE_LENGTH_OF_ARRAY(dotProductVector32), vecMin, vecMax, useMaxAddend); +} + +template +void add16bitOpSDotAccSatKHRComputeTests(tcu::TestContext& testCtx, tcu::TestCaseGroup *group, de::Random &rnd, string name, T vecMin, T vecMax, bool useMaxAddend = true) +{ + addOpSDotAccSatKHRComputeTests(testCtx, group, rnd, name, dotProductPacking, DE_LENGTH_OF_ARRAY(dotProductPacking), + dotProductVector16, DE_LENGTH_OF_ARRAY(dotProductVector16), vecMin, vecMax, useMaxAddend); +} + +template +void add8bitOpSDotAccSatKHRComputeTests(tcu::TestContext& testCtx, tcu::TestCaseGroup *group, de::Random &rnd, string name, T vecMin, T vecMax, bool useMaxAddend = true) +{ + addOpSDotAccSatKHRComputeTests(testCtx, group, rnd, name, dotProductPacking, DE_LENGTH_OF_ARRAY(dotProductPacking), + dotProductVector8, DE_LENGTH_OF_ARRAY(dotProductVector8), vecMin, vecMax, useMaxAddend); +} + +template +void addOpUDotAccSatKHRComputeTests(tcu::TestContext& testCtx, tcu::TestCaseGroup *group, de::Random &rnd, + int numElements, vector &inputInts1, vector &inputInts2, + const struct DotProductInputInfo &inputInfo, const struct DotProductPackingInfo &packingInfo, + const struct DotProductVectorInfo &vectorInfo, bool useMaxAddend) +{ + ComputeShaderSpec spec; + size_t addendSize = sizeof(AddendT) * 8; + vector inputInts3 (numElements, 0); + vector outputInts (numElements, 0); + + if (useMaxAddend) + fillRandomScalars(rnd, (AddendT)(std::numeric_limits::max()-20), (AddendT)(std::numeric_limits::max()), + &inputInts3[0], numElements); + else + fillRandomScalars(rnd, (AddendT)(std::numeric_limits::min()), (AddendT)(std::numeric_limits::min()+20), + &inputInts3[0], numElements); + + spec.assembly = generateIntegerDotProductCode(packingInfo, vectorInfo, addendSize, false, false, true); + + addDotProductExtensionAndFeatures(spec, packingInfo, vectorInfo.vecElementSize, addendSize); + spec.inputs.push_back (BufferSp(new InBufferT(inputInts1))); + spec.inputs.push_back (BufferSp(new InBufferT(inputInts2))); + spec.inputs.push_back (BufferSp(new AddendBufferT(inputInts3))); + spec.outputs.push_back (BufferSp(new AddendBufferT(outputInts))); + spec.numWorkGroups = IVec3(numElements, 1, 1); + spec.verifyIO = &compareDotProductAccSat; + spec.failResult = QP_TEST_RESULT_FAIL; + spec.failMessage = "Output doesn't match with expected"; + + string qualTestName(getDotProductTestName(inputInfo, packingInfo, addendSize)); + + group->addChild(new SpvAsmComputeShaderCase(testCtx, qualTestName.data(), "", spec)); +} + +template +void addOpUDotAccSatKHRComputeTests(tcu::TestContext& testCtx, tcu::TestCaseGroup *group, de::Random &rnd, string name, + const struct DotProductPackingInfo dotProductPackingInfo[], unsigned dotProductPackingInfoSize, + const struct DotProductVectorInfo dotProductVectorInfo[], unsigned dotProductVectorInfoSize, + T vecMin, T vecMax, bool useMaxAddend) +{ + const int numElements = 200; + // Note: this test does not currently cover 64-bit integer results + + for (unsigned int j = 0 ; j < dotProductVectorInfoSize; j++) + { + const struct DotProductVectorInfo &vectorInfo = dotProductVectorInfo[j]; + unsigned int alignedVecLen = getAlignedVecLen(vectorInfo); + struct DotProductInputInfo inputInfo = { name, vectorInfo.vecLen, vectorInfo.vecElementSize }; + vector inputInts1 (numElements * alignedVecLen, 0); + vector inputInts2 (numElements * alignedVecLen, 0); + + fillRandomScalars(rnd, vecMin, vecMax, &inputInts1[0], numElements * alignedVecLen); + fillRandomScalars(rnd, vecMin, vecMax, &inputInts2[0], numElements * alignedVecLen); + + if (vectorInfo.vecLen == 3) + for (unsigned int ndx = 0; ndx < numElements; ++ndx) + inputInts1[ndx*4+3] = inputInts2[ndx*4+3] = 0; + + for (unsigned int i = 0; i < dotProductPackingInfoSize; i++) + { + const struct DotProductPackingInfo &packingInfo = dotProductPackingInfo[i]; + if (packingInfo.packed && (vectorInfo.vecElementSize != 8 || vectorInfo.vecLen != 4)) + continue; + + if (vectorInfo.vecElementSize <= 32) + addOpUDotAccSatKHRComputeTests(testCtx, group, rnd, numElements, inputInts1, inputInts2, inputInfo, packingInfo, vectorInfo, useMaxAddend); + if (vectorInfo.vecElementSize <= 16) + addOpUDotAccSatKHRComputeTests(testCtx, group, rnd, numElements, inputInts1, inputInts2, inputInfo, packingInfo, vectorInfo, useMaxAddend); + if (vectorInfo.vecElementSize <= 8) + addOpUDotAccSatKHRComputeTests (testCtx, group, rnd, numElements, inputInts1, inputInts2, inputInfo, packingInfo, vectorInfo, useMaxAddend); + } + } +} + +template +void add32bitOpUDotAccSatKHRComputeTests(tcu::TestContext& testCtx, tcu::TestCaseGroup *group, de::Random &rnd, string name, T vecMin, T vecMax, bool useMaxAddend = true) +{ + addOpUDotAccSatKHRComputeTests(testCtx, group, rnd, name, dotProductPacking, DE_LENGTH_OF_ARRAY(dotProductPacking), + dotProductVector32, DE_LENGTH_OF_ARRAY(dotProductVector32), vecMin, vecMax, useMaxAddend); +} + +template +void add16bitOpUDotAccSatKHRComputeTests(tcu::TestContext& testCtx, tcu::TestCaseGroup *group, de::Random &rnd, string name, T vecMin, T vecMax, bool useMaxAddend = true) +{ + addOpUDotAccSatKHRComputeTests(testCtx, group, rnd, name, dotProductPacking, DE_LENGTH_OF_ARRAY(dotProductPacking), + dotProductVector16, DE_LENGTH_OF_ARRAY(dotProductVector16), vecMin, vecMax, useMaxAddend); +} + +template +void add8bitOpUDotAccSatKHRComputeTests(tcu::TestContext& testCtx, tcu::TestCaseGroup *group, de::Random &rnd, string name, T vecMin, T vecMax, bool useMaxAddend = true) +{ + addOpUDotAccSatKHRComputeTests(testCtx, group, rnd, name, dotProductPacking, DE_LENGTH_OF_ARRAY(dotProductPacking), + dotProductVector8, DE_LENGTH_OF_ARRAY(dotProductVector8), vecMin, vecMax, useMaxAddend); +} + +template +void addOpSUDotAccSatKHRComputeTests(tcu::TestContext& testCtx, tcu::TestCaseGroup *group, de::Random &rnd, + int numElements, vector &inputInts1, vector &inputInts2, + const struct DotProductInputInfo &inputInfo, const struct DotProductPackingInfo &packingInfo, + const struct DotProductVectorInfo &vectorInfo, bool useMaxAddend) +{ + ComputeShaderSpec spec; + size_t addendSize = sizeof(AddendT) * 8; + vector inputInts3 (numElements, 0); + vector outputInts (numElements, 0); + + // Populate the accumulation buffer with large values to attempt to guarantee saturation + if (useMaxAddend) + fillRandomScalars(rnd, (AddendT)(std::numeric_limits::max()-20), (AddendT)(std::numeric_limits::max()), + &inputInts3[0], numElements); + else + fillRandomScalars(rnd, (AddendT)(std::numeric_limits::min()), (AddendT)(std::numeric_limits::min()+20), + &inputInts3[0], numElements); + + spec.assembly = generateIntegerDotProductCode(packingInfo, vectorInfo, addendSize, true, false, true); + addDotProductExtensionAndFeatures(spec, packingInfo, vectorInfo.vecElementSize, addendSize); + spec.inputs.push_back (BufferSp(new LHSBufferT(inputInts1))); + spec.inputs.push_back (BufferSp(new RHSBufferT(inputInts2))); + spec.inputs.push_back (BufferSp(new AddendBufferT(inputInts3))); + spec.outputs.push_back (BufferSp(new AddendBufferT(outputInts))); + spec.numWorkGroups = IVec3(numElements, 1, 1); + spec.verifyIO = &compareDotProductAccSat; + spec.failResult = QP_TEST_RESULT_FAIL; + spec.failMessage = "Output doesn't match with expected"; + + string qualTestName(getDotProductTestName(inputInfo, packingInfo, addendSize)); + + group->addChild(new SpvAsmComputeShaderCase(testCtx, qualTestName.data(), "", spec)); +} + +template +void addOpSUDotAccSatKHRComputeTests(tcu::TestContext& testCtx, tcu::TestCaseGroup *group, de::Random &rnd, string name, + const struct DotProductPackingInfo dotProductPackingInfo[], unsigned dotProductPackingInfoSize, + const struct DotProductVectorInfo dotProductVectorInfo[], unsigned dotProductVectorInfoSize, + LHSOperandT lhsVecMin, LHSOperandT lhsVecMax, RHSOperandT rhsVecMin, RHSOperandT rhsVecMax, bool useMaxAddend) +{ + const int numElements = 200; + // Note: this test does not currently cover 64-bit integer results + + for (unsigned int j = 0; j < dotProductVectorInfoSize; j++) + { + const struct DotProductVectorInfo &vectorInfo = dotProductVectorInfo[j]; + unsigned int alignedVecLen = getAlignedVecLen(vectorInfo); + struct DotProductInputInfo inputInfo = { name, vectorInfo.vecLen, vectorInfo.vecElementSize }; + vector inputInts1 (numElements * alignedVecLen, 0); + vector inputInts2 (numElements * alignedVecLen, 0); + + fillRandomScalars(rnd, lhsVecMin, lhsVecMax, &inputInts1[0], numElements * alignedVecLen); + fillRandomScalars(rnd, rhsVecMin, rhsVecMax, &inputInts2[0], numElements * alignedVecLen); + + if (vectorInfo.vecLen == 3) + for (unsigned int ndx = 0; ndx < numElements; ++ndx) + inputInts1[ndx*4+3] = inputInts2[ndx*4+3] = 0; + + for (unsigned int i = 0; i < dotProductPackingInfoSize; i++) + { + const struct DotProductPackingInfo &packingInfo = dotProductPackingInfo[i]; + if (packingInfo.packed && (vectorInfo.vecElementSize != 8 || vectorInfo.vecLen != 4)) + continue; + + if (vectorInfo.vecElementSize <= 32) + addOpSUDotAccSatKHRComputeTests(testCtx, group, rnd, numElements, inputInts1, inputInts2, inputInfo, packingInfo, vectorInfo, useMaxAddend); + if (vectorInfo.vecElementSize <= 16) + addOpSUDotAccSatKHRComputeTests(testCtx, group, rnd, numElements, inputInts1, inputInts2, inputInfo, packingInfo, vectorInfo, useMaxAddend); + if (vectorInfo.vecElementSize <= 8) + addOpSUDotAccSatKHRComputeTests (testCtx, group, rnd, numElements, inputInts1, inputInts2, inputInfo, packingInfo, vectorInfo, useMaxAddend); + } + } +} + +template +void add32bitOpSUDotAccSatKHRComputeTests(tcu::TestContext& testCtx, tcu::TestCaseGroup *group, de::Random &rnd, string name, LHSOperandT lhsVecMin, LHSOperandT lhsVecMax, RHSOperandT rhsVecMin, RHSOperandT rhsVecMax, bool useMaxAddend = true) +{ + addOpSUDotAccSatKHRComputeTests(testCtx, group, rnd, name, dotProductPacking, DE_LENGTH_OF_ARRAY(dotProductPacking), + dotProductVector32, DE_LENGTH_OF_ARRAY(dotProductVector32), lhsVecMin, lhsVecMax, rhsVecMin, rhsVecMax, useMaxAddend); +} + +template +void add16bitOpSUDotAccSatKHRComputeTests(tcu::TestContext& testCtx, tcu::TestCaseGroup *group, de::Random &rnd, string name, LHSOperandT lhsVecMin, LHSOperandT lhsVecMax, RHSOperandT rhsVecMin, RHSOperandT rhsVecMax, bool useMaxAddend = true) +{ + addOpSUDotAccSatKHRComputeTests(testCtx, group, rnd, name, dotProductPacking, DE_LENGTH_OF_ARRAY(dotProductPacking), + dotProductVector16, DE_LENGTH_OF_ARRAY(dotProductVector16), lhsVecMin, lhsVecMax, rhsVecMin, rhsVecMax, useMaxAddend); +} + +template +void add8bitOpSUDotAccSatKHRComputeTests(tcu::TestContext& testCtx, tcu::TestCaseGroup *group, de::Random &rnd, string name, LHSOperandT lhsVecMin, LHSOperandT lhsVecMax, RHSOperandT rhsVecMin, RHSOperandT rhsVecMax, bool useMaxAddend = true) +{ + addOpSUDotAccSatKHRComputeTests(testCtx, group, rnd, name, dotProductPacking, DE_LENGTH_OF_ARRAY(dotProductPacking), + dotProductVector8, DE_LENGTH_OF_ARRAY(dotProductVector8), lhsVecMin, lhsVecMax, rhsVecMin, rhsVecMax, useMaxAddend); +} + +} // anon namespace + +tcu::TestCaseGroup* createOpSDotKHRComputeGroup(tcu::TestContext& testCtx) +{ + de::MovePtr group (new tcu::TestCaseGroup(testCtx, "opsdotkhr", "Test the OpSDotKHR instruction")); + de::Random rnd (deStringHash(group->getName())); + + add8bitOpSDotKHRComputeTests(testCtx, group.get(), rnd, string("all"), std::numeric_limits::min(), std::numeric_limits::max()); + add8bitOpSDotKHRComputeTests(testCtx, group.get(), rnd, string("small"), (deInt8)-20, (deInt8)20); + add16bitOpSDotKHRComputeTests(testCtx, group.get(), rnd, string("all"), std::numeric_limits::min(), std::numeric_limits::max()); + add32bitOpSDotKHRComputeTests(testCtx, group.get(), rnd, string("all"), std::numeric_limits::min(), std::numeric_limits::max()); + + return group.release(); +} + +tcu::TestCaseGroup* createOpUDotKHRComputeGroup(tcu::TestContext& testCtx) +{ + de::MovePtr group (new tcu::TestCaseGroup(testCtx, "opudotkhr", "Test the OpUDotKHR instruction")); + de::Random rnd (deStringHash(group->getName())); + + add8bitOpUDotKHRComputeTests(testCtx, group.get(), rnd, string("all"), std::numeric_limits::min(), std::numeric_limits::max()); + add8bitOpUDotKHRComputeTests(testCtx, group.get(), rnd, string("small"), (deUint8)0, (deUint8)20); + add16bitOpUDotKHRComputeTests(testCtx, group.get(), rnd, string("all"), std::numeric_limits::min(), std::numeric_limits::max()); + add32bitOpUDotKHRComputeTests(testCtx, group.get(), rnd, string("all"), std::numeric_limits::min(), std::numeric_limits::max()); + + return group.release(); +} + +tcu::TestCaseGroup* createOpSUDotKHRComputeGroup(tcu::TestContext& testCtx) +{ + de::MovePtr group (new tcu::TestCaseGroup(testCtx, "opsudotkhr", "Test the OpSUDotKHR instruction")); + de::Random rnd (deStringHash(group->getName())); + + add8bitOpSUDotKHRComputeTests(testCtx, group.get(), rnd, string("all"), std::numeric_limits::min(), std::numeric_limits::max(), std::numeric_limits::min(), std::numeric_limits::max()); + add8bitOpSUDotKHRComputeTests(testCtx, group.get(), rnd, string("small"), (deInt8)-20, (deInt8)20, (deUint8)0, (deUint8)20); + add16bitOpSUDotKHRComputeTests(testCtx, group.get(), rnd, string("all"), std::numeric_limits::min(), std::numeric_limits::max(), std::numeric_limits::min(), std::numeric_limits::max()); + add32bitOpSUDotKHRComputeTests(testCtx, group.get(), rnd, string("all"), std::numeric_limits::min(), std::numeric_limits::max(), std::numeric_limits::min(), std::numeric_limits::max()); + + return group.release(); +} + +tcu::TestCaseGroup* createOpSDotAccSatKHRComputeGroup(tcu::TestContext& testCtx) +{ + de::MovePtr group (new tcu::TestCaseGroup(testCtx, "opsdotaccsatkhr", "Test the OpSDotAccSatKHR instruction")); + de::Random rnd (deStringHash(group->getName())); + + add8bitOpSDotAccSatKHRComputeTests(testCtx, group.get(), rnd, string("all"), std::numeric_limits::min(), std::numeric_limits::max()); + add8bitOpSDotAccSatKHRComputeTests(testCtx, group.get(), rnd, string("limits"), (deInt8)(12), (deInt8)(20)); + add8bitOpSDotAccSatKHRComputeTests(testCtx, group.get(), rnd, string("limits-neg"), (deInt8)(-20), (deInt8)(-12), false); + add8bitOpSDotAccSatKHRComputeTests(testCtx, group.get(), rnd, string("small"), (deInt8)-20, (deInt8)20); + add16bitOpSDotAccSatKHRComputeTests(testCtx, group.get(), rnd, string("all"), std::numeric_limits::min(), std::numeric_limits::max()); + add16bitOpSDotAccSatKHRComputeTests(testCtx, group.get(), rnd, string("limits"), (deInt16)(std::numeric_limits::max()-20), (deInt16)(std::numeric_limits::max()+20)); + add16bitOpSDotAccSatKHRComputeTests(testCtx, group.get(), rnd, string("limits-neg"), (deInt16)(std::numeric_limits::min()-20), (deInt16)(std::numeric_limits::min()+20), false); + add32bitOpSDotAccSatKHRComputeTests(testCtx, group.get(), rnd, string("all"), std::numeric_limits::min(), std::numeric_limits::max()); + add32bitOpSDotAccSatKHRComputeTests(testCtx, group.get(), rnd, string("limits"), (deInt32)(std::numeric_limits::max()-20), (deInt32)(std::numeric_limits::max()+20)); + add32bitOpSDotAccSatKHRComputeTests(testCtx, group.get(), rnd, string("limits-neg"), (deInt32)(std::numeric_limits::min()-20), (deInt32)(std::numeric_limits::min()+20), false); + + return group.release(); +} + +tcu::TestCaseGroup* createOpUDotAccSatKHRComputeGroup(tcu::TestContext& testCtx) +{ + de::MovePtr group (new tcu::TestCaseGroup(testCtx, "opudotaccsatkhr", "Test the OpUDotAccSatKHR instruction")); + de::Random rnd (deStringHash(group->getName())); + + add8bitOpUDotAccSatKHRComputeTests(testCtx, group.get(), rnd, string("all"), std::numeric_limits::min(), std::numeric_limits::max()); + add8bitOpUDotAccSatKHRComputeTests(testCtx, group.get(), rnd, string("limits"), (deUint8)(12), (deUint8)(20)); + add8bitOpUDotAccSatKHRComputeTests(testCtx, group.get(), rnd, string("small"), (deUint8)0, (deUint8)20); + add16bitOpUDotAccSatKHRComputeTests(testCtx, group.get(), rnd, string("all"), std::numeric_limits::min(), std::numeric_limits::max()); + add16bitOpUDotAccSatKHRComputeTests(testCtx, group.get(), rnd, string("limits"), (deUint16)(std::numeric_limits::max()-40), (deUint16)(std::numeric_limits::max()-20)); + add32bitOpUDotAccSatKHRComputeTests(testCtx, group.get(), rnd, string("all"), std::numeric_limits::min(), std::numeric_limits::max()); + add32bitOpUDotAccSatKHRComputeTests(testCtx, group.get(), rnd, string("limits"), (deUint32)(std::numeric_limits::max()-40), (deUint32)(std::numeric_limits::max()-20)); + + return group.release(); +} + +tcu::TestCaseGroup* createOpSUDotAccSatKHRComputeGroup(tcu::TestContext& testCtx) +{ + de::MovePtr group (new tcu::TestCaseGroup(testCtx, "opsudotaccsatkhr", "Test the OpSUDotAccSatKHR instruction")); + de::Random rnd (deStringHash(group->getName())); + + add8bitOpSUDotAccSatKHRComputeTests(testCtx, group.get(), rnd, string("all"), std::numeric_limits::min(), std::numeric_limits::max(), std::numeric_limits::min(), std::numeric_limits::max()); + add8bitOpSUDotAccSatKHRComputeTests(testCtx, group.get(), rnd, string("limits"), (deInt8)(12), (deInt8)(20), (deUint8)(12), (deUint8)(20)); + add8bitOpSUDotAccSatKHRComputeTests(testCtx, group.get(), rnd, string("limits-neg"), (deInt8)(-20), (deInt8)(-12), (deUint8)(12), (deUint8)(20), false); + add8bitOpSUDotAccSatKHRComputeTests(testCtx, group.get(), rnd, string("small"), (deInt8)-20, (deInt8)20, (deUint8)0, (deUint8)20); + add16bitOpSUDotAccSatKHRComputeTests(testCtx, group.get(), rnd, string("all"), std::numeric_limits::min(), std::numeric_limits::max(), std::numeric_limits::min(), std::numeric_limits::max()); + add16bitOpSUDotAccSatKHRComputeTests(testCtx, group.get(), rnd, string("limits"), (deInt16)(std::numeric_limits::max()-20), (deInt16)(std::numeric_limits::max()+20), (deUint16)(std::numeric_limits::max()-40), (deUint16)(std::numeric_limits::max()-20)); + add16bitOpSUDotAccSatKHRComputeTests(testCtx, group.get(), rnd, string("limits-neg"), (deInt16)(std::numeric_limits::min()-20), (deInt16)(std::numeric_limits::min()+20), (deUint16)(std::numeric_limits::max()-40), (deUint16)(std::numeric_limits::max()-20), false); + add32bitOpSUDotAccSatKHRComputeTests(testCtx, group.get(), rnd, string("all"), std::numeric_limits::min(), std::numeric_limits::max(), std::numeric_limits::min(), std::numeric_limits::max()); + add32bitOpSUDotAccSatKHRComputeTests(testCtx, group.get(), rnd, string("limits"), (deInt32)(std::numeric_limits::max()-20), (deInt32)(std::numeric_limits::max()+20), (deUint32)(std::numeric_limits::max()-40), (deUint32)(std::numeric_limits::max()-20)); + add32bitOpSUDotAccSatKHRComputeTests(testCtx, group.get(), rnd, string("limits-neg"), (deInt32)(std::numeric_limits::min()-20), (deInt32)(std::numeric_limits::min()+20), (deUint32)(std::numeric_limits::max()-40), (deUint32)(std::numeric_limits::max()-20), false); + + return group.release(); +} + +} // SpirVAssembly +} // vkt diff --git a/external/vulkancts/modules/vulkan/spirv_assembly/vktSpvAsmIntegerDotProductTests.hpp b/external/vulkancts/modules/vulkan/spirv_assembly/vktSpvAsmIntegerDotProductTests.hpp new file mode 100644 index 0000000..7c433e4 --- /dev/null +++ b/external/vulkancts/modules/vulkan/spirv_assembly/vktSpvAsmIntegerDotProductTests.hpp @@ -0,0 +1,44 @@ +#ifndef _VKTSPVASMINTEGERDOTPRODUCTTESTS_HPP +#define _VKTSPVASMINTEGERDOTPRODUCTTESTS_HPP +/*------------------------------------------------------------------------ + * Vulkan Conformance Tests + * ------------------------ + * + * Copyright (c) 2021 Arm Limited. + * + * 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 Functional integer dot product tests + *//*--------------------------------------------------------------------*/ + +#include "tcuDefs.hpp" +#include "tcuTestCase.hpp" + +namespace vkt +{ +namespace SpirVAssembly +{ + +tcu::TestCaseGroup* createOpSDotKHRComputeGroup(tcu::TestContext& testCtx); +tcu::TestCaseGroup* createOpUDotKHRComputeGroup(tcu::TestContext& testCtx); +tcu::TestCaseGroup* createOpSUDotKHRComputeGroup(tcu::TestContext& testCtx); +tcu::TestCaseGroup* createOpSDotAccSatKHRComputeGroup(tcu::TestContext& testCtx); +tcu::TestCaseGroup* createOpUDotAccSatKHRComputeGroup(tcu::TestContext& testCtx); +tcu::TestCaseGroup* createOpSUDotAccSatKHRComputeGroup(tcu::TestContext& testCtx); + +} // SpirVAssembly +} // vkt + +#endif // _VKTSPVASMINTEGERDOTPRODUCTTESTS_HPP diff --git a/external/vulkancts/modules/vulkan/spirv_assembly/vktSpvAsmUtils.hpp b/external/vulkancts/modules/vulkan/spirv_assembly/vktSpvAsmUtils.hpp index fd557ed..41f7ed4 100644 --- a/external/vulkancts/modules/vulkan/spirv_assembly/vktSpvAsmUtils.hpp +++ b/external/vulkancts/modules/vulkan/spirv_assembly/vktSpvAsmUtils.hpp @@ -273,7 +273,7 @@ struct VulkanFeatures ExtensionVariablePointersFeatures extVariablePointers; ExtensionVulkanMemoryModelFeatures extVulkanMemoryModel; ExtensionFloatControlsFeatures floatControlsProperties; - + vk::VkPhysicalDeviceShaderIntegerDotProductFeaturesKHR extIntegerDotProduct; VulkanFeatures (void) : extFloat16Int8 (0) diff --git a/external/vulkancts/mustpass/master/vk-default/spirv-assembly.txt b/external/vulkancts/mustpass/master/vk-default/spirv-assembly.txt index d4b1b74..c619af8 100644 --- a/external/vulkancts/mustpass/master/vk-default/spirv-assembly.txt +++ b/external/vulkancts/mustpass/master/vk-default/spirv-assembly.txt @@ -236,6 +236,1218 @@ dEQP-VK.spirv_assembly.instruction.compute.opsmod.positive dEQP-VK.spirv_assembly.instruction.compute.opsmod.all dEQP-VK.spirv_assembly.instruction.compute.opsmod64.positive dEQP-VK.spirv_assembly.instruction.compute.opsmod64.all +dEQP-VK.spirv_assembly.instruction.compute.opsdotkhr.all_uu_v2i8_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsdotkhr.all_uu_v2i8_out16 +dEQP-VK.spirv_assembly.instruction.compute.opsdotkhr.all_uu_v2i8_out8 +dEQP-VK.spirv_assembly.instruction.compute.opsdotkhr.all_us_v2i8_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsdotkhr.all_us_v2i8_out16 +dEQP-VK.spirv_assembly.instruction.compute.opsdotkhr.all_us_v2i8_out8 +dEQP-VK.spirv_assembly.instruction.compute.opsdotkhr.all_su_v2i8_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsdotkhr.all_su_v2i8_out16 +dEQP-VK.spirv_assembly.instruction.compute.opsdotkhr.all_su_v2i8_out8 +dEQP-VK.spirv_assembly.instruction.compute.opsdotkhr.all_ss_v2i8_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsdotkhr.all_ss_v2i8_out16 +dEQP-VK.spirv_assembly.instruction.compute.opsdotkhr.all_ss_v2i8_out8 +dEQP-VK.spirv_assembly.instruction.compute.opsdotkhr.all_uu_v3i8_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsdotkhr.all_uu_v3i8_out16 +dEQP-VK.spirv_assembly.instruction.compute.opsdotkhr.all_uu_v3i8_out8 +dEQP-VK.spirv_assembly.instruction.compute.opsdotkhr.all_us_v3i8_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsdotkhr.all_us_v3i8_out16 +dEQP-VK.spirv_assembly.instruction.compute.opsdotkhr.all_us_v3i8_out8 +dEQP-VK.spirv_assembly.instruction.compute.opsdotkhr.all_su_v3i8_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsdotkhr.all_su_v3i8_out16 +dEQP-VK.spirv_assembly.instruction.compute.opsdotkhr.all_su_v3i8_out8 +dEQP-VK.spirv_assembly.instruction.compute.opsdotkhr.all_ss_v3i8_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsdotkhr.all_ss_v3i8_out16 +dEQP-VK.spirv_assembly.instruction.compute.opsdotkhr.all_ss_v3i8_out8 +dEQP-VK.spirv_assembly.instruction.compute.opsdotkhr.all_uu_v4i8_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsdotkhr.all_uu_v4i8_out16 +dEQP-VK.spirv_assembly.instruction.compute.opsdotkhr.all_uu_v4i8_out8 +dEQP-VK.spirv_assembly.instruction.compute.opsdotkhr.all_us_v4i8_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsdotkhr.all_us_v4i8_out16 +dEQP-VK.spirv_assembly.instruction.compute.opsdotkhr.all_us_v4i8_out8 +dEQP-VK.spirv_assembly.instruction.compute.opsdotkhr.all_su_v4i8_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsdotkhr.all_su_v4i8_out16 +dEQP-VK.spirv_assembly.instruction.compute.opsdotkhr.all_su_v4i8_out8 +dEQP-VK.spirv_assembly.instruction.compute.opsdotkhr.all_ss_v4i8_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsdotkhr.all_ss_v4i8_out16 +dEQP-VK.spirv_assembly.instruction.compute.opsdotkhr.all_ss_v4i8_out8 +dEQP-VK.spirv_assembly.instruction.compute.opsdotkhr.all_packed_ss_v4i8_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsdotkhr.all_packed_ss_v4i8_out16 +dEQP-VK.spirv_assembly.instruction.compute.opsdotkhr.all_packed_ss_v4i8_out8 +dEQP-VK.spirv_assembly.instruction.compute.opsdotkhr.all_packed_su_v4i8_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsdotkhr.all_packed_su_v4i8_out16 +dEQP-VK.spirv_assembly.instruction.compute.opsdotkhr.all_packed_su_v4i8_out8 +dEQP-VK.spirv_assembly.instruction.compute.opsdotkhr.all_packed_us_v4i8_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsdotkhr.all_packed_us_v4i8_out16 +dEQP-VK.spirv_assembly.instruction.compute.opsdotkhr.all_packed_us_v4i8_out8 +dEQP-VK.spirv_assembly.instruction.compute.opsdotkhr.all_packed_uu_v4i8_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsdotkhr.all_packed_uu_v4i8_out16 +dEQP-VK.spirv_assembly.instruction.compute.opsdotkhr.all_packed_uu_v4i8_out8 +dEQP-VK.spirv_assembly.instruction.compute.opsdotkhr.small_uu_v2i8_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsdotkhr.small_uu_v2i8_out16 +dEQP-VK.spirv_assembly.instruction.compute.opsdotkhr.small_uu_v2i8_out8 +dEQP-VK.spirv_assembly.instruction.compute.opsdotkhr.small_us_v2i8_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsdotkhr.small_us_v2i8_out16 +dEQP-VK.spirv_assembly.instruction.compute.opsdotkhr.small_us_v2i8_out8 +dEQP-VK.spirv_assembly.instruction.compute.opsdotkhr.small_su_v2i8_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsdotkhr.small_su_v2i8_out16 +dEQP-VK.spirv_assembly.instruction.compute.opsdotkhr.small_su_v2i8_out8 +dEQP-VK.spirv_assembly.instruction.compute.opsdotkhr.small_ss_v2i8_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsdotkhr.small_ss_v2i8_out16 +dEQP-VK.spirv_assembly.instruction.compute.opsdotkhr.small_ss_v2i8_out8 +dEQP-VK.spirv_assembly.instruction.compute.opsdotkhr.small_uu_v3i8_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsdotkhr.small_uu_v3i8_out16 +dEQP-VK.spirv_assembly.instruction.compute.opsdotkhr.small_uu_v3i8_out8 +dEQP-VK.spirv_assembly.instruction.compute.opsdotkhr.small_us_v3i8_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsdotkhr.small_us_v3i8_out16 +dEQP-VK.spirv_assembly.instruction.compute.opsdotkhr.small_us_v3i8_out8 +dEQP-VK.spirv_assembly.instruction.compute.opsdotkhr.small_su_v3i8_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsdotkhr.small_su_v3i8_out16 +dEQP-VK.spirv_assembly.instruction.compute.opsdotkhr.small_su_v3i8_out8 +dEQP-VK.spirv_assembly.instruction.compute.opsdotkhr.small_ss_v3i8_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsdotkhr.small_ss_v3i8_out16 +dEQP-VK.spirv_assembly.instruction.compute.opsdotkhr.small_ss_v3i8_out8 +dEQP-VK.spirv_assembly.instruction.compute.opsdotkhr.small_uu_v4i8_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsdotkhr.small_uu_v4i8_out16 +dEQP-VK.spirv_assembly.instruction.compute.opsdotkhr.small_uu_v4i8_out8 +dEQP-VK.spirv_assembly.instruction.compute.opsdotkhr.small_us_v4i8_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsdotkhr.small_us_v4i8_out16 +dEQP-VK.spirv_assembly.instruction.compute.opsdotkhr.small_us_v4i8_out8 +dEQP-VK.spirv_assembly.instruction.compute.opsdotkhr.small_su_v4i8_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsdotkhr.small_su_v4i8_out16 +dEQP-VK.spirv_assembly.instruction.compute.opsdotkhr.small_su_v4i8_out8 +dEQP-VK.spirv_assembly.instruction.compute.opsdotkhr.small_ss_v4i8_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsdotkhr.small_ss_v4i8_out16 +dEQP-VK.spirv_assembly.instruction.compute.opsdotkhr.small_ss_v4i8_out8 +dEQP-VK.spirv_assembly.instruction.compute.opsdotkhr.small_packed_ss_v4i8_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsdotkhr.small_packed_ss_v4i8_out16 +dEQP-VK.spirv_assembly.instruction.compute.opsdotkhr.small_packed_ss_v4i8_out8 +dEQP-VK.spirv_assembly.instruction.compute.opsdotkhr.small_packed_su_v4i8_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsdotkhr.small_packed_su_v4i8_out16 +dEQP-VK.spirv_assembly.instruction.compute.opsdotkhr.small_packed_su_v4i8_out8 +dEQP-VK.spirv_assembly.instruction.compute.opsdotkhr.small_packed_us_v4i8_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsdotkhr.small_packed_us_v4i8_out16 +dEQP-VK.spirv_assembly.instruction.compute.opsdotkhr.small_packed_us_v4i8_out8 +dEQP-VK.spirv_assembly.instruction.compute.opsdotkhr.small_packed_uu_v4i8_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsdotkhr.small_packed_uu_v4i8_out16 +dEQP-VK.spirv_assembly.instruction.compute.opsdotkhr.small_packed_uu_v4i8_out8 +dEQP-VK.spirv_assembly.instruction.compute.opsdotkhr.all_uu_v2i16_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsdotkhr.all_uu_v2i16_out16 +dEQP-VK.spirv_assembly.instruction.compute.opsdotkhr.all_us_v2i16_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsdotkhr.all_us_v2i16_out16 +dEQP-VK.spirv_assembly.instruction.compute.opsdotkhr.all_su_v2i16_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsdotkhr.all_su_v2i16_out16 +dEQP-VK.spirv_assembly.instruction.compute.opsdotkhr.all_ss_v2i16_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsdotkhr.all_ss_v2i16_out16 +dEQP-VK.spirv_assembly.instruction.compute.opsdotkhr.all_uu_v3i16_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsdotkhr.all_uu_v3i16_out16 +dEQP-VK.spirv_assembly.instruction.compute.opsdotkhr.all_us_v3i16_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsdotkhr.all_us_v3i16_out16 +dEQP-VK.spirv_assembly.instruction.compute.opsdotkhr.all_su_v3i16_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsdotkhr.all_su_v3i16_out16 +dEQP-VK.spirv_assembly.instruction.compute.opsdotkhr.all_ss_v3i16_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsdotkhr.all_ss_v3i16_out16 +dEQP-VK.spirv_assembly.instruction.compute.opsdotkhr.all_uu_v4i16_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsdotkhr.all_uu_v4i16_out16 +dEQP-VK.spirv_assembly.instruction.compute.opsdotkhr.all_us_v4i16_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsdotkhr.all_us_v4i16_out16 +dEQP-VK.spirv_assembly.instruction.compute.opsdotkhr.all_su_v4i16_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsdotkhr.all_su_v4i16_out16 +dEQP-VK.spirv_assembly.instruction.compute.opsdotkhr.all_ss_v4i16_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsdotkhr.all_ss_v4i16_out16 +dEQP-VK.spirv_assembly.instruction.compute.opsdotkhr.all_uu_v2i32_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsdotkhr.all_us_v2i32_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsdotkhr.all_su_v2i32_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsdotkhr.all_ss_v2i32_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsdotkhr.all_uu_v3i32_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsdotkhr.all_us_v3i32_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsdotkhr.all_su_v3i32_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsdotkhr.all_ss_v3i32_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsdotkhr.all_uu_v4i32_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsdotkhr.all_us_v4i32_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsdotkhr.all_su_v4i32_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsdotkhr.all_ss_v4i32_out32 +dEQP-VK.spirv_assembly.instruction.compute.opudotkhr.all_uu_v2i8_out32 +dEQP-VK.spirv_assembly.instruction.compute.opudotkhr.all_uu_v2i8_out16 +dEQP-VK.spirv_assembly.instruction.compute.opudotkhr.all_uu_v2i8_out8 +dEQP-VK.spirv_assembly.instruction.compute.opudotkhr.all_us_v2i8_out32 +dEQP-VK.spirv_assembly.instruction.compute.opudotkhr.all_us_v2i8_out16 +dEQP-VK.spirv_assembly.instruction.compute.opudotkhr.all_us_v2i8_out8 +dEQP-VK.spirv_assembly.instruction.compute.opudotkhr.all_su_v2i8_out32 +dEQP-VK.spirv_assembly.instruction.compute.opudotkhr.all_su_v2i8_out16 +dEQP-VK.spirv_assembly.instruction.compute.opudotkhr.all_su_v2i8_out8 +dEQP-VK.spirv_assembly.instruction.compute.opudotkhr.all_ss_v2i8_out32 +dEQP-VK.spirv_assembly.instruction.compute.opudotkhr.all_ss_v2i8_out16 +dEQP-VK.spirv_assembly.instruction.compute.opudotkhr.all_ss_v2i8_out8 +dEQP-VK.spirv_assembly.instruction.compute.opudotkhr.all_uu_v3i8_out32 +dEQP-VK.spirv_assembly.instruction.compute.opudotkhr.all_uu_v3i8_out16 +dEQP-VK.spirv_assembly.instruction.compute.opudotkhr.all_uu_v3i8_out8 +dEQP-VK.spirv_assembly.instruction.compute.opudotkhr.all_us_v3i8_out32 +dEQP-VK.spirv_assembly.instruction.compute.opudotkhr.all_us_v3i8_out16 +dEQP-VK.spirv_assembly.instruction.compute.opudotkhr.all_us_v3i8_out8 +dEQP-VK.spirv_assembly.instruction.compute.opudotkhr.all_su_v3i8_out32 +dEQP-VK.spirv_assembly.instruction.compute.opudotkhr.all_su_v3i8_out16 +dEQP-VK.spirv_assembly.instruction.compute.opudotkhr.all_su_v3i8_out8 +dEQP-VK.spirv_assembly.instruction.compute.opudotkhr.all_ss_v3i8_out32 +dEQP-VK.spirv_assembly.instruction.compute.opudotkhr.all_ss_v3i8_out16 +dEQP-VK.spirv_assembly.instruction.compute.opudotkhr.all_ss_v3i8_out8 +dEQP-VK.spirv_assembly.instruction.compute.opudotkhr.all_uu_v4i8_out32 +dEQP-VK.spirv_assembly.instruction.compute.opudotkhr.all_uu_v4i8_out16 +dEQP-VK.spirv_assembly.instruction.compute.opudotkhr.all_uu_v4i8_out8 +dEQP-VK.spirv_assembly.instruction.compute.opudotkhr.all_us_v4i8_out32 +dEQP-VK.spirv_assembly.instruction.compute.opudotkhr.all_us_v4i8_out16 +dEQP-VK.spirv_assembly.instruction.compute.opudotkhr.all_us_v4i8_out8 +dEQP-VK.spirv_assembly.instruction.compute.opudotkhr.all_su_v4i8_out32 +dEQP-VK.spirv_assembly.instruction.compute.opudotkhr.all_su_v4i8_out16 +dEQP-VK.spirv_assembly.instruction.compute.opudotkhr.all_su_v4i8_out8 +dEQP-VK.spirv_assembly.instruction.compute.opudotkhr.all_ss_v4i8_out32 +dEQP-VK.spirv_assembly.instruction.compute.opudotkhr.all_ss_v4i8_out16 +dEQP-VK.spirv_assembly.instruction.compute.opudotkhr.all_ss_v4i8_out8 +dEQP-VK.spirv_assembly.instruction.compute.opudotkhr.all_packed_ss_v4i8_out32 +dEQP-VK.spirv_assembly.instruction.compute.opudotkhr.all_packed_ss_v4i8_out16 +dEQP-VK.spirv_assembly.instruction.compute.opudotkhr.all_packed_ss_v4i8_out8 +dEQP-VK.spirv_assembly.instruction.compute.opudotkhr.all_packed_su_v4i8_out32 +dEQP-VK.spirv_assembly.instruction.compute.opudotkhr.all_packed_su_v4i8_out16 +dEQP-VK.spirv_assembly.instruction.compute.opudotkhr.all_packed_su_v4i8_out8 +dEQP-VK.spirv_assembly.instruction.compute.opudotkhr.all_packed_us_v4i8_out32 +dEQP-VK.spirv_assembly.instruction.compute.opudotkhr.all_packed_us_v4i8_out16 +dEQP-VK.spirv_assembly.instruction.compute.opudotkhr.all_packed_us_v4i8_out8 +dEQP-VK.spirv_assembly.instruction.compute.opudotkhr.all_packed_uu_v4i8_out32 +dEQP-VK.spirv_assembly.instruction.compute.opudotkhr.all_packed_uu_v4i8_out16 +dEQP-VK.spirv_assembly.instruction.compute.opudotkhr.all_packed_uu_v4i8_out8 +dEQP-VK.spirv_assembly.instruction.compute.opudotkhr.small_uu_v2i8_out32 +dEQP-VK.spirv_assembly.instruction.compute.opudotkhr.small_uu_v2i8_out16 +dEQP-VK.spirv_assembly.instruction.compute.opudotkhr.small_uu_v2i8_out8 +dEQP-VK.spirv_assembly.instruction.compute.opudotkhr.small_us_v2i8_out32 +dEQP-VK.spirv_assembly.instruction.compute.opudotkhr.small_us_v2i8_out16 +dEQP-VK.spirv_assembly.instruction.compute.opudotkhr.small_us_v2i8_out8 +dEQP-VK.spirv_assembly.instruction.compute.opudotkhr.small_su_v2i8_out32 +dEQP-VK.spirv_assembly.instruction.compute.opudotkhr.small_su_v2i8_out16 +dEQP-VK.spirv_assembly.instruction.compute.opudotkhr.small_su_v2i8_out8 +dEQP-VK.spirv_assembly.instruction.compute.opudotkhr.small_ss_v2i8_out32 +dEQP-VK.spirv_assembly.instruction.compute.opudotkhr.small_ss_v2i8_out16 +dEQP-VK.spirv_assembly.instruction.compute.opudotkhr.small_ss_v2i8_out8 +dEQP-VK.spirv_assembly.instruction.compute.opudotkhr.small_uu_v3i8_out32 +dEQP-VK.spirv_assembly.instruction.compute.opudotkhr.small_uu_v3i8_out16 +dEQP-VK.spirv_assembly.instruction.compute.opudotkhr.small_uu_v3i8_out8 +dEQP-VK.spirv_assembly.instruction.compute.opudotkhr.small_us_v3i8_out32 +dEQP-VK.spirv_assembly.instruction.compute.opudotkhr.small_us_v3i8_out16 +dEQP-VK.spirv_assembly.instruction.compute.opudotkhr.small_us_v3i8_out8 +dEQP-VK.spirv_assembly.instruction.compute.opudotkhr.small_su_v3i8_out32 +dEQP-VK.spirv_assembly.instruction.compute.opudotkhr.small_su_v3i8_out16 +dEQP-VK.spirv_assembly.instruction.compute.opudotkhr.small_su_v3i8_out8 +dEQP-VK.spirv_assembly.instruction.compute.opudotkhr.small_ss_v3i8_out32 +dEQP-VK.spirv_assembly.instruction.compute.opudotkhr.small_ss_v3i8_out16 +dEQP-VK.spirv_assembly.instruction.compute.opudotkhr.small_ss_v3i8_out8 +dEQP-VK.spirv_assembly.instruction.compute.opudotkhr.small_uu_v4i8_out32 +dEQP-VK.spirv_assembly.instruction.compute.opudotkhr.small_uu_v4i8_out16 +dEQP-VK.spirv_assembly.instruction.compute.opudotkhr.small_uu_v4i8_out8 +dEQP-VK.spirv_assembly.instruction.compute.opudotkhr.small_us_v4i8_out32 +dEQP-VK.spirv_assembly.instruction.compute.opudotkhr.small_us_v4i8_out16 +dEQP-VK.spirv_assembly.instruction.compute.opudotkhr.small_us_v4i8_out8 +dEQP-VK.spirv_assembly.instruction.compute.opudotkhr.small_su_v4i8_out32 +dEQP-VK.spirv_assembly.instruction.compute.opudotkhr.small_su_v4i8_out16 +dEQP-VK.spirv_assembly.instruction.compute.opudotkhr.small_su_v4i8_out8 +dEQP-VK.spirv_assembly.instruction.compute.opudotkhr.small_ss_v4i8_out32 +dEQP-VK.spirv_assembly.instruction.compute.opudotkhr.small_ss_v4i8_out16 +dEQP-VK.spirv_assembly.instruction.compute.opudotkhr.small_ss_v4i8_out8 +dEQP-VK.spirv_assembly.instruction.compute.opudotkhr.small_packed_ss_v4i8_out32 +dEQP-VK.spirv_assembly.instruction.compute.opudotkhr.small_packed_ss_v4i8_out16 +dEQP-VK.spirv_assembly.instruction.compute.opudotkhr.small_packed_ss_v4i8_out8 +dEQP-VK.spirv_assembly.instruction.compute.opudotkhr.small_packed_su_v4i8_out32 +dEQP-VK.spirv_assembly.instruction.compute.opudotkhr.small_packed_su_v4i8_out16 +dEQP-VK.spirv_assembly.instruction.compute.opudotkhr.small_packed_su_v4i8_out8 +dEQP-VK.spirv_assembly.instruction.compute.opudotkhr.small_packed_us_v4i8_out32 +dEQP-VK.spirv_assembly.instruction.compute.opudotkhr.small_packed_us_v4i8_out16 +dEQP-VK.spirv_assembly.instruction.compute.opudotkhr.small_packed_us_v4i8_out8 +dEQP-VK.spirv_assembly.instruction.compute.opudotkhr.small_packed_uu_v4i8_out32 +dEQP-VK.spirv_assembly.instruction.compute.opudotkhr.small_packed_uu_v4i8_out16 +dEQP-VK.spirv_assembly.instruction.compute.opudotkhr.small_packed_uu_v4i8_out8 +dEQP-VK.spirv_assembly.instruction.compute.opudotkhr.all_uu_v2i16_out32 +dEQP-VK.spirv_assembly.instruction.compute.opudotkhr.all_uu_v2i16_out16 +dEQP-VK.spirv_assembly.instruction.compute.opudotkhr.all_us_v2i16_out32 +dEQP-VK.spirv_assembly.instruction.compute.opudotkhr.all_us_v2i16_out16 +dEQP-VK.spirv_assembly.instruction.compute.opudotkhr.all_su_v2i16_out32 +dEQP-VK.spirv_assembly.instruction.compute.opudotkhr.all_su_v2i16_out16 +dEQP-VK.spirv_assembly.instruction.compute.opudotkhr.all_ss_v2i16_out32 +dEQP-VK.spirv_assembly.instruction.compute.opudotkhr.all_ss_v2i16_out16 +dEQP-VK.spirv_assembly.instruction.compute.opudotkhr.all_uu_v3i16_out32 +dEQP-VK.spirv_assembly.instruction.compute.opudotkhr.all_uu_v3i16_out16 +dEQP-VK.spirv_assembly.instruction.compute.opudotkhr.all_us_v3i16_out32 +dEQP-VK.spirv_assembly.instruction.compute.opudotkhr.all_us_v3i16_out16 +dEQP-VK.spirv_assembly.instruction.compute.opudotkhr.all_su_v3i16_out32 +dEQP-VK.spirv_assembly.instruction.compute.opudotkhr.all_su_v3i16_out16 +dEQP-VK.spirv_assembly.instruction.compute.opudotkhr.all_ss_v3i16_out32 +dEQP-VK.spirv_assembly.instruction.compute.opudotkhr.all_ss_v3i16_out16 +dEQP-VK.spirv_assembly.instruction.compute.opudotkhr.all_uu_v4i16_out32 +dEQP-VK.spirv_assembly.instruction.compute.opudotkhr.all_uu_v4i16_out16 +dEQP-VK.spirv_assembly.instruction.compute.opudotkhr.all_us_v4i16_out32 +dEQP-VK.spirv_assembly.instruction.compute.opudotkhr.all_us_v4i16_out16 +dEQP-VK.spirv_assembly.instruction.compute.opudotkhr.all_su_v4i16_out32 +dEQP-VK.spirv_assembly.instruction.compute.opudotkhr.all_su_v4i16_out16 +dEQP-VK.spirv_assembly.instruction.compute.opudotkhr.all_ss_v4i16_out32 +dEQP-VK.spirv_assembly.instruction.compute.opudotkhr.all_ss_v4i16_out16 +dEQP-VK.spirv_assembly.instruction.compute.opudotkhr.all_uu_v2i32_out32 +dEQP-VK.spirv_assembly.instruction.compute.opudotkhr.all_us_v2i32_out32 +dEQP-VK.spirv_assembly.instruction.compute.opudotkhr.all_su_v2i32_out32 +dEQP-VK.spirv_assembly.instruction.compute.opudotkhr.all_ss_v2i32_out32 +dEQP-VK.spirv_assembly.instruction.compute.opudotkhr.all_uu_v3i32_out32 +dEQP-VK.spirv_assembly.instruction.compute.opudotkhr.all_us_v3i32_out32 +dEQP-VK.spirv_assembly.instruction.compute.opudotkhr.all_su_v3i32_out32 +dEQP-VK.spirv_assembly.instruction.compute.opudotkhr.all_ss_v3i32_out32 +dEQP-VK.spirv_assembly.instruction.compute.opudotkhr.all_uu_v4i32_out32 +dEQP-VK.spirv_assembly.instruction.compute.opudotkhr.all_us_v4i32_out32 +dEQP-VK.spirv_assembly.instruction.compute.opudotkhr.all_su_v4i32_out32 +dEQP-VK.spirv_assembly.instruction.compute.opudotkhr.all_ss_v4i32_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsudotkhr.all_uu_v2i8_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsudotkhr.all_uu_v2i8_out16 +dEQP-VK.spirv_assembly.instruction.compute.opsudotkhr.all_uu_v2i8_out8 +dEQP-VK.spirv_assembly.instruction.compute.opsudotkhr.all_us_v2i8_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsudotkhr.all_us_v2i8_out16 +dEQP-VK.spirv_assembly.instruction.compute.opsudotkhr.all_us_v2i8_out8 +dEQP-VK.spirv_assembly.instruction.compute.opsudotkhr.all_su_v2i8_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsudotkhr.all_su_v2i8_out16 +dEQP-VK.spirv_assembly.instruction.compute.opsudotkhr.all_su_v2i8_out8 +dEQP-VK.spirv_assembly.instruction.compute.opsudotkhr.all_ss_v2i8_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsudotkhr.all_ss_v2i8_out16 +dEQP-VK.spirv_assembly.instruction.compute.opsudotkhr.all_ss_v2i8_out8 +dEQP-VK.spirv_assembly.instruction.compute.opsudotkhr.all_uu_v3i8_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsudotkhr.all_uu_v3i8_out16 +dEQP-VK.spirv_assembly.instruction.compute.opsudotkhr.all_uu_v3i8_out8 +dEQP-VK.spirv_assembly.instruction.compute.opsudotkhr.all_us_v3i8_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsudotkhr.all_us_v3i8_out16 +dEQP-VK.spirv_assembly.instruction.compute.opsudotkhr.all_us_v3i8_out8 +dEQP-VK.spirv_assembly.instruction.compute.opsudotkhr.all_su_v3i8_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsudotkhr.all_su_v3i8_out16 +dEQP-VK.spirv_assembly.instruction.compute.opsudotkhr.all_su_v3i8_out8 +dEQP-VK.spirv_assembly.instruction.compute.opsudotkhr.all_ss_v3i8_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsudotkhr.all_ss_v3i8_out16 +dEQP-VK.spirv_assembly.instruction.compute.opsudotkhr.all_ss_v3i8_out8 +dEQP-VK.spirv_assembly.instruction.compute.opsudotkhr.all_uu_v4i8_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsudotkhr.all_uu_v4i8_out16 +dEQP-VK.spirv_assembly.instruction.compute.opsudotkhr.all_uu_v4i8_out8 +dEQP-VK.spirv_assembly.instruction.compute.opsudotkhr.all_us_v4i8_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsudotkhr.all_us_v4i8_out16 +dEQP-VK.spirv_assembly.instruction.compute.opsudotkhr.all_us_v4i8_out8 +dEQP-VK.spirv_assembly.instruction.compute.opsudotkhr.all_su_v4i8_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsudotkhr.all_su_v4i8_out16 +dEQP-VK.spirv_assembly.instruction.compute.opsudotkhr.all_su_v4i8_out8 +dEQP-VK.spirv_assembly.instruction.compute.opsudotkhr.all_ss_v4i8_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsudotkhr.all_ss_v4i8_out16 +dEQP-VK.spirv_assembly.instruction.compute.opsudotkhr.all_ss_v4i8_out8 +dEQP-VK.spirv_assembly.instruction.compute.opsudotkhr.all_packed_ss_v4i8_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsudotkhr.all_packed_ss_v4i8_out16 +dEQP-VK.spirv_assembly.instruction.compute.opsudotkhr.all_packed_ss_v4i8_out8 +dEQP-VK.spirv_assembly.instruction.compute.opsudotkhr.all_packed_su_v4i8_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsudotkhr.all_packed_su_v4i8_out16 +dEQP-VK.spirv_assembly.instruction.compute.opsudotkhr.all_packed_su_v4i8_out8 +dEQP-VK.spirv_assembly.instruction.compute.opsudotkhr.all_packed_us_v4i8_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsudotkhr.all_packed_us_v4i8_out16 +dEQP-VK.spirv_assembly.instruction.compute.opsudotkhr.all_packed_us_v4i8_out8 +dEQP-VK.spirv_assembly.instruction.compute.opsudotkhr.all_packed_uu_v4i8_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsudotkhr.all_packed_uu_v4i8_out16 +dEQP-VK.spirv_assembly.instruction.compute.opsudotkhr.all_packed_uu_v4i8_out8 +dEQP-VK.spirv_assembly.instruction.compute.opsudotkhr.small_uu_v2i8_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsudotkhr.small_uu_v2i8_out16 +dEQP-VK.spirv_assembly.instruction.compute.opsudotkhr.small_uu_v2i8_out8 +dEQP-VK.spirv_assembly.instruction.compute.opsudotkhr.small_us_v2i8_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsudotkhr.small_us_v2i8_out16 +dEQP-VK.spirv_assembly.instruction.compute.opsudotkhr.small_us_v2i8_out8 +dEQP-VK.spirv_assembly.instruction.compute.opsudotkhr.small_su_v2i8_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsudotkhr.small_su_v2i8_out16 +dEQP-VK.spirv_assembly.instruction.compute.opsudotkhr.small_su_v2i8_out8 +dEQP-VK.spirv_assembly.instruction.compute.opsudotkhr.small_ss_v2i8_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsudotkhr.small_ss_v2i8_out16 +dEQP-VK.spirv_assembly.instruction.compute.opsudotkhr.small_ss_v2i8_out8 +dEQP-VK.spirv_assembly.instruction.compute.opsudotkhr.small_uu_v3i8_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsudotkhr.small_uu_v3i8_out16 +dEQP-VK.spirv_assembly.instruction.compute.opsudotkhr.small_uu_v3i8_out8 +dEQP-VK.spirv_assembly.instruction.compute.opsudotkhr.small_us_v3i8_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsudotkhr.small_us_v3i8_out16 +dEQP-VK.spirv_assembly.instruction.compute.opsudotkhr.small_us_v3i8_out8 +dEQP-VK.spirv_assembly.instruction.compute.opsudotkhr.small_su_v3i8_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsudotkhr.small_su_v3i8_out16 +dEQP-VK.spirv_assembly.instruction.compute.opsudotkhr.small_su_v3i8_out8 +dEQP-VK.spirv_assembly.instruction.compute.opsudotkhr.small_ss_v3i8_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsudotkhr.small_ss_v3i8_out16 +dEQP-VK.spirv_assembly.instruction.compute.opsudotkhr.small_ss_v3i8_out8 +dEQP-VK.spirv_assembly.instruction.compute.opsudotkhr.small_uu_v4i8_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsudotkhr.small_uu_v4i8_out16 +dEQP-VK.spirv_assembly.instruction.compute.opsudotkhr.small_uu_v4i8_out8 +dEQP-VK.spirv_assembly.instruction.compute.opsudotkhr.small_us_v4i8_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsudotkhr.small_us_v4i8_out16 +dEQP-VK.spirv_assembly.instruction.compute.opsudotkhr.small_us_v4i8_out8 +dEQP-VK.spirv_assembly.instruction.compute.opsudotkhr.small_su_v4i8_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsudotkhr.small_su_v4i8_out16 +dEQP-VK.spirv_assembly.instruction.compute.opsudotkhr.small_su_v4i8_out8 +dEQP-VK.spirv_assembly.instruction.compute.opsudotkhr.small_ss_v4i8_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsudotkhr.small_ss_v4i8_out16 +dEQP-VK.spirv_assembly.instruction.compute.opsudotkhr.small_ss_v4i8_out8 +dEQP-VK.spirv_assembly.instruction.compute.opsudotkhr.small_packed_ss_v4i8_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsudotkhr.small_packed_ss_v4i8_out16 +dEQP-VK.spirv_assembly.instruction.compute.opsudotkhr.small_packed_ss_v4i8_out8 +dEQP-VK.spirv_assembly.instruction.compute.opsudotkhr.small_packed_su_v4i8_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsudotkhr.small_packed_su_v4i8_out16 +dEQP-VK.spirv_assembly.instruction.compute.opsudotkhr.small_packed_su_v4i8_out8 +dEQP-VK.spirv_assembly.instruction.compute.opsudotkhr.small_packed_us_v4i8_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsudotkhr.small_packed_us_v4i8_out16 +dEQP-VK.spirv_assembly.instruction.compute.opsudotkhr.small_packed_us_v4i8_out8 +dEQP-VK.spirv_assembly.instruction.compute.opsudotkhr.small_packed_uu_v4i8_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsudotkhr.small_packed_uu_v4i8_out16 +dEQP-VK.spirv_assembly.instruction.compute.opsudotkhr.small_packed_uu_v4i8_out8 +dEQP-VK.spirv_assembly.instruction.compute.opsudotkhr.all_uu_v2i16_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsudotkhr.all_uu_v2i16_out16 +dEQP-VK.spirv_assembly.instruction.compute.opsudotkhr.all_us_v2i16_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsudotkhr.all_us_v2i16_out16 +dEQP-VK.spirv_assembly.instruction.compute.opsudotkhr.all_su_v2i16_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsudotkhr.all_su_v2i16_out16 +dEQP-VK.spirv_assembly.instruction.compute.opsudotkhr.all_ss_v2i16_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsudotkhr.all_ss_v2i16_out16 +dEQP-VK.spirv_assembly.instruction.compute.opsudotkhr.all_uu_v3i16_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsudotkhr.all_uu_v3i16_out16 +dEQP-VK.spirv_assembly.instruction.compute.opsudotkhr.all_us_v3i16_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsudotkhr.all_us_v3i16_out16 +dEQP-VK.spirv_assembly.instruction.compute.opsudotkhr.all_su_v3i16_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsudotkhr.all_su_v3i16_out16 +dEQP-VK.spirv_assembly.instruction.compute.opsudotkhr.all_ss_v3i16_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsudotkhr.all_ss_v3i16_out16 +dEQP-VK.spirv_assembly.instruction.compute.opsudotkhr.all_uu_v4i16_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsudotkhr.all_uu_v4i16_out16 +dEQP-VK.spirv_assembly.instruction.compute.opsudotkhr.all_us_v4i16_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsudotkhr.all_us_v4i16_out16 +dEQP-VK.spirv_assembly.instruction.compute.opsudotkhr.all_su_v4i16_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsudotkhr.all_su_v4i16_out16 +dEQP-VK.spirv_assembly.instruction.compute.opsudotkhr.all_ss_v4i16_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsudotkhr.all_ss_v4i16_out16 +dEQP-VK.spirv_assembly.instruction.compute.opsudotkhr.all_uu_v2i32_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsudotkhr.all_us_v2i32_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsudotkhr.all_su_v2i32_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsudotkhr.all_ss_v2i32_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsudotkhr.all_uu_v3i32_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsudotkhr.all_us_v3i32_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsudotkhr.all_su_v3i32_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsudotkhr.all_ss_v3i32_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsudotkhr.all_uu_v4i32_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsudotkhr.all_us_v4i32_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsudotkhr.all_su_v4i32_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsudotkhr.all_ss_v4i32_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsdotaccsatkhr.all_uu_v2i8_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsdotaccsatkhr.all_uu_v2i8_out16 +dEQP-VK.spirv_assembly.instruction.compute.opsdotaccsatkhr.all_uu_v2i8_out8 +dEQP-VK.spirv_assembly.instruction.compute.opsdotaccsatkhr.all_us_v2i8_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsdotaccsatkhr.all_us_v2i8_out16 +dEQP-VK.spirv_assembly.instruction.compute.opsdotaccsatkhr.all_us_v2i8_out8 +dEQP-VK.spirv_assembly.instruction.compute.opsdotaccsatkhr.all_su_v2i8_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsdotaccsatkhr.all_su_v2i8_out16 +dEQP-VK.spirv_assembly.instruction.compute.opsdotaccsatkhr.all_su_v2i8_out8 +dEQP-VK.spirv_assembly.instruction.compute.opsdotaccsatkhr.all_ss_v2i8_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsdotaccsatkhr.all_ss_v2i8_out16 +dEQP-VK.spirv_assembly.instruction.compute.opsdotaccsatkhr.all_ss_v2i8_out8 +dEQP-VK.spirv_assembly.instruction.compute.opsdotaccsatkhr.all_uu_v3i8_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsdotaccsatkhr.all_uu_v3i8_out16 +dEQP-VK.spirv_assembly.instruction.compute.opsdotaccsatkhr.all_uu_v3i8_out8 +dEQP-VK.spirv_assembly.instruction.compute.opsdotaccsatkhr.all_us_v3i8_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsdotaccsatkhr.all_us_v3i8_out16 +dEQP-VK.spirv_assembly.instruction.compute.opsdotaccsatkhr.all_us_v3i8_out8 +dEQP-VK.spirv_assembly.instruction.compute.opsdotaccsatkhr.all_su_v3i8_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsdotaccsatkhr.all_su_v3i8_out16 +dEQP-VK.spirv_assembly.instruction.compute.opsdotaccsatkhr.all_su_v3i8_out8 +dEQP-VK.spirv_assembly.instruction.compute.opsdotaccsatkhr.all_ss_v3i8_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsdotaccsatkhr.all_ss_v3i8_out16 +dEQP-VK.spirv_assembly.instruction.compute.opsdotaccsatkhr.all_ss_v3i8_out8 +dEQP-VK.spirv_assembly.instruction.compute.opsdotaccsatkhr.all_uu_v4i8_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsdotaccsatkhr.all_uu_v4i8_out16 +dEQP-VK.spirv_assembly.instruction.compute.opsdotaccsatkhr.all_uu_v4i8_out8 +dEQP-VK.spirv_assembly.instruction.compute.opsdotaccsatkhr.all_us_v4i8_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsdotaccsatkhr.all_us_v4i8_out16 +dEQP-VK.spirv_assembly.instruction.compute.opsdotaccsatkhr.all_us_v4i8_out8 +dEQP-VK.spirv_assembly.instruction.compute.opsdotaccsatkhr.all_su_v4i8_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsdotaccsatkhr.all_su_v4i8_out16 +dEQP-VK.spirv_assembly.instruction.compute.opsdotaccsatkhr.all_su_v4i8_out8 +dEQP-VK.spirv_assembly.instruction.compute.opsdotaccsatkhr.all_ss_v4i8_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsdotaccsatkhr.all_ss_v4i8_out16 +dEQP-VK.spirv_assembly.instruction.compute.opsdotaccsatkhr.all_ss_v4i8_out8 +dEQP-VK.spirv_assembly.instruction.compute.opsdotaccsatkhr.all_packed_ss_v4i8_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsdotaccsatkhr.all_packed_ss_v4i8_out16 +dEQP-VK.spirv_assembly.instruction.compute.opsdotaccsatkhr.all_packed_ss_v4i8_out8 +dEQP-VK.spirv_assembly.instruction.compute.opsdotaccsatkhr.all_packed_su_v4i8_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsdotaccsatkhr.all_packed_su_v4i8_out16 +dEQP-VK.spirv_assembly.instruction.compute.opsdotaccsatkhr.all_packed_su_v4i8_out8 +dEQP-VK.spirv_assembly.instruction.compute.opsdotaccsatkhr.all_packed_us_v4i8_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsdotaccsatkhr.all_packed_us_v4i8_out16 +dEQP-VK.spirv_assembly.instruction.compute.opsdotaccsatkhr.all_packed_us_v4i8_out8 +dEQP-VK.spirv_assembly.instruction.compute.opsdotaccsatkhr.all_packed_uu_v4i8_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsdotaccsatkhr.all_packed_uu_v4i8_out16 +dEQP-VK.spirv_assembly.instruction.compute.opsdotaccsatkhr.all_packed_uu_v4i8_out8 +dEQP-VK.spirv_assembly.instruction.compute.opsdotaccsatkhr.limits_uu_v2i8_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsdotaccsatkhr.limits_uu_v2i8_out16 +dEQP-VK.spirv_assembly.instruction.compute.opsdotaccsatkhr.limits_uu_v2i8_out8 +dEQP-VK.spirv_assembly.instruction.compute.opsdotaccsatkhr.limits_us_v2i8_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsdotaccsatkhr.limits_us_v2i8_out16 +dEQP-VK.spirv_assembly.instruction.compute.opsdotaccsatkhr.limits_us_v2i8_out8 +dEQP-VK.spirv_assembly.instruction.compute.opsdotaccsatkhr.limits_su_v2i8_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsdotaccsatkhr.limits_su_v2i8_out16 +dEQP-VK.spirv_assembly.instruction.compute.opsdotaccsatkhr.limits_su_v2i8_out8 +dEQP-VK.spirv_assembly.instruction.compute.opsdotaccsatkhr.limits_ss_v2i8_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsdotaccsatkhr.limits_ss_v2i8_out16 +dEQP-VK.spirv_assembly.instruction.compute.opsdotaccsatkhr.limits_ss_v2i8_out8 +dEQP-VK.spirv_assembly.instruction.compute.opsdotaccsatkhr.limits_uu_v3i8_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsdotaccsatkhr.limits_uu_v3i8_out16 +dEQP-VK.spirv_assembly.instruction.compute.opsdotaccsatkhr.limits_uu_v3i8_out8 +dEQP-VK.spirv_assembly.instruction.compute.opsdotaccsatkhr.limits_us_v3i8_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsdotaccsatkhr.limits_us_v3i8_out16 +dEQP-VK.spirv_assembly.instruction.compute.opsdotaccsatkhr.limits_us_v3i8_out8 +dEQP-VK.spirv_assembly.instruction.compute.opsdotaccsatkhr.limits_su_v3i8_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsdotaccsatkhr.limits_su_v3i8_out16 +dEQP-VK.spirv_assembly.instruction.compute.opsdotaccsatkhr.limits_su_v3i8_out8 +dEQP-VK.spirv_assembly.instruction.compute.opsdotaccsatkhr.limits_ss_v3i8_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsdotaccsatkhr.limits_ss_v3i8_out16 +dEQP-VK.spirv_assembly.instruction.compute.opsdotaccsatkhr.limits_ss_v3i8_out8 +dEQP-VK.spirv_assembly.instruction.compute.opsdotaccsatkhr.limits_uu_v4i8_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsdotaccsatkhr.limits_uu_v4i8_out16 +dEQP-VK.spirv_assembly.instruction.compute.opsdotaccsatkhr.limits_uu_v4i8_out8 +dEQP-VK.spirv_assembly.instruction.compute.opsdotaccsatkhr.limits_us_v4i8_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsdotaccsatkhr.limits_us_v4i8_out16 +dEQP-VK.spirv_assembly.instruction.compute.opsdotaccsatkhr.limits_us_v4i8_out8 +dEQP-VK.spirv_assembly.instruction.compute.opsdotaccsatkhr.limits_su_v4i8_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsdotaccsatkhr.limits_su_v4i8_out16 +dEQP-VK.spirv_assembly.instruction.compute.opsdotaccsatkhr.limits_su_v4i8_out8 +dEQP-VK.spirv_assembly.instruction.compute.opsdotaccsatkhr.limits_ss_v4i8_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsdotaccsatkhr.limits_ss_v4i8_out16 +dEQP-VK.spirv_assembly.instruction.compute.opsdotaccsatkhr.limits_ss_v4i8_out8 +dEQP-VK.spirv_assembly.instruction.compute.opsdotaccsatkhr.limits_packed_ss_v4i8_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsdotaccsatkhr.limits_packed_ss_v4i8_out16 +dEQP-VK.spirv_assembly.instruction.compute.opsdotaccsatkhr.limits_packed_ss_v4i8_out8 +dEQP-VK.spirv_assembly.instruction.compute.opsdotaccsatkhr.limits_packed_su_v4i8_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsdotaccsatkhr.limits_packed_su_v4i8_out16 +dEQP-VK.spirv_assembly.instruction.compute.opsdotaccsatkhr.limits_packed_su_v4i8_out8 +dEQP-VK.spirv_assembly.instruction.compute.opsdotaccsatkhr.limits_packed_us_v4i8_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsdotaccsatkhr.limits_packed_us_v4i8_out16 +dEQP-VK.spirv_assembly.instruction.compute.opsdotaccsatkhr.limits_packed_us_v4i8_out8 +dEQP-VK.spirv_assembly.instruction.compute.opsdotaccsatkhr.limits_packed_uu_v4i8_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsdotaccsatkhr.limits_packed_uu_v4i8_out16 +dEQP-VK.spirv_assembly.instruction.compute.opsdotaccsatkhr.limits_packed_uu_v4i8_out8 +dEQP-VK.spirv_assembly.instruction.compute.opsdotaccsatkhr.limits-neg_uu_v2i8_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsdotaccsatkhr.limits-neg_uu_v2i8_out16 +dEQP-VK.spirv_assembly.instruction.compute.opsdotaccsatkhr.limits-neg_uu_v2i8_out8 +dEQP-VK.spirv_assembly.instruction.compute.opsdotaccsatkhr.limits-neg_us_v2i8_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsdotaccsatkhr.limits-neg_us_v2i8_out16 +dEQP-VK.spirv_assembly.instruction.compute.opsdotaccsatkhr.limits-neg_us_v2i8_out8 +dEQP-VK.spirv_assembly.instruction.compute.opsdotaccsatkhr.limits-neg_su_v2i8_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsdotaccsatkhr.limits-neg_su_v2i8_out16 +dEQP-VK.spirv_assembly.instruction.compute.opsdotaccsatkhr.limits-neg_su_v2i8_out8 +dEQP-VK.spirv_assembly.instruction.compute.opsdotaccsatkhr.limits-neg_ss_v2i8_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsdotaccsatkhr.limits-neg_ss_v2i8_out16 +dEQP-VK.spirv_assembly.instruction.compute.opsdotaccsatkhr.limits-neg_ss_v2i8_out8 +dEQP-VK.spirv_assembly.instruction.compute.opsdotaccsatkhr.limits-neg_uu_v3i8_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsdotaccsatkhr.limits-neg_uu_v3i8_out16 +dEQP-VK.spirv_assembly.instruction.compute.opsdotaccsatkhr.limits-neg_uu_v3i8_out8 +dEQP-VK.spirv_assembly.instruction.compute.opsdotaccsatkhr.limits-neg_us_v3i8_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsdotaccsatkhr.limits-neg_us_v3i8_out16 +dEQP-VK.spirv_assembly.instruction.compute.opsdotaccsatkhr.limits-neg_us_v3i8_out8 +dEQP-VK.spirv_assembly.instruction.compute.opsdotaccsatkhr.limits-neg_su_v3i8_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsdotaccsatkhr.limits-neg_su_v3i8_out16 +dEQP-VK.spirv_assembly.instruction.compute.opsdotaccsatkhr.limits-neg_su_v3i8_out8 +dEQP-VK.spirv_assembly.instruction.compute.opsdotaccsatkhr.limits-neg_ss_v3i8_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsdotaccsatkhr.limits-neg_ss_v3i8_out16 +dEQP-VK.spirv_assembly.instruction.compute.opsdotaccsatkhr.limits-neg_ss_v3i8_out8 +dEQP-VK.spirv_assembly.instruction.compute.opsdotaccsatkhr.limits-neg_uu_v4i8_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsdotaccsatkhr.limits-neg_uu_v4i8_out16 +dEQP-VK.spirv_assembly.instruction.compute.opsdotaccsatkhr.limits-neg_uu_v4i8_out8 +dEQP-VK.spirv_assembly.instruction.compute.opsdotaccsatkhr.limits-neg_us_v4i8_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsdotaccsatkhr.limits-neg_us_v4i8_out16 +dEQP-VK.spirv_assembly.instruction.compute.opsdotaccsatkhr.limits-neg_us_v4i8_out8 +dEQP-VK.spirv_assembly.instruction.compute.opsdotaccsatkhr.limits-neg_su_v4i8_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsdotaccsatkhr.limits-neg_su_v4i8_out16 +dEQP-VK.spirv_assembly.instruction.compute.opsdotaccsatkhr.limits-neg_su_v4i8_out8 +dEQP-VK.spirv_assembly.instruction.compute.opsdotaccsatkhr.limits-neg_ss_v4i8_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsdotaccsatkhr.limits-neg_ss_v4i8_out16 +dEQP-VK.spirv_assembly.instruction.compute.opsdotaccsatkhr.limits-neg_ss_v4i8_out8 +dEQP-VK.spirv_assembly.instruction.compute.opsdotaccsatkhr.limits-neg_packed_ss_v4i8_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsdotaccsatkhr.limits-neg_packed_ss_v4i8_out16 +dEQP-VK.spirv_assembly.instruction.compute.opsdotaccsatkhr.limits-neg_packed_ss_v4i8_out8 +dEQP-VK.spirv_assembly.instruction.compute.opsdotaccsatkhr.limits-neg_packed_su_v4i8_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsdotaccsatkhr.limits-neg_packed_su_v4i8_out16 +dEQP-VK.spirv_assembly.instruction.compute.opsdotaccsatkhr.limits-neg_packed_su_v4i8_out8 +dEQP-VK.spirv_assembly.instruction.compute.opsdotaccsatkhr.limits-neg_packed_us_v4i8_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsdotaccsatkhr.limits-neg_packed_us_v4i8_out16 +dEQP-VK.spirv_assembly.instruction.compute.opsdotaccsatkhr.limits-neg_packed_us_v4i8_out8 +dEQP-VK.spirv_assembly.instruction.compute.opsdotaccsatkhr.limits-neg_packed_uu_v4i8_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsdotaccsatkhr.limits-neg_packed_uu_v4i8_out16 +dEQP-VK.spirv_assembly.instruction.compute.opsdotaccsatkhr.limits-neg_packed_uu_v4i8_out8 +dEQP-VK.spirv_assembly.instruction.compute.opsdotaccsatkhr.small_uu_v2i8_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsdotaccsatkhr.small_uu_v2i8_out16 +dEQP-VK.spirv_assembly.instruction.compute.opsdotaccsatkhr.small_uu_v2i8_out8 +dEQP-VK.spirv_assembly.instruction.compute.opsdotaccsatkhr.small_us_v2i8_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsdotaccsatkhr.small_us_v2i8_out16 +dEQP-VK.spirv_assembly.instruction.compute.opsdotaccsatkhr.small_us_v2i8_out8 +dEQP-VK.spirv_assembly.instruction.compute.opsdotaccsatkhr.small_su_v2i8_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsdotaccsatkhr.small_su_v2i8_out16 +dEQP-VK.spirv_assembly.instruction.compute.opsdotaccsatkhr.small_su_v2i8_out8 +dEQP-VK.spirv_assembly.instruction.compute.opsdotaccsatkhr.small_ss_v2i8_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsdotaccsatkhr.small_ss_v2i8_out16 +dEQP-VK.spirv_assembly.instruction.compute.opsdotaccsatkhr.small_ss_v2i8_out8 +dEQP-VK.spirv_assembly.instruction.compute.opsdotaccsatkhr.small_uu_v3i8_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsdotaccsatkhr.small_uu_v3i8_out16 +dEQP-VK.spirv_assembly.instruction.compute.opsdotaccsatkhr.small_uu_v3i8_out8 +dEQP-VK.spirv_assembly.instruction.compute.opsdotaccsatkhr.small_us_v3i8_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsdotaccsatkhr.small_us_v3i8_out16 +dEQP-VK.spirv_assembly.instruction.compute.opsdotaccsatkhr.small_us_v3i8_out8 +dEQP-VK.spirv_assembly.instruction.compute.opsdotaccsatkhr.small_su_v3i8_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsdotaccsatkhr.small_su_v3i8_out16 +dEQP-VK.spirv_assembly.instruction.compute.opsdotaccsatkhr.small_su_v3i8_out8 +dEQP-VK.spirv_assembly.instruction.compute.opsdotaccsatkhr.small_ss_v3i8_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsdotaccsatkhr.small_ss_v3i8_out16 +dEQP-VK.spirv_assembly.instruction.compute.opsdotaccsatkhr.small_ss_v3i8_out8 +dEQP-VK.spirv_assembly.instruction.compute.opsdotaccsatkhr.small_uu_v4i8_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsdotaccsatkhr.small_uu_v4i8_out16 +dEQP-VK.spirv_assembly.instruction.compute.opsdotaccsatkhr.small_uu_v4i8_out8 +dEQP-VK.spirv_assembly.instruction.compute.opsdotaccsatkhr.small_us_v4i8_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsdotaccsatkhr.small_us_v4i8_out16 +dEQP-VK.spirv_assembly.instruction.compute.opsdotaccsatkhr.small_us_v4i8_out8 +dEQP-VK.spirv_assembly.instruction.compute.opsdotaccsatkhr.small_su_v4i8_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsdotaccsatkhr.small_su_v4i8_out16 +dEQP-VK.spirv_assembly.instruction.compute.opsdotaccsatkhr.small_su_v4i8_out8 +dEQP-VK.spirv_assembly.instruction.compute.opsdotaccsatkhr.small_ss_v4i8_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsdotaccsatkhr.small_ss_v4i8_out16 +dEQP-VK.spirv_assembly.instruction.compute.opsdotaccsatkhr.small_ss_v4i8_out8 +dEQP-VK.spirv_assembly.instruction.compute.opsdotaccsatkhr.small_packed_ss_v4i8_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsdotaccsatkhr.small_packed_ss_v4i8_out16 +dEQP-VK.spirv_assembly.instruction.compute.opsdotaccsatkhr.small_packed_ss_v4i8_out8 +dEQP-VK.spirv_assembly.instruction.compute.opsdotaccsatkhr.small_packed_su_v4i8_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsdotaccsatkhr.small_packed_su_v4i8_out16 +dEQP-VK.spirv_assembly.instruction.compute.opsdotaccsatkhr.small_packed_su_v4i8_out8 +dEQP-VK.spirv_assembly.instruction.compute.opsdotaccsatkhr.small_packed_us_v4i8_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsdotaccsatkhr.small_packed_us_v4i8_out16 +dEQP-VK.spirv_assembly.instruction.compute.opsdotaccsatkhr.small_packed_us_v4i8_out8 +dEQP-VK.spirv_assembly.instruction.compute.opsdotaccsatkhr.small_packed_uu_v4i8_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsdotaccsatkhr.small_packed_uu_v4i8_out16 +dEQP-VK.spirv_assembly.instruction.compute.opsdotaccsatkhr.small_packed_uu_v4i8_out8 +dEQP-VK.spirv_assembly.instruction.compute.opsdotaccsatkhr.all_uu_v2i16_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsdotaccsatkhr.all_uu_v2i16_out16 +dEQP-VK.spirv_assembly.instruction.compute.opsdotaccsatkhr.all_us_v2i16_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsdotaccsatkhr.all_us_v2i16_out16 +dEQP-VK.spirv_assembly.instruction.compute.opsdotaccsatkhr.all_su_v2i16_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsdotaccsatkhr.all_su_v2i16_out16 +dEQP-VK.spirv_assembly.instruction.compute.opsdotaccsatkhr.all_ss_v2i16_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsdotaccsatkhr.all_ss_v2i16_out16 +dEQP-VK.spirv_assembly.instruction.compute.opsdotaccsatkhr.all_uu_v3i16_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsdotaccsatkhr.all_uu_v3i16_out16 +dEQP-VK.spirv_assembly.instruction.compute.opsdotaccsatkhr.all_us_v3i16_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsdotaccsatkhr.all_us_v3i16_out16 +dEQP-VK.spirv_assembly.instruction.compute.opsdotaccsatkhr.all_su_v3i16_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsdotaccsatkhr.all_su_v3i16_out16 +dEQP-VK.spirv_assembly.instruction.compute.opsdotaccsatkhr.all_ss_v3i16_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsdotaccsatkhr.all_ss_v3i16_out16 +dEQP-VK.spirv_assembly.instruction.compute.opsdotaccsatkhr.all_uu_v4i16_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsdotaccsatkhr.all_uu_v4i16_out16 +dEQP-VK.spirv_assembly.instruction.compute.opsdotaccsatkhr.all_us_v4i16_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsdotaccsatkhr.all_us_v4i16_out16 +dEQP-VK.spirv_assembly.instruction.compute.opsdotaccsatkhr.all_su_v4i16_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsdotaccsatkhr.all_su_v4i16_out16 +dEQP-VK.spirv_assembly.instruction.compute.opsdotaccsatkhr.all_ss_v4i16_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsdotaccsatkhr.all_ss_v4i16_out16 +dEQP-VK.spirv_assembly.instruction.compute.opsdotaccsatkhr.limits_uu_v2i16_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsdotaccsatkhr.limits_uu_v2i16_out16 +dEQP-VK.spirv_assembly.instruction.compute.opsdotaccsatkhr.limits_us_v2i16_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsdotaccsatkhr.limits_us_v2i16_out16 +dEQP-VK.spirv_assembly.instruction.compute.opsdotaccsatkhr.limits_su_v2i16_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsdotaccsatkhr.limits_su_v2i16_out16 +dEQP-VK.spirv_assembly.instruction.compute.opsdotaccsatkhr.limits_ss_v2i16_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsdotaccsatkhr.limits_ss_v2i16_out16 +dEQP-VK.spirv_assembly.instruction.compute.opsdotaccsatkhr.limits_uu_v3i16_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsdotaccsatkhr.limits_uu_v3i16_out16 +dEQP-VK.spirv_assembly.instruction.compute.opsdotaccsatkhr.limits_us_v3i16_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsdotaccsatkhr.limits_us_v3i16_out16 +dEQP-VK.spirv_assembly.instruction.compute.opsdotaccsatkhr.limits_su_v3i16_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsdotaccsatkhr.limits_su_v3i16_out16 +dEQP-VK.spirv_assembly.instruction.compute.opsdotaccsatkhr.limits_ss_v3i16_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsdotaccsatkhr.limits_ss_v3i16_out16 +dEQP-VK.spirv_assembly.instruction.compute.opsdotaccsatkhr.limits_uu_v4i16_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsdotaccsatkhr.limits_uu_v4i16_out16 +dEQP-VK.spirv_assembly.instruction.compute.opsdotaccsatkhr.limits_us_v4i16_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsdotaccsatkhr.limits_us_v4i16_out16 +dEQP-VK.spirv_assembly.instruction.compute.opsdotaccsatkhr.limits_su_v4i16_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsdotaccsatkhr.limits_su_v4i16_out16 +dEQP-VK.spirv_assembly.instruction.compute.opsdotaccsatkhr.limits_ss_v4i16_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsdotaccsatkhr.limits_ss_v4i16_out16 +dEQP-VK.spirv_assembly.instruction.compute.opsdotaccsatkhr.limits-neg_uu_v2i16_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsdotaccsatkhr.limits-neg_uu_v2i16_out16 +dEQP-VK.spirv_assembly.instruction.compute.opsdotaccsatkhr.limits-neg_us_v2i16_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsdotaccsatkhr.limits-neg_us_v2i16_out16 +dEQP-VK.spirv_assembly.instruction.compute.opsdotaccsatkhr.limits-neg_su_v2i16_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsdotaccsatkhr.limits-neg_su_v2i16_out16 +dEQP-VK.spirv_assembly.instruction.compute.opsdotaccsatkhr.limits-neg_ss_v2i16_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsdotaccsatkhr.limits-neg_ss_v2i16_out16 +dEQP-VK.spirv_assembly.instruction.compute.opsdotaccsatkhr.limits-neg_uu_v3i16_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsdotaccsatkhr.limits-neg_uu_v3i16_out16 +dEQP-VK.spirv_assembly.instruction.compute.opsdotaccsatkhr.limits-neg_us_v3i16_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsdotaccsatkhr.limits-neg_us_v3i16_out16 +dEQP-VK.spirv_assembly.instruction.compute.opsdotaccsatkhr.limits-neg_su_v3i16_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsdotaccsatkhr.limits-neg_su_v3i16_out16 +dEQP-VK.spirv_assembly.instruction.compute.opsdotaccsatkhr.limits-neg_ss_v3i16_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsdotaccsatkhr.limits-neg_ss_v3i16_out16 +dEQP-VK.spirv_assembly.instruction.compute.opsdotaccsatkhr.limits-neg_uu_v4i16_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsdotaccsatkhr.limits-neg_uu_v4i16_out16 +dEQP-VK.spirv_assembly.instruction.compute.opsdotaccsatkhr.limits-neg_us_v4i16_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsdotaccsatkhr.limits-neg_us_v4i16_out16 +dEQP-VK.spirv_assembly.instruction.compute.opsdotaccsatkhr.limits-neg_su_v4i16_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsdotaccsatkhr.limits-neg_su_v4i16_out16 +dEQP-VK.spirv_assembly.instruction.compute.opsdotaccsatkhr.limits-neg_ss_v4i16_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsdotaccsatkhr.limits-neg_ss_v4i16_out16 +dEQP-VK.spirv_assembly.instruction.compute.opsdotaccsatkhr.all_uu_v2i32_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsdotaccsatkhr.all_us_v2i32_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsdotaccsatkhr.all_su_v2i32_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsdotaccsatkhr.all_ss_v2i32_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsdotaccsatkhr.all_uu_v3i32_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsdotaccsatkhr.all_us_v3i32_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsdotaccsatkhr.all_su_v3i32_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsdotaccsatkhr.all_ss_v3i32_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsdotaccsatkhr.all_uu_v4i32_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsdotaccsatkhr.all_us_v4i32_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsdotaccsatkhr.all_su_v4i32_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsdotaccsatkhr.all_ss_v4i32_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsdotaccsatkhr.limits_uu_v2i32_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsdotaccsatkhr.limits_us_v2i32_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsdotaccsatkhr.limits_su_v2i32_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsdotaccsatkhr.limits_ss_v2i32_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsdotaccsatkhr.limits_uu_v3i32_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsdotaccsatkhr.limits_us_v3i32_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsdotaccsatkhr.limits_su_v3i32_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsdotaccsatkhr.limits_ss_v3i32_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsdotaccsatkhr.limits_uu_v4i32_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsdotaccsatkhr.limits_us_v4i32_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsdotaccsatkhr.limits_su_v4i32_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsdotaccsatkhr.limits_ss_v4i32_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsdotaccsatkhr.limits-neg_uu_v2i32_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsdotaccsatkhr.limits-neg_us_v2i32_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsdotaccsatkhr.limits-neg_su_v2i32_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsdotaccsatkhr.limits-neg_ss_v2i32_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsdotaccsatkhr.limits-neg_uu_v3i32_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsdotaccsatkhr.limits-neg_us_v3i32_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsdotaccsatkhr.limits-neg_su_v3i32_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsdotaccsatkhr.limits-neg_ss_v3i32_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsdotaccsatkhr.limits-neg_uu_v4i32_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsdotaccsatkhr.limits-neg_us_v4i32_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsdotaccsatkhr.limits-neg_su_v4i32_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsdotaccsatkhr.limits-neg_ss_v4i32_out32 +dEQP-VK.spirv_assembly.instruction.compute.opudotaccsatkhr.all_uu_v2i8_out32 +dEQP-VK.spirv_assembly.instruction.compute.opudotaccsatkhr.all_uu_v2i8_out16 +dEQP-VK.spirv_assembly.instruction.compute.opudotaccsatkhr.all_uu_v2i8_out8 +dEQP-VK.spirv_assembly.instruction.compute.opudotaccsatkhr.all_us_v2i8_out32 +dEQP-VK.spirv_assembly.instruction.compute.opudotaccsatkhr.all_us_v2i8_out16 +dEQP-VK.spirv_assembly.instruction.compute.opudotaccsatkhr.all_us_v2i8_out8 +dEQP-VK.spirv_assembly.instruction.compute.opudotaccsatkhr.all_su_v2i8_out32 +dEQP-VK.spirv_assembly.instruction.compute.opudotaccsatkhr.all_su_v2i8_out16 +dEQP-VK.spirv_assembly.instruction.compute.opudotaccsatkhr.all_su_v2i8_out8 +dEQP-VK.spirv_assembly.instruction.compute.opudotaccsatkhr.all_ss_v2i8_out32 +dEQP-VK.spirv_assembly.instruction.compute.opudotaccsatkhr.all_ss_v2i8_out16 +dEQP-VK.spirv_assembly.instruction.compute.opudotaccsatkhr.all_ss_v2i8_out8 +dEQP-VK.spirv_assembly.instruction.compute.opudotaccsatkhr.all_uu_v3i8_out32 +dEQP-VK.spirv_assembly.instruction.compute.opudotaccsatkhr.all_uu_v3i8_out16 +dEQP-VK.spirv_assembly.instruction.compute.opudotaccsatkhr.all_uu_v3i8_out8 +dEQP-VK.spirv_assembly.instruction.compute.opudotaccsatkhr.all_us_v3i8_out32 +dEQP-VK.spirv_assembly.instruction.compute.opudotaccsatkhr.all_us_v3i8_out16 +dEQP-VK.spirv_assembly.instruction.compute.opudotaccsatkhr.all_us_v3i8_out8 +dEQP-VK.spirv_assembly.instruction.compute.opudotaccsatkhr.all_su_v3i8_out32 +dEQP-VK.spirv_assembly.instruction.compute.opudotaccsatkhr.all_su_v3i8_out16 +dEQP-VK.spirv_assembly.instruction.compute.opudotaccsatkhr.all_su_v3i8_out8 +dEQP-VK.spirv_assembly.instruction.compute.opudotaccsatkhr.all_ss_v3i8_out32 +dEQP-VK.spirv_assembly.instruction.compute.opudotaccsatkhr.all_ss_v3i8_out16 +dEQP-VK.spirv_assembly.instruction.compute.opudotaccsatkhr.all_ss_v3i8_out8 +dEQP-VK.spirv_assembly.instruction.compute.opudotaccsatkhr.all_uu_v4i8_out32 +dEQP-VK.spirv_assembly.instruction.compute.opudotaccsatkhr.all_uu_v4i8_out16 +dEQP-VK.spirv_assembly.instruction.compute.opudotaccsatkhr.all_uu_v4i8_out8 +dEQP-VK.spirv_assembly.instruction.compute.opudotaccsatkhr.all_us_v4i8_out32 +dEQP-VK.spirv_assembly.instruction.compute.opudotaccsatkhr.all_us_v4i8_out16 +dEQP-VK.spirv_assembly.instruction.compute.opudotaccsatkhr.all_us_v4i8_out8 +dEQP-VK.spirv_assembly.instruction.compute.opudotaccsatkhr.all_su_v4i8_out32 +dEQP-VK.spirv_assembly.instruction.compute.opudotaccsatkhr.all_su_v4i8_out16 +dEQP-VK.spirv_assembly.instruction.compute.opudotaccsatkhr.all_su_v4i8_out8 +dEQP-VK.spirv_assembly.instruction.compute.opudotaccsatkhr.all_ss_v4i8_out32 +dEQP-VK.spirv_assembly.instruction.compute.opudotaccsatkhr.all_ss_v4i8_out16 +dEQP-VK.spirv_assembly.instruction.compute.opudotaccsatkhr.all_ss_v4i8_out8 +dEQP-VK.spirv_assembly.instruction.compute.opudotaccsatkhr.all_packed_ss_v4i8_out32 +dEQP-VK.spirv_assembly.instruction.compute.opudotaccsatkhr.all_packed_ss_v4i8_out16 +dEQP-VK.spirv_assembly.instruction.compute.opudotaccsatkhr.all_packed_ss_v4i8_out8 +dEQP-VK.spirv_assembly.instruction.compute.opudotaccsatkhr.all_packed_su_v4i8_out32 +dEQP-VK.spirv_assembly.instruction.compute.opudotaccsatkhr.all_packed_su_v4i8_out16 +dEQP-VK.spirv_assembly.instruction.compute.opudotaccsatkhr.all_packed_su_v4i8_out8 +dEQP-VK.spirv_assembly.instruction.compute.opudotaccsatkhr.all_packed_us_v4i8_out32 +dEQP-VK.spirv_assembly.instruction.compute.opudotaccsatkhr.all_packed_us_v4i8_out16 +dEQP-VK.spirv_assembly.instruction.compute.opudotaccsatkhr.all_packed_us_v4i8_out8 +dEQP-VK.spirv_assembly.instruction.compute.opudotaccsatkhr.all_packed_uu_v4i8_out32 +dEQP-VK.spirv_assembly.instruction.compute.opudotaccsatkhr.all_packed_uu_v4i8_out16 +dEQP-VK.spirv_assembly.instruction.compute.opudotaccsatkhr.all_packed_uu_v4i8_out8 +dEQP-VK.spirv_assembly.instruction.compute.opudotaccsatkhr.limits_uu_v2i8_out32 +dEQP-VK.spirv_assembly.instruction.compute.opudotaccsatkhr.limits_uu_v2i8_out16 +dEQP-VK.spirv_assembly.instruction.compute.opudotaccsatkhr.limits_uu_v2i8_out8 +dEQP-VK.spirv_assembly.instruction.compute.opudotaccsatkhr.limits_us_v2i8_out32 +dEQP-VK.spirv_assembly.instruction.compute.opudotaccsatkhr.limits_us_v2i8_out16 +dEQP-VK.spirv_assembly.instruction.compute.opudotaccsatkhr.limits_us_v2i8_out8 +dEQP-VK.spirv_assembly.instruction.compute.opudotaccsatkhr.limits_su_v2i8_out32 +dEQP-VK.spirv_assembly.instruction.compute.opudotaccsatkhr.limits_su_v2i8_out16 +dEQP-VK.spirv_assembly.instruction.compute.opudotaccsatkhr.limits_su_v2i8_out8 +dEQP-VK.spirv_assembly.instruction.compute.opudotaccsatkhr.limits_ss_v2i8_out32 +dEQP-VK.spirv_assembly.instruction.compute.opudotaccsatkhr.limits_ss_v2i8_out16 +dEQP-VK.spirv_assembly.instruction.compute.opudotaccsatkhr.limits_ss_v2i8_out8 +dEQP-VK.spirv_assembly.instruction.compute.opudotaccsatkhr.limits_uu_v3i8_out32 +dEQP-VK.spirv_assembly.instruction.compute.opudotaccsatkhr.limits_uu_v3i8_out16 +dEQP-VK.spirv_assembly.instruction.compute.opudotaccsatkhr.limits_uu_v3i8_out8 +dEQP-VK.spirv_assembly.instruction.compute.opudotaccsatkhr.limits_us_v3i8_out32 +dEQP-VK.spirv_assembly.instruction.compute.opudotaccsatkhr.limits_us_v3i8_out16 +dEQP-VK.spirv_assembly.instruction.compute.opudotaccsatkhr.limits_us_v3i8_out8 +dEQP-VK.spirv_assembly.instruction.compute.opudotaccsatkhr.limits_su_v3i8_out32 +dEQP-VK.spirv_assembly.instruction.compute.opudotaccsatkhr.limits_su_v3i8_out16 +dEQP-VK.spirv_assembly.instruction.compute.opudotaccsatkhr.limits_su_v3i8_out8 +dEQP-VK.spirv_assembly.instruction.compute.opudotaccsatkhr.limits_ss_v3i8_out32 +dEQP-VK.spirv_assembly.instruction.compute.opudotaccsatkhr.limits_ss_v3i8_out16 +dEQP-VK.spirv_assembly.instruction.compute.opudotaccsatkhr.limits_ss_v3i8_out8 +dEQP-VK.spirv_assembly.instruction.compute.opudotaccsatkhr.limits_uu_v4i8_out32 +dEQP-VK.spirv_assembly.instruction.compute.opudotaccsatkhr.limits_uu_v4i8_out16 +dEQP-VK.spirv_assembly.instruction.compute.opudotaccsatkhr.limits_uu_v4i8_out8 +dEQP-VK.spirv_assembly.instruction.compute.opudotaccsatkhr.limits_us_v4i8_out32 +dEQP-VK.spirv_assembly.instruction.compute.opudotaccsatkhr.limits_us_v4i8_out16 +dEQP-VK.spirv_assembly.instruction.compute.opudotaccsatkhr.limits_us_v4i8_out8 +dEQP-VK.spirv_assembly.instruction.compute.opudotaccsatkhr.limits_su_v4i8_out32 +dEQP-VK.spirv_assembly.instruction.compute.opudotaccsatkhr.limits_su_v4i8_out16 +dEQP-VK.spirv_assembly.instruction.compute.opudotaccsatkhr.limits_su_v4i8_out8 +dEQP-VK.spirv_assembly.instruction.compute.opudotaccsatkhr.limits_ss_v4i8_out32 +dEQP-VK.spirv_assembly.instruction.compute.opudotaccsatkhr.limits_ss_v4i8_out16 +dEQP-VK.spirv_assembly.instruction.compute.opudotaccsatkhr.limits_ss_v4i8_out8 +dEQP-VK.spirv_assembly.instruction.compute.opudotaccsatkhr.limits_packed_ss_v4i8_out32 +dEQP-VK.spirv_assembly.instruction.compute.opudotaccsatkhr.limits_packed_ss_v4i8_out16 +dEQP-VK.spirv_assembly.instruction.compute.opudotaccsatkhr.limits_packed_ss_v4i8_out8 +dEQP-VK.spirv_assembly.instruction.compute.opudotaccsatkhr.limits_packed_su_v4i8_out32 +dEQP-VK.spirv_assembly.instruction.compute.opudotaccsatkhr.limits_packed_su_v4i8_out16 +dEQP-VK.spirv_assembly.instruction.compute.opudotaccsatkhr.limits_packed_su_v4i8_out8 +dEQP-VK.spirv_assembly.instruction.compute.opudotaccsatkhr.limits_packed_us_v4i8_out32 +dEQP-VK.spirv_assembly.instruction.compute.opudotaccsatkhr.limits_packed_us_v4i8_out16 +dEQP-VK.spirv_assembly.instruction.compute.opudotaccsatkhr.limits_packed_us_v4i8_out8 +dEQP-VK.spirv_assembly.instruction.compute.opudotaccsatkhr.limits_packed_uu_v4i8_out32 +dEQP-VK.spirv_assembly.instruction.compute.opudotaccsatkhr.limits_packed_uu_v4i8_out16 +dEQP-VK.spirv_assembly.instruction.compute.opudotaccsatkhr.limits_packed_uu_v4i8_out8 +dEQP-VK.spirv_assembly.instruction.compute.opudotaccsatkhr.small_uu_v2i8_out32 +dEQP-VK.spirv_assembly.instruction.compute.opudotaccsatkhr.small_uu_v2i8_out16 +dEQP-VK.spirv_assembly.instruction.compute.opudotaccsatkhr.small_uu_v2i8_out8 +dEQP-VK.spirv_assembly.instruction.compute.opudotaccsatkhr.small_us_v2i8_out32 +dEQP-VK.spirv_assembly.instruction.compute.opudotaccsatkhr.small_us_v2i8_out16 +dEQP-VK.spirv_assembly.instruction.compute.opudotaccsatkhr.small_us_v2i8_out8 +dEQP-VK.spirv_assembly.instruction.compute.opudotaccsatkhr.small_su_v2i8_out32 +dEQP-VK.spirv_assembly.instruction.compute.opudotaccsatkhr.small_su_v2i8_out16 +dEQP-VK.spirv_assembly.instruction.compute.opudotaccsatkhr.small_su_v2i8_out8 +dEQP-VK.spirv_assembly.instruction.compute.opudotaccsatkhr.small_ss_v2i8_out32 +dEQP-VK.spirv_assembly.instruction.compute.opudotaccsatkhr.small_ss_v2i8_out16 +dEQP-VK.spirv_assembly.instruction.compute.opudotaccsatkhr.small_ss_v2i8_out8 +dEQP-VK.spirv_assembly.instruction.compute.opudotaccsatkhr.small_uu_v3i8_out32 +dEQP-VK.spirv_assembly.instruction.compute.opudotaccsatkhr.small_uu_v3i8_out16 +dEQP-VK.spirv_assembly.instruction.compute.opudotaccsatkhr.small_uu_v3i8_out8 +dEQP-VK.spirv_assembly.instruction.compute.opudotaccsatkhr.small_us_v3i8_out32 +dEQP-VK.spirv_assembly.instruction.compute.opudotaccsatkhr.small_us_v3i8_out16 +dEQP-VK.spirv_assembly.instruction.compute.opudotaccsatkhr.small_us_v3i8_out8 +dEQP-VK.spirv_assembly.instruction.compute.opudotaccsatkhr.small_su_v3i8_out32 +dEQP-VK.spirv_assembly.instruction.compute.opudotaccsatkhr.small_su_v3i8_out16 +dEQP-VK.spirv_assembly.instruction.compute.opudotaccsatkhr.small_su_v3i8_out8 +dEQP-VK.spirv_assembly.instruction.compute.opudotaccsatkhr.small_ss_v3i8_out32 +dEQP-VK.spirv_assembly.instruction.compute.opudotaccsatkhr.small_ss_v3i8_out16 +dEQP-VK.spirv_assembly.instruction.compute.opudotaccsatkhr.small_ss_v3i8_out8 +dEQP-VK.spirv_assembly.instruction.compute.opudotaccsatkhr.small_uu_v4i8_out32 +dEQP-VK.spirv_assembly.instruction.compute.opudotaccsatkhr.small_uu_v4i8_out16 +dEQP-VK.spirv_assembly.instruction.compute.opudotaccsatkhr.small_uu_v4i8_out8 +dEQP-VK.spirv_assembly.instruction.compute.opudotaccsatkhr.small_us_v4i8_out32 +dEQP-VK.spirv_assembly.instruction.compute.opudotaccsatkhr.small_us_v4i8_out16 +dEQP-VK.spirv_assembly.instruction.compute.opudotaccsatkhr.small_us_v4i8_out8 +dEQP-VK.spirv_assembly.instruction.compute.opudotaccsatkhr.small_su_v4i8_out32 +dEQP-VK.spirv_assembly.instruction.compute.opudotaccsatkhr.small_su_v4i8_out16 +dEQP-VK.spirv_assembly.instruction.compute.opudotaccsatkhr.small_su_v4i8_out8 +dEQP-VK.spirv_assembly.instruction.compute.opudotaccsatkhr.small_ss_v4i8_out32 +dEQP-VK.spirv_assembly.instruction.compute.opudotaccsatkhr.small_ss_v4i8_out16 +dEQP-VK.spirv_assembly.instruction.compute.opudotaccsatkhr.small_ss_v4i8_out8 +dEQP-VK.spirv_assembly.instruction.compute.opudotaccsatkhr.small_packed_ss_v4i8_out32 +dEQP-VK.spirv_assembly.instruction.compute.opudotaccsatkhr.small_packed_ss_v4i8_out16 +dEQP-VK.spirv_assembly.instruction.compute.opudotaccsatkhr.small_packed_ss_v4i8_out8 +dEQP-VK.spirv_assembly.instruction.compute.opudotaccsatkhr.small_packed_su_v4i8_out32 +dEQP-VK.spirv_assembly.instruction.compute.opudotaccsatkhr.small_packed_su_v4i8_out16 +dEQP-VK.spirv_assembly.instruction.compute.opudotaccsatkhr.small_packed_su_v4i8_out8 +dEQP-VK.spirv_assembly.instruction.compute.opudotaccsatkhr.small_packed_us_v4i8_out32 +dEQP-VK.spirv_assembly.instruction.compute.opudotaccsatkhr.small_packed_us_v4i8_out16 +dEQP-VK.spirv_assembly.instruction.compute.opudotaccsatkhr.small_packed_us_v4i8_out8 +dEQP-VK.spirv_assembly.instruction.compute.opudotaccsatkhr.small_packed_uu_v4i8_out32 +dEQP-VK.spirv_assembly.instruction.compute.opudotaccsatkhr.small_packed_uu_v4i8_out16 +dEQP-VK.spirv_assembly.instruction.compute.opudotaccsatkhr.small_packed_uu_v4i8_out8 +dEQP-VK.spirv_assembly.instruction.compute.opudotaccsatkhr.all_uu_v2i16_out32 +dEQP-VK.spirv_assembly.instruction.compute.opudotaccsatkhr.all_uu_v2i16_out16 +dEQP-VK.spirv_assembly.instruction.compute.opudotaccsatkhr.all_us_v2i16_out32 +dEQP-VK.spirv_assembly.instruction.compute.opudotaccsatkhr.all_us_v2i16_out16 +dEQP-VK.spirv_assembly.instruction.compute.opudotaccsatkhr.all_su_v2i16_out32 +dEQP-VK.spirv_assembly.instruction.compute.opudotaccsatkhr.all_su_v2i16_out16 +dEQP-VK.spirv_assembly.instruction.compute.opudotaccsatkhr.all_ss_v2i16_out32 +dEQP-VK.spirv_assembly.instruction.compute.opudotaccsatkhr.all_ss_v2i16_out16 +dEQP-VK.spirv_assembly.instruction.compute.opudotaccsatkhr.all_uu_v3i16_out32 +dEQP-VK.spirv_assembly.instruction.compute.opudotaccsatkhr.all_uu_v3i16_out16 +dEQP-VK.spirv_assembly.instruction.compute.opudotaccsatkhr.all_us_v3i16_out32 +dEQP-VK.spirv_assembly.instruction.compute.opudotaccsatkhr.all_us_v3i16_out16 +dEQP-VK.spirv_assembly.instruction.compute.opudotaccsatkhr.all_su_v3i16_out32 +dEQP-VK.spirv_assembly.instruction.compute.opudotaccsatkhr.all_su_v3i16_out16 +dEQP-VK.spirv_assembly.instruction.compute.opudotaccsatkhr.all_ss_v3i16_out32 +dEQP-VK.spirv_assembly.instruction.compute.opudotaccsatkhr.all_ss_v3i16_out16 +dEQP-VK.spirv_assembly.instruction.compute.opudotaccsatkhr.all_uu_v4i16_out32 +dEQP-VK.spirv_assembly.instruction.compute.opudotaccsatkhr.all_uu_v4i16_out16 +dEQP-VK.spirv_assembly.instruction.compute.opudotaccsatkhr.all_us_v4i16_out32 +dEQP-VK.spirv_assembly.instruction.compute.opudotaccsatkhr.all_us_v4i16_out16 +dEQP-VK.spirv_assembly.instruction.compute.opudotaccsatkhr.all_su_v4i16_out32 +dEQP-VK.spirv_assembly.instruction.compute.opudotaccsatkhr.all_su_v4i16_out16 +dEQP-VK.spirv_assembly.instruction.compute.opudotaccsatkhr.all_ss_v4i16_out32 +dEQP-VK.spirv_assembly.instruction.compute.opudotaccsatkhr.all_ss_v4i16_out16 +dEQP-VK.spirv_assembly.instruction.compute.opudotaccsatkhr.limits_uu_v2i16_out32 +dEQP-VK.spirv_assembly.instruction.compute.opudotaccsatkhr.limits_uu_v2i16_out16 +dEQP-VK.spirv_assembly.instruction.compute.opudotaccsatkhr.limits_us_v2i16_out32 +dEQP-VK.spirv_assembly.instruction.compute.opudotaccsatkhr.limits_us_v2i16_out16 +dEQP-VK.spirv_assembly.instruction.compute.opudotaccsatkhr.limits_su_v2i16_out32 +dEQP-VK.spirv_assembly.instruction.compute.opudotaccsatkhr.limits_su_v2i16_out16 +dEQP-VK.spirv_assembly.instruction.compute.opudotaccsatkhr.limits_ss_v2i16_out32 +dEQP-VK.spirv_assembly.instruction.compute.opudotaccsatkhr.limits_ss_v2i16_out16 +dEQP-VK.spirv_assembly.instruction.compute.opudotaccsatkhr.limits_uu_v3i16_out32 +dEQP-VK.spirv_assembly.instruction.compute.opudotaccsatkhr.limits_uu_v3i16_out16 +dEQP-VK.spirv_assembly.instruction.compute.opudotaccsatkhr.limits_us_v3i16_out32 +dEQP-VK.spirv_assembly.instruction.compute.opudotaccsatkhr.limits_us_v3i16_out16 +dEQP-VK.spirv_assembly.instruction.compute.opudotaccsatkhr.limits_su_v3i16_out32 +dEQP-VK.spirv_assembly.instruction.compute.opudotaccsatkhr.limits_su_v3i16_out16 +dEQP-VK.spirv_assembly.instruction.compute.opudotaccsatkhr.limits_ss_v3i16_out32 +dEQP-VK.spirv_assembly.instruction.compute.opudotaccsatkhr.limits_ss_v3i16_out16 +dEQP-VK.spirv_assembly.instruction.compute.opudotaccsatkhr.limits_uu_v4i16_out32 +dEQP-VK.spirv_assembly.instruction.compute.opudotaccsatkhr.limits_uu_v4i16_out16 +dEQP-VK.spirv_assembly.instruction.compute.opudotaccsatkhr.limits_us_v4i16_out32 +dEQP-VK.spirv_assembly.instruction.compute.opudotaccsatkhr.limits_us_v4i16_out16 +dEQP-VK.spirv_assembly.instruction.compute.opudotaccsatkhr.limits_su_v4i16_out32 +dEQP-VK.spirv_assembly.instruction.compute.opudotaccsatkhr.limits_su_v4i16_out16 +dEQP-VK.spirv_assembly.instruction.compute.opudotaccsatkhr.limits_ss_v4i16_out32 +dEQP-VK.spirv_assembly.instruction.compute.opudotaccsatkhr.limits_ss_v4i16_out16 +dEQP-VK.spirv_assembly.instruction.compute.opudotaccsatkhr.all_uu_v2i32_out32 +dEQP-VK.spirv_assembly.instruction.compute.opudotaccsatkhr.all_us_v2i32_out32 +dEQP-VK.spirv_assembly.instruction.compute.opudotaccsatkhr.all_su_v2i32_out32 +dEQP-VK.spirv_assembly.instruction.compute.opudotaccsatkhr.all_ss_v2i32_out32 +dEQP-VK.spirv_assembly.instruction.compute.opudotaccsatkhr.all_uu_v3i32_out32 +dEQP-VK.spirv_assembly.instruction.compute.opudotaccsatkhr.all_us_v3i32_out32 +dEQP-VK.spirv_assembly.instruction.compute.opudotaccsatkhr.all_su_v3i32_out32 +dEQP-VK.spirv_assembly.instruction.compute.opudotaccsatkhr.all_ss_v3i32_out32 +dEQP-VK.spirv_assembly.instruction.compute.opudotaccsatkhr.all_uu_v4i32_out32 +dEQP-VK.spirv_assembly.instruction.compute.opudotaccsatkhr.all_us_v4i32_out32 +dEQP-VK.spirv_assembly.instruction.compute.opudotaccsatkhr.all_su_v4i32_out32 +dEQP-VK.spirv_assembly.instruction.compute.opudotaccsatkhr.all_ss_v4i32_out32 +dEQP-VK.spirv_assembly.instruction.compute.opudotaccsatkhr.limits_uu_v2i32_out32 +dEQP-VK.spirv_assembly.instruction.compute.opudotaccsatkhr.limits_us_v2i32_out32 +dEQP-VK.spirv_assembly.instruction.compute.opudotaccsatkhr.limits_su_v2i32_out32 +dEQP-VK.spirv_assembly.instruction.compute.opudotaccsatkhr.limits_ss_v2i32_out32 +dEQP-VK.spirv_assembly.instruction.compute.opudotaccsatkhr.limits_uu_v3i32_out32 +dEQP-VK.spirv_assembly.instruction.compute.opudotaccsatkhr.limits_us_v3i32_out32 +dEQP-VK.spirv_assembly.instruction.compute.opudotaccsatkhr.limits_su_v3i32_out32 +dEQP-VK.spirv_assembly.instruction.compute.opudotaccsatkhr.limits_ss_v3i32_out32 +dEQP-VK.spirv_assembly.instruction.compute.opudotaccsatkhr.limits_uu_v4i32_out32 +dEQP-VK.spirv_assembly.instruction.compute.opudotaccsatkhr.limits_us_v4i32_out32 +dEQP-VK.spirv_assembly.instruction.compute.opudotaccsatkhr.limits_su_v4i32_out32 +dEQP-VK.spirv_assembly.instruction.compute.opudotaccsatkhr.limits_ss_v4i32_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsudotaccsatkhr.all_uu_v2i8_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsudotaccsatkhr.all_uu_v2i8_out16 +dEQP-VK.spirv_assembly.instruction.compute.opsudotaccsatkhr.all_uu_v2i8_out8 +dEQP-VK.spirv_assembly.instruction.compute.opsudotaccsatkhr.all_us_v2i8_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsudotaccsatkhr.all_us_v2i8_out16 +dEQP-VK.spirv_assembly.instruction.compute.opsudotaccsatkhr.all_us_v2i8_out8 +dEQP-VK.spirv_assembly.instruction.compute.opsudotaccsatkhr.all_su_v2i8_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsudotaccsatkhr.all_su_v2i8_out16 +dEQP-VK.spirv_assembly.instruction.compute.opsudotaccsatkhr.all_su_v2i8_out8 +dEQP-VK.spirv_assembly.instruction.compute.opsudotaccsatkhr.all_ss_v2i8_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsudotaccsatkhr.all_ss_v2i8_out16 +dEQP-VK.spirv_assembly.instruction.compute.opsudotaccsatkhr.all_ss_v2i8_out8 +dEQP-VK.spirv_assembly.instruction.compute.opsudotaccsatkhr.all_uu_v3i8_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsudotaccsatkhr.all_uu_v3i8_out16 +dEQP-VK.spirv_assembly.instruction.compute.opsudotaccsatkhr.all_uu_v3i8_out8 +dEQP-VK.spirv_assembly.instruction.compute.opsudotaccsatkhr.all_us_v3i8_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsudotaccsatkhr.all_us_v3i8_out16 +dEQP-VK.spirv_assembly.instruction.compute.opsudotaccsatkhr.all_us_v3i8_out8 +dEQP-VK.spirv_assembly.instruction.compute.opsudotaccsatkhr.all_su_v3i8_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsudotaccsatkhr.all_su_v3i8_out16 +dEQP-VK.spirv_assembly.instruction.compute.opsudotaccsatkhr.all_su_v3i8_out8 +dEQP-VK.spirv_assembly.instruction.compute.opsudotaccsatkhr.all_ss_v3i8_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsudotaccsatkhr.all_ss_v3i8_out16 +dEQP-VK.spirv_assembly.instruction.compute.opsudotaccsatkhr.all_ss_v3i8_out8 +dEQP-VK.spirv_assembly.instruction.compute.opsudotaccsatkhr.all_uu_v4i8_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsudotaccsatkhr.all_uu_v4i8_out16 +dEQP-VK.spirv_assembly.instruction.compute.opsudotaccsatkhr.all_uu_v4i8_out8 +dEQP-VK.spirv_assembly.instruction.compute.opsudotaccsatkhr.all_us_v4i8_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsudotaccsatkhr.all_us_v4i8_out16 +dEQP-VK.spirv_assembly.instruction.compute.opsudotaccsatkhr.all_us_v4i8_out8 +dEQP-VK.spirv_assembly.instruction.compute.opsudotaccsatkhr.all_su_v4i8_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsudotaccsatkhr.all_su_v4i8_out16 +dEQP-VK.spirv_assembly.instruction.compute.opsudotaccsatkhr.all_su_v4i8_out8 +dEQP-VK.spirv_assembly.instruction.compute.opsudotaccsatkhr.all_ss_v4i8_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsudotaccsatkhr.all_ss_v4i8_out16 +dEQP-VK.spirv_assembly.instruction.compute.opsudotaccsatkhr.all_ss_v4i8_out8 +dEQP-VK.spirv_assembly.instruction.compute.opsudotaccsatkhr.all_packed_ss_v4i8_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsudotaccsatkhr.all_packed_ss_v4i8_out16 +dEQP-VK.spirv_assembly.instruction.compute.opsudotaccsatkhr.all_packed_ss_v4i8_out8 +dEQP-VK.spirv_assembly.instruction.compute.opsudotaccsatkhr.all_packed_su_v4i8_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsudotaccsatkhr.all_packed_su_v4i8_out16 +dEQP-VK.spirv_assembly.instruction.compute.opsudotaccsatkhr.all_packed_su_v4i8_out8 +dEQP-VK.spirv_assembly.instruction.compute.opsudotaccsatkhr.all_packed_us_v4i8_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsudotaccsatkhr.all_packed_us_v4i8_out16 +dEQP-VK.spirv_assembly.instruction.compute.opsudotaccsatkhr.all_packed_us_v4i8_out8 +dEQP-VK.spirv_assembly.instruction.compute.opsudotaccsatkhr.all_packed_uu_v4i8_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsudotaccsatkhr.all_packed_uu_v4i8_out16 +dEQP-VK.spirv_assembly.instruction.compute.opsudotaccsatkhr.all_packed_uu_v4i8_out8 +dEQP-VK.spirv_assembly.instruction.compute.opsudotaccsatkhr.limits_uu_v2i8_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsudotaccsatkhr.limits_uu_v2i8_out16 +dEQP-VK.spirv_assembly.instruction.compute.opsudotaccsatkhr.limits_uu_v2i8_out8 +dEQP-VK.spirv_assembly.instruction.compute.opsudotaccsatkhr.limits_us_v2i8_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsudotaccsatkhr.limits_us_v2i8_out16 +dEQP-VK.spirv_assembly.instruction.compute.opsudotaccsatkhr.limits_us_v2i8_out8 +dEQP-VK.spirv_assembly.instruction.compute.opsudotaccsatkhr.limits_su_v2i8_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsudotaccsatkhr.limits_su_v2i8_out16 +dEQP-VK.spirv_assembly.instruction.compute.opsudotaccsatkhr.limits_su_v2i8_out8 +dEQP-VK.spirv_assembly.instruction.compute.opsudotaccsatkhr.limits_ss_v2i8_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsudotaccsatkhr.limits_ss_v2i8_out16 +dEQP-VK.spirv_assembly.instruction.compute.opsudotaccsatkhr.limits_ss_v2i8_out8 +dEQP-VK.spirv_assembly.instruction.compute.opsudotaccsatkhr.limits_uu_v3i8_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsudotaccsatkhr.limits_uu_v3i8_out16 +dEQP-VK.spirv_assembly.instruction.compute.opsudotaccsatkhr.limits_uu_v3i8_out8 +dEQP-VK.spirv_assembly.instruction.compute.opsudotaccsatkhr.limits_us_v3i8_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsudotaccsatkhr.limits_us_v3i8_out16 +dEQP-VK.spirv_assembly.instruction.compute.opsudotaccsatkhr.limits_us_v3i8_out8 +dEQP-VK.spirv_assembly.instruction.compute.opsudotaccsatkhr.limits_su_v3i8_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsudotaccsatkhr.limits_su_v3i8_out16 +dEQP-VK.spirv_assembly.instruction.compute.opsudotaccsatkhr.limits_su_v3i8_out8 +dEQP-VK.spirv_assembly.instruction.compute.opsudotaccsatkhr.limits_ss_v3i8_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsudotaccsatkhr.limits_ss_v3i8_out16 +dEQP-VK.spirv_assembly.instruction.compute.opsudotaccsatkhr.limits_ss_v3i8_out8 +dEQP-VK.spirv_assembly.instruction.compute.opsudotaccsatkhr.limits_uu_v4i8_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsudotaccsatkhr.limits_uu_v4i8_out16 +dEQP-VK.spirv_assembly.instruction.compute.opsudotaccsatkhr.limits_uu_v4i8_out8 +dEQP-VK.spirv_assembly.instruction.compute.opsudotaccsatkhr.limits_us_v4i8_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsudotaccsatkhr.limits_us_v4i8_out16 +dEQP-VK.spirv_assembly.instruction.compute.opsudotaccsatkhr.limits_us_v4i8_out8 +dEQP-VK.spirv_assembly.instruction.compute.opsudotaccsatkhr.limits_su_v4i8_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsudotaccsatkhr.limits_su_v4i8_out16 +dEQP-VK.spirv_assembly.instruction.compute.opsudotaccsatkhr.limits_su_v4i8_out8 +dEQP-VK.spirv_assembly.instruction.compute.opsudotaccsatkhr.limits_ss_v4i8_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsudotaccsatkhr.limits_ss_v4i8_out16 +dEQP-VK.spirv_assembly.instruction.compute.opsudotaccsatkhr.limits_ss_v4i8_out8 +dEQP-VK.spirv_assembly.instruction.compute.opsudotaccsatkhr.limits_packed_ss_v4i8_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsudotaccsatkhr.limits_packed_ss_v4i8_out16 +dEQP-VK.spirv_assembly.instruction.compute.opsudotaccsatkhr.limits_packed_ss_v4i8_out8 +dEQP-VK.spirv_assembly.instruction.compute.opsudotaccsatkhr.limits_packed_su_v4i8_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsudotaccsatkhr.limits_packed_su_v4i8_out16 +dEQP-VK.spirv_assembly.instruction.compute.opsudotaccsatkhr.limits_packed_su_v4i8_out8 +dEQP-VK.spirv_assembly.instruction.compute.opsudotaccsatkhr.limits_packed_us_v4i8_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsudotaccsatkhr.limits_packed_us_v4i8_out16 +dEQP-VK.spirv_assembly.instruction.compute.opsudotaccsatkhr.limits_packed_us_v4i8_out8 +dEQP-VK.spirv_assembly.instruction.compute.opsudotaccsatkhr.limits_packed_uu_v4i8_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsudotaccsatkhr.limits_packed_uu_v4i8_out16 +dEQP-VK.spirv_assembly.instruction.compute.opsudotaccsatkhr.limits_packed_uu_v4i8_out8 +dEQP-VK.spirv_assembly.instruction.compute.opsudotaccsatkhr.limits-neg_uu_v2i8_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsudotaccsatkhr.limits-neg_uu_v2i8_out16 +dEQP-VK.spirv_assembly.instruction.compute.opsudotaccsatkhr.limits-neg_uu_v2i8_out8 +dEQP-VK.spirv_assembly.instruction.compute.opsudotaccsatkhr.limits-neg_us_v2i8_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsudotaccsatkhr.limits-neg_us_v2i8_out16 +dEQP-VK.spirv_assembly.instruction.compute.opsudotaccsatkhr.limits-neg_us_v2i8_out8 +dEQP-VK.spirv_assembly.instruction.compute.opsudotaccsatkhr.limits-neg_su_v2i8_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsudotaccsatkhr.limits-neg_su_v2i8_out16 +dEQP-VK.spirv_assembly.instruction.compute.opsudotaccsatkhr.limits-neg_su_v2i8_out8 +dEQP-VK.spirv_assembly.instruction.compute.opsudotaccsatkhr.limits-neg_ss_v2i8_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsudotaccsatkhr.limits-neg_ss_v2i8_out16 +dEQP-VK.spirv_assembly.instruction.compute.opsudotaccsatkhr.limits-neg_ss_v2i8_out8 +dEQP-VK.spirv_assembly.instruction.compute.opsudotaccsatkhr.limits-neg_uu_v3i8_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsudotaccsatkhr.limits-neg_uu_v3i8_out16 +dEQP-VK.spirv_assembly.instruction.compute.opsudotaccsatkhr.limits-neg_uu_v3i8_out8 +dEQP-VK.spirv_assembly.instruction.compute.opsudotaccsatkhr.limits-neg_us_v3i8_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsudotaccsatkhr.limits-neg_us_v3i8_out16 +dEQP-VK.spirv_assembly.instruction.compute.opsudotaccsatkhr.limits-neg_us_v3i8_out8 +dEQP-VK.spirv_assembly.instruction.compute.opsudotaccsatkhr.limits-neg_su_v3i8_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsudotaccsatkhr.limits-neg_su_v3i8_out16 +dEQP-VK.spirv_assembly.instruction.compute.opsudotaccsatkhr.limits-neg_su_v3i8_out8 +dEQP-VK.spirv_assembly.instruction.compute.opsudotaccsatkhr.limits-neg_ss_v3i8_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsudotaccsatkhr.limits-neg_ss_v3i8_out16 +dEQP-VK.spirv_assembly.instruction.compute.opsudotaccsatkhr.limits-neg_ss_v3i8_out8 +dEQP-VK.spirv_assembly.instruction.compute.opsudotaccsatkhr.limits-neg_uu_v4i8_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsudotaccsatkhr.limits-neg_uu_v4i8_out16 +dEQP-VK.spirv_assembly.instruction.compute.opsudotaccsatkhr.limits-neg_uu_v4i8_out8 +dEQP-VK.spirv_assembly.instruction.compute.opsudotaccsatkhr.limits-neg_us_v4i8_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsudotaccsatkhr.limits-neg_us_v4i8_out16 +dEQP-VK.spirv_assembly.instruction.compute.opsudotaccsatkhr.limits-neg_us_v4i8_out8 +dEQP-VK.spirv_assembly.instruction.compute.opsudotaccsatkhr.limits-neg_su_v4i8_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsudotaccsatkhr.limits-neg_su_v4i8_out16 +dEQP-VK.spirv_assembly.instruction.compute.opsudotaccsatkhr.limits-neg_su_v4i8_out8 +dEQP-VK.spirv_assembly.instruction.compute.opsudotaccsatkhr.limits-neg_ss_v4i8_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsudotaccsatkhr.limits-neg_ss_v4i8_out16 +dEQP-VK.spirv_assembly.instruction.compute.opsudotaccsatkhr.limits-neg_ss_v4i8_out8 +dEQP-VK.spirv_assembly.instruction.compute.opsudotaccsatkhr.limits-neg_packed_ss_v4i8_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsudotaccsatkhr.limits-neg_packed_ss_v4i8_out16 +dEQP-VK.spirv_assembly.instruction.compute.opsudotaccsatkhr.limits-neg_packed_ss_v4i8_out8 +dEQP-VK.spirv_assembly.instruction.compute.opsudotaccsatkhr.limits-neg_packed_su_v4i8_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsudotaccsatkhr.limits-neg_packed_su_v4i8_out16 +dEQP-VK.spirv_assembly.instruction.compute.opsudotaccsatkhr.limits-neg_packed_su_v4i8_out8 +dEQP-VK.spirv_assembly.instruction.compute.opsudotaccsatkhr.limits-neg_packed_us_v4i8_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsudotaccsatkhr.limits-neg_packed_us_v4i8_out16 +dEQP-VK.spirv_assembly.instruction.compute.opsudotaccsatkhr.limits-neg_packed_us_v4i8_out8 +dEQP-VK.spirv_assembly.instruction.compute.opsudotaccsatkhr.limits-neg_packed_uu_v4i8_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsudotaccsatkhr.limits-neg_packed_uu_v4i8_out16 +dEQP-VK.spirv_assembly.instruction.compute.opsudotaccsatkhr.limits-neg_packed_uu_v4i8_out8 +dEQP-VK.spirv_assembly.instruction.compute.opsudotaccsatkhr.small_uu_v2i8_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsudotaccsatkhr.small_uu_v2i8_out16 +dEQP-VK.spirv_assembly.instruction.compute.opsudotaccsatkhr.small_uu_v2i8_out8 +dEQP-VK.spirv_assembly.instruction.compute.opsudotaccsatkhr.small_us_v2i8_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsudotaccsatkhr.small_us_v2i8_out16 +dEQP-VK.spirv_assembly.instruction.compute.opsudotaccsatkhr.small_us_v2i8_out8 +dEQP-VK.spirv_assembly.instruction.compute.opsudotaccsatkhr.small_su_v2i8_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsudotaccsatkhr.small_su_v2i8_out16 +dEQP-VK.spirv_assembly.instruction.compute.opsudotaccsatkhr.small_su_v2i8_out8 +dEQP-VK.spirv_assembly.instruction.compute.opsudotaccsatkhr.small_ss_v2i8_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsudotaccsatkhr.small_ss_v2i8_out16 +dEQP-VK.spirv_assembly.instruction.compute.opsudotaccsatkhr.small_ss_v2i8_out8 +dEQP-VK.spirv_assembly.instruction.compute.opsudotaccsatkhr.small_uu_v3i8_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsudotaccsatkhr.small_uu_v3i8_out16 +dEQP-VK.spirv_assembly.instruction.compute.opsudotaccsatkhr.small_uu_v3i8_out8 +dEQP-VK.spirv_assembly.instruction.compute.opsudotaccsatkhr.small_us_v3i8_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsudotaccsatkhr.small_us_v3i8_out16 +dEQP-VK.spirv_assembly.instruction.compute.opsudotaccsatkhr.small_us_v3i8_out8 +dEQP-VK.spirv_assembly.instruction.compute.opsudotaccsatkhr.small_su_v3i8_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsudotaccsatkhr.small_su_v3i8_out16 +dEQP-VK.spirv_assembly.instruction.compute.opsudotaccsatkhr.small_su_v3i8_out8 +dEQP-VK.spirv_assembly.instruction.compute.opsudotaccsatkhr.small_ss_v3i8_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsudotaccsatkhr.small_ss_v3i8_out16 +dEQP-VK.spirv_assembly.instruction.compute.opsudotaccsatkhr.small_ss_v3i8_out8 +dEQP-VK.spirv_assembly.instruction.compute.opsudotaccsatkhr.small_uu_v4i8_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsudotaccsatkhr.small_uu_v4i8_out16 +dEQP-VK.spirv_assembly.instruction.compute.opsudotaccsatkhr.small_uu_v4i8_out8 +dEQP-VK.spirv_assembly.instruction.compute.opsudotaccsatkhr.small_us_v4i8_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsudotaccsatkhr.small_us_v4i8_out16 +dEQP-VK.spirv_assembly.instruction.compute.opsudotaccsatkhr.small_us_v4i8_out8 +dEQP-VK.spirv_assembly.instruction.compute.opsudotaccsatkhr.small_su_v4i8_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsudotaccsatkhr.small_su_v4i8_out16 +dEQP-VK.spirv_assembly.instruction.compute.opsudotaccsatkhr.small_su_v4i8_out8 +dEQP-VK.spirv_assembly.instruction.compute.opsudotaccsatkhr.small_ss_v4i8_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsudotaccsatkhr.small_ss_v4i8_out16 +dEQP-VK.spirv_assembly.instruction.compute.opsudotaccsatkhr.small_ss_v4i8_out8 +dEQP-VK.spirv_assembly.instruction.compute.opsudotaccsatkhr.small_packed_ss_v4i8_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsudotaccsatkhr.small_packed_ss_v4i8_out16 +dEQP-VK.spirv_assembly.instruction.compute.opsudotaccsatkhr.small_packed_ss_v4i8_out8 +dEQP-VK.spirv_assembly.instruction.compute.opsudotaccsatkhr.small_packed_su_v4i8_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsudotaccsatkhr.small_packed_su_v4i8_out16 +dEQP-VK.spirv_assembly.instruction.compute.opsudotaccsatkhr.small_packed_su_v4i8_out8 +dEQP-VK.spirv_assembly.instruction.compute.opsudotaccsatkhr.small_packed_us_v4i8_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsudotaccsatkhr.small_packed_us_v4i8_out16 +dEQP-VK.spirv_assembly.instruction.compute.opsudotaccsatkhr.small_packed_us_v4i8_out8 +dEQP-VK.spirv_assembly.instruction.compute.opsudotaccsatkhr.small_packed_uu_v4i8_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsudotaccsatkhr.small_packed_uu_v4i8_out16 +dEQP-VK.spirv_assembly.instruction.compute.opsudotaccsatkhr.small_packed_uu_v4i8_out8 +dEQP-VK.spirv_assembly.instruction.compute.opsudotaccsatkhr.all_uu_v2i16_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsudotaccsatkhr.all_uu_v2i16_out16 +dEQP-VK.spirv_assembly.instruction.compute.opsudotaccsatkhr.all_us_v2i16_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsudotaccsatkhr.all_us_v2i16_out16 +dEQP-VK.spirv_assembly.instruction.compute.opsudotaccsatkhr.all_su_v2i16_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsudotaccsatkhr.all_su_v2i16_out16 +dEQP-VK.spirv_assembly.instruction.compute.opsudotaccsatkhr.all_ss_v2i16_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsudotaccsatkhr.all_ss_v2i16_out16 +dEQP-VK.spirv_assembly.instruction.compute.opsudotaccsatkhr.all_uu_v3i16_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsudotaccsatkhr.all_uu_v3i16_out16 +dEQP-VK.spirv_assembly.instruction.compute.opsudotaccsatkhr.all_us_v3i16_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsudotaccsatkhr.all_us_v3i16_out16 +dEQP-VK.spirv_assembly.instruction.compute.opsudotaccsatkhr.all_su_v3i16_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsudotaccsatkhr.all_su_v3i16_out16 +dEQP-VK.spirv_assembly.instruction.compute.opsudotaccsatkhr.all_ss_v3i16_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsudotaccsatkhr.all_ss_v3i16_out16 +dEQP-VK.spirv_assembly.instruction.compute.opsudotaccsatkhr.all_uu_v4i16_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsudotaccsatkhr.all_uu_v4i16_out16 +dEQP-VK.spirv_assembly.instruction.compute.opsudotaccsatkhr.all_us_v4i16_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsudotaccsatkhr.all_us_v4i16_out16 +dEQP-VK.spirv_assembly.instruction.compute.opsudotaccsatkhr.all_su_v4i16_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsudotaccsatkhr.all_su_v4i16_out16 +dEQP-VK.spirv_assembly.instruction.compute.opsudotaccsatkhr.all_ss_v4i16_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsudotaccsatkhr.all_ss_v4i16_out16 +dEQP-VK.spirv_assembly.instruction.compute.opsudotaccsatkhr.limits_uu_v2i16_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsudotaccsatkhr.limits_uu_v2i16_out16 +dEQP-VK.spirv_assembly.instruction.compute.opsudotaccsatkhr.limits_us_v2i16_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsudotaccsatkhr.limits_us_v2i16_out16 +dEQP-VK.spirv_assembly.instruction.compute.opsudotaccsatkhr.limits_su_v2i16_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsudotaccsatkhr.limits_su_v2i16_out16 +dEQP-VK.spirv_assembly.instruction.compute.opsudotaccsatkhr.limits_ss_v2i16_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsudotaccsatkhr.limits_ss_v2i16_out16 +dEQP-VK.spirv_assembly.instruction.compute.opsudotaccsatkhr.limits_uu_v3i16_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsudotaccsatkhr.limits_uu_v3i16_out16 +dEQP-VK.spirv_assembly.instruction.compute.opsudotaccsatkhr.limits_us_v3i16_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsudotaccsatkhr.limits_us_v3i16_out16 +dEQP-VK.spirv_assembly.instruction.compute.opsudotaccsatkhr.limits_su_v3i16_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsudotaccsatkhr.limits_su_v3i16_out16 +dEQP-VK.spirv_assembly.instruction.compute.opsudotaccsatkhr.limits_ss_v3i16_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsudotaccsatkhr.limits_ss_v3i16_out16 +dEQP-VK.spirv_assembly.instruction.compute.opsudotaccsatkhr.limits_uu_v4i16_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsudotaccsatkhr.limits_uu_v4i16_out16 +dEQP-VK.spirv_assembly.instruction.compute.opsudotaccsatkhr.limits_us_v4i16_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsudotaccsatkhr.limits_us_v4i16_out16 +dEQP-VK.spirv_assembly.instruction.compute.opsudotaccsatkhr.limits_su_v4i16_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsudotaccsatkhr.limits_su_v4i16_out16 +dEQP-VK.spirv_assembly.instruction.compute.opsudotaccsatkhr.limits_ss_v4i16_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsudotaccsatkhr.limits_ss_v4i16_out16 +dEQP-VK.spirv_assembly.instruction.compute.opsudotaccsatkhr.limits-neg_uu_v2i16_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsudotaccsatkhr.limits-neg_uu_v2i16_out16 +dEQP-VK.spirv_assembly.instruction.compute.opsudotaccsatkhr.limits-neg_us_v2i16_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsudotaccsatkhr.limits-neg_us_v2i16_out16 +dEQP-VK.spirv_assembly.instruction.compute.opsudotaccsatkhr.limits-neg_su_v2i16_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsudotaccsatkhr.limits-neg_su_v2i16_out16 +dEQP-VK.spirv_assembly.instruction.compute.opsudotaccsatkhr.limits-neg_ss_v2i16_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsudotaccsatkhr.limits-neg_ss_v2i16_out16 +dEQP-VK.spirv_assembly.instruction.compute.opsudotaccsatkhr.limits-neg_uu_v3i16_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsudotaccsatkhr.limits-neg_uu_v3i16_out16 +dEQP-VK.spirv_assembly.instruction.compute.opsudotaccsatkhr.limits-neg_us_v3i16_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsudotaccsatkhr.limits-neg_us_v3i16_out16 +dEQP-VK.spirv_assembly.instruction.compute.opsudotaccsatkhr.limits-neg_su_v3i16_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsudotaccsatkhr.limits-neg_su_v3i16_out16 +dEQP-VK.spirv_assembly.instruction.compute.opsudotaccsatkhr.limits-neg_ss_v3i16_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsudotaccsatkhr.limits-neg_ss_v3i16_out16 +dEQP-VK.spirv_assembly.instruction.compute.opsudotaccsatkhr.limits-neg_uu_v4i16_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsudotaccsatkhr.limits-neg_uu_v4i16_out16 +dEQP-VK.spirv_assembly.instruction.compute.opsudotaccsatkhr.limits-neg_us_v4i16_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsudotaccsatkhr.limits-neg_us_v4i16_out16 +dEQP-VK.spirv_assembly.instruction.compute.opsudotaccsatkhr.limits-neg_su_v4i16_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsudotaccsatkhr.limits-neg_su_v4i16_out16 +dEQP-VK.spirv_assembly.instruction.compute.opsudotaccsatkhr.limits-neg_ss_v4i16_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsudotaccsatkhr.limits-neg_ss_v4i16_out16 +dEQP-VK.spirv_assembly.instruction.compute.opsudotaccsatkhr.all_uu_v2i32_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsudotaccsatkhr.all_us_v2i32_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsudotaccsatkhr.all_su_v2i32_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsudotaccsatkhr.all_ss_v2i32_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsudotaccsatkhr.all_uu_v3i32_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsudotaccsatkhr.all_us_v3i32_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsudotaccsatkhr.all_su_v3i32_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsudotaccsatkhr.all_ss_v3i32_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsudotaccsatkhr.all_uu_v4i32_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsudotaccsatkhr.all_us_v4i32_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsudotaccsatkhr.all_su_v4i32_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsudotaccsatkhr.all_ss_v4i32_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsudotaccsatkhr.limits_uu_v2i32_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsudotaccsatkhr.limits_us_v2i32_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsudotaccsatkhr.limits_su_v2i32_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsudotaccsatkhr.limits_ss_v2i32_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsudotaccsatkhr.limits_uu_v3i32_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsudotaccsatkhr.limits_us_v3i32_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsudotaccsatkhr.limits_su_v3i32_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsudotaccsatkhr.limits_ss_v3i32_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsudotaccsatkhr.limits_uu_v4i32_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsudotaccsatkhr.limits_us_v4i32_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsudotaccsatkhr.limits_su_v4i32_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsudotaccsatkhr.limits_ss_v4i32_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsudotaccsatkhr.limits-neg_uu_v2i32_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsudotaccsatkhr.limits-neg_us_v2i32_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsudotaccsatkhr.limits-neg_su_v2i32_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsudotaccsatkhr.limits-neg_ss_v2i32_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsudotaccsatkhr.limits-neg_uu_v3i32_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsudotaccsatkhr.limits-neg_us_v3i32_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsudotaccsatkhr.limits-neg_su_v3i32_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsudotaccsatkhr.limits-neg_ss_v3i32_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsudotaccsatkhr.limits-neg_uu_v4i32_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsudotaccsatkhr.limits-neg_us_v4i32_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsudotaccsatkhr.limits-neg_su_v4i32_out32 +dEQP-VK.spirv_assembly.instruction.compute.opsudotaccsatkhr.limits-neg_ss_v4i32_out32 dEQP-VK.spirv_assembly.instruction.compute.sconvert.int8_to_int16 dEQP-VK.spirv_assembly.instruction.compute.sconvert.int8_to_int32 dEQP-VK.spirv_assembly.instruction.compute.sconvert.int8_to_int64 diff --git a/external/vulkancts/scripts/gen_framework.py b/external/vulkancts/scripts/gen_framework.py index 075e493..1763d6c 100755 --- a/external/vulkancts/scripts/gen_framework.py +++ b/external/vulkancts/scripts/gen_framework.py @@ -1739,7 +1739,8 @@ def writeDeviceFeatures2(api, filename): 'VkPhysicalDeviceDescriptorIndexingFeatures', 'VkPhysicalDeviceTimelineSemaphoreFeatures', 'VkPhysicalDeviceFragmentDensityMapFeaturesEXT', - 'VkPhysicalDeviceFragmentDensityMap2FeaturesEXT' + 'VkPhysicalDeviceFragmentDensityMap2FeaturesEXT', + 'VkPhysicalDeviceShaderIntegerDotProductFeaturesKHR', ] # helper class used to encapsulate all data needed during generation class StructureDetail: diff --git a/external/vulkancts/scripts/src/extensions_data.txt b/external/vulkancts/scripts/src/extensions_data.txt index 6526b2f..a4d7252 100644 --- a/external/vulkancts/scripts/src/extensions_data.txt +++ b/external/vulkancts/scripts/src/extensions_data.txt @@ -98,3 +98,4 @@ VK_EXT_multi_draw DEVICE VK_KHR_shader_subgroup_uniform_control_flow DEVICE VK_KHR_present_id DEVICE VK_KHR_present_wait DEVICE +VK_KHR_shader_integer_dot_product DEVICE diff --git a/external/vulkancts/scripts/src/mandatory_features.txt b/external/vulkancts/scripts/src/mandatory_features.txt index d548d81..387ad70 100644 --- a/external/vulkancts/scripts/src/mandatory_features.txt +++ b/external/vulkancts/scripts/src/mandatory_features.txt @@ -149,3 +149,4 @@ VkPhysicalDeviceShaderSubgroupUniformControlFlowFeaturesKHR FEATURES ( shaderSub VkPhysicalDevicePresentIdFeaturesKHR FEATURES ( presentId ) REQUIREMENTS ( VK_KHR_present_id ) VkPhysicalDevicePresentWaitFeaturesKHR FEATURES ( presentWait ) REQUIREMENTS ( VK_KHR_present_wait ) VkPhysicalDeviceShaderAtomicFloat2FeaturesEXT FEATURES ( shaderImageFloat32AtomicMinMax ) REQUIREMENTS ( VK_EXT_shader_atomic_float2 physicalDeviceShaderAtomicFloat2FeaturesEXT.sparseImageFloat32AtomicMinMax ) +VkPhysicalDeviceShaderIntegerDotProductFeaturesKHR FEATURES ( shaderIntegerDotProduct ) REQUIREMENTS ( VK_KHR_shader_integer_dot_product ) diff --git a/external/vulkancts/scripts/src/vulkan_core.h b/external/vulkancts/scripts/src/vulkan_core.h index 9d2b315..f3cf274 100644 --- a/external/vulkancts/scripts/src/vulkan_core.h +++ b/external/vulkancts/scripts/src/vulkan_core.h @@ -754,6 +754,8 @@ typedef enum VkStructureType { VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEVICE_GENERATED_COMMANDS_FEATURES_NV = 1000277007, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_INHERITED_VIEWPORT_SCISSOR_FEATURES_NV = 1000278000, VK_STRUCTURE_TYPE_COMMAND_BUFFER_INHERITANCE_VIEWPORT_SCISSOR_INFO_NV = 1000278001, + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_INTEGER_DOT_PRODUCT_FEATURES_KHR = 1000280000, + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_INTEGER_DOT_PRODUCT_PROPERTIES_KHR = 1000280001, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TEXEL_BUFFER_ALIGNMENT_FEATURES_EXT = 1000281000, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TEXEL_BUFFER_ALIGNMENT_PROPERTIES_EXT = 1000281001, VK_STRUCTURE_TYPE_COMMAND_BUFFER_INHERITANCE_RENDER_PASS_TRANSFORM_INFO_QCOM = 1000282000, @@ -7867,6 +7869,52 @@ VKAPI_ATTR VkResult VKAPI_CALL vkGetPipelineExecutableInternalRepresentationsKHR #endif +#define VK_KHR_shader_integer_dot_product 1 +#define VK_KHR_SHADER_INTEGER_DOT_PRODUCT_SPEC_VERSION 1 +#define VK_KHR_SHADER_INTEGER_DOT_PRODUCT_EXTENSION_NAME "VK_KHR_shader_integer_dot_product" +typedef struct VkPhysicalDeviceShaderIntegerDotProductFeaturesKHR { + VkStructureType sType; + void* pNext; + VkBool32 shaderIntegerDotProduct; +} VkPhysicalDeviceShaderIntegerDotProductFeaturesKHR; + +typedef struct VkPhysicalDeviceShaderIntegerDotProductPropertiesKHR { + VkStructureType sType; + void* pNext; + VkBool32 integerDotProduct8BitUnsignedAccelerated; + VkBool32 integerDotProduct8BitSignedAccelerated; + VkBool32 integerDotProduct8BitMixedSignednessAccelerated; + VkBool32 integerDotProduct4x8BitPackedUnsignedAccelerated; + VkBool32 integerDotProduct4x8BitPackedSignedAccelerated; + VkBool32 integerDotProduct4x8BitPackedMixedSignednessAccelerated; + VkBool32 integerDotProduct16BitUnsignedAccelerated; + VkBool32 integerDotProduct16BitSignedAccelerated; + VkBool32 integerDotProduct16BitMixedSignednessAccelerated; + VkBool32 integerDotProduct32BitUnsignedAccelerated; + VkBool32 integerDotProduct32BitSignedAccelerated; + VkBool32 integerDotProduct32BitMixedSignednessAccelerated; + VkBool32 integerDotProduct64BitUnsignedAccelerated; + VkBool32 integerDotProduct64BitSignedAccelerated; + VkBool32 integerDotProduct64BitMixedSignednessAccelerated; + VkBool32 integerDotProductAccumulatingSaturating8BitUnsignedAccelerated; + VkBool32 integerDotProductAccumulatingSaturating8BitSignedAccelerated; + VkBool32 integerDotProductAccumulatingSaturating8BitMixedSignednessAccelerated; + VkBool32 integerDotProductAccumulatingSaturating4x8BitPackedUnsignedAccelerated; + VkBool32 integerDotProductAccumulatingSaturating4x8BitPackedSignedAccelerated; + VkBool32 integerDotProductAccumulatingSaturating4x8BitPackedMixedSignednessAccelerated; + VkBool32 integerDotProductAccumulatingSaturating16BitUnsignedAccelerated; + VkBool32 integerDotProductAccumulatingSaturating16BitSignedAccelerated; + VkBool32 integerDotProductAccumulatingSaturating16BitMixedSignednessAccelerated; + VkBool32 integerDotProductAccumulatingSaturating32BitUnsignedAccelerated; + VkBool32 integerDotProductAccumulatingSaturating32BitSignedAccelerated; + VkBool32 integerDotProductAccumulatingSaturating32BitMixedSignednessAccelerated; + VkBool32 integerDotProductAccumulatingSaturating64BitUnsignedAccelerated; + VkBool32 integerDotProductAccumulatingSaturating64BitSignedAccelerated; + VkBool32 integerDotProductAccumulatingSaturating64BitMixedSignednessAccelerated; +} VkPhysicalDeviceShaderIntegerDotProductPropertiesKHR; + + + #define VK_KHR_pipeline_library 1 #define VK_KHR_PIPELINE_LIBRARY_SPEC_VERSION 1 #define VK_KHR_PIPELINE_LIBRARY_EXTENSION_NAME "VK_KHR_pipeline_library" diff --git a/framework/delibs/decpp/deRandom.hpp b/framework/delibs/decpp/deRandom.hpp index 9c8cda3..370c087 100644 --- a/framework/delibs/decpp/deRandom.hpp +++ b/framework/delibs/decpp/deRandom.hpp @@ -182,7 +182,12 @@ void Random::shuffle (Iterator first, Iterator last) template T randomScalar (de::Random& rnd, T minValue, T maxValue); template<> inline float randomScalar (de::Random& rnd, float minValue, float maxValue) { return rnd.getFloat(minValue, maxValue); } template<> inline deInt32 randomScalar (de::Random& rnd, deInt32 minValue, deInt32 maxValue) { return rnd.getInt(minValue, maxValue); } -template<> inline deUint32 randomScalar (de::Random& rnd, deUint32 minValue, deUint32 maxValue) { return minValue + rnd.getUint32() % (maxValue - minValue + 1); } +template<> inline deUint32 randomScalar (de::Random& rnd, deUint32 minValue, deUint32 maxValue) { if (minValue == 0 && maxValue == 0xffffffff) return rnd.getUint32(); + return minValue + rnd.getUint32() % (maxValue - minValue + 1); } +template<> inline deInt16 randomScalar (de::Random& rnd, deInt16 minValue, deInt16 maxValue) { return (deInt16)rnd.getInt(minValue, maxValue); } +template<> inline deUint16 randomScalar (de::Random& rnd, deUint16 minValue, deUint16 maxValue) { return (deUint16)(minValue + rnd.getUint16() % (maxValue - minValue + 1)); } +template<> inline deInt8 randomScalar (de::Random& rnd, deInt8 minValue, deInt8 maxValue) { return (deInt8)rnd.getInt(minValue, maxValue); } +template<> inline deUint8 randomScalar (de::Random& rnd, deUint8 minValue, deUint8 maxValue) { return (deUint8)(minValue + rnd.getUint8() % (maxValue - minValue + 1)); } } // de -- 2.7.4